您的位置:首页 > 数据库

数据库题目

2015-06-02 21:40 302 查看
结果集是表里的部分列:投影操作

结果集是表里的部分行:选择操作

结果集来在多张表的记录的组合:连接操作

单表操作

多表操作





sql语句经sqlplus送给server process(连接建好后标志创建server process进程),对语句进行语法分析,语义分析,产生执行计划并执行,生成结果集, 把结果集传回sqlplus.

课堂练习

1列出每个员工的名字和他的工资?

2列出部门表的所有信息?

*表示所有列

3列出每个员工的名字和他的年薪?

4列出每个员工的名字和他一年的总收入

6公司里有哪些职位?

7公司里有哪几类奖金?

8各个部门有哪些不同的职位?

9哪些员工的工资比5000高?

10哪些员工的工资比5000高,列出名字,年薪

11哪些员工的年薪大于60000?列出名字,年薪

12 zhangwuji的年薪是多少?

课外练习

1不知道ename存储的大小写,找出zhangwuji的年薪?

2哪些员工的工资在[5000,10000]之间.

3 哪些员工的奖金是400,500,1000

4 哪些员工的工资不在[5000,10000]之间.

5 哪些员工的奖金不是400,500,1000.

SQL比较运算符

1 >= and <= between ... and,范围,闭区间

where salary between 5000 and 10000

2= or = or in =any 集合 离散

where bonus in (400,500,1000)

= 单值运算符 in 多值运算符

= -> =any 等于任意一个值

3 like 像...一样 模糊 字符型

通配符 % 表示0过任意多个字符

_ 表示任意一个字符

'S' like 'S%'1-任意 like 'S_' 条件长度2

课堂练习

1哪些员工名字的第二个字符是h?

2哪些员工的职位是以J_开始?

3哪些员工没有奖金?

4哪些员工有奖金?

6找出3月份入职的员工?

7 十分钟之前,十分之之后

10 有奖金的平均值,和,个数,最大值,最小值

11所有人的奖金的平均值,和,个数,最大值,最小值

14各个部门的平均工资?(emp)

15每种奖金有多少人?

第二天课外练习

1substr(p1,p2,p3) 求子串,p1要处理的串,p2是起始位置(1开始,从左往右数,-1从右往左数),p3子串的长度

显示每个员工名字的最后两个字符?

2工资小于5000的涨10%,

在[5000,10000]涨5%,

其他人不变

3 每种奖金有多少人?

4 10部门的平均工资?(只显示平均工资)

结论:在没有group by子句的情况下,select语句后面如果有一个组函数,其他的都得是组函数

5 10部门,30部门的平均工资,显示部门号,平均工资

6估算语句的结果集

第三天内容

select语句的语法顺序

select from where group by

select语句的执行顺序

from where group by select(组信息)

平均工资比5000高的那些部门的人数?

where和having比较

共同点:过滤,都执行在select之前,都不可以跟列别名

不同点:

where过滤的是记录,后面可以跟任意列名,单行函数,不能跟组函数,执行在group by之前

having过滤的是组,后面可以跟组函数,组标识,不能跟任意的列名(除组标识),单行函数,执行在group by之后

order by子句

select语句的语法顺序

select from where group by having

order by

select语句的执行顺序

from where group by having select(组信息)

课堂练习

1哪种奖金的人数多于2人?

2 各个部门不同职位的平均工资?

2列出员工的名字,部门号,工资,部门号升序,同一部门按工资降序.

3 列出员工的名字和年薪,按年薪降序排列

4哪些员工的工资是最低的.

执行顺序

先执行子查询(只执行一遍),若返回多条记录,去重,拿到该结果执行主查询.主查询的比较运算符的选择由子查询返回的记录数决定.(单值运算符,多值运算符)

5哪些员工的工资比zhangwuji的工资高?

6哪些部门的平均工资比30部门的平均工资高?

7哪些人是领导?

8哪些人是员工? 哪些人不是领导?

9哪些员工的工资等于本部门的平均工资

10 找出每个部门工资做高的员工?

11哪些员工的工资大于本部门的平均工资

exists和not exists

如果找到匹配,立即返回,exists(记录放入结果集),not exists(过滤)

如果找不到匹配(跟所有的都不匹配),exists(过滤),not exists (记录放入结果集)

哪些部门有员工?部门名称,部门位置,部门号

哪些人是员工?那些人不是领导?

子查询

非关联子查询(单列和多列)

关联子查询(exists not exists)

多表查询

连接join

cross join(交叉连接)

inner join(内连接)

outer join(外连接)

课外练习

1 zhangwuji的领导是谁?

2 zhangwuji领导谁?

3 哪些人是领导?

4 哪些人是员工?哪些人不是领导?

5 哪些部门有员工?

6 哪些部门没有员工?

7 结果集是什么?为什么?

第四天

1列出部门名称和职位?

2哪些员工在beijing上班?

3各个部门的平均工资,列出部门名称,地区名称,平均工资?

哪些员工的工资比本部门的平均工资高?

列出员工名字和他领导的名字

外连接结果集=内连接的结果集+(t1表中匹配不上的记录和t2表的null记录的组合)

各个部门的平均工资,显示部门名称,地区,平均工资(包含40部门)

哪个部门没有员工?

哪个部门没有叫zhangwuji的?

哪些人是员工?(哪些人不是领导)

课外练习

1 zhangwuji领导谁?

2 zhangwuji的领导是谁?

3各个部门的平均工资,显示部门名称,地区,平均工资(包含40部门)三种写法

4 各个级别的人数(两种都要)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: