数据库题目

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

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

单表操作
多表操作


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 各个级别的人数(两种都要)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值