SQL练习题

SQL练习题

Scroll Down

下面列出来部分SQL练习题,希望对正在学习的朋友或者准备面试的朋友有所帮助

表1 Employee表 下表的字段设置什么约束合适

编号姓名地址邮编电话电子邮件部门出生日期性别
NumNameAddrZipTelEmailDepnoBirthSex
001王林武汉大学43007487598405Null21985-2-1
002王芳华中科大43007362534231Null11966-3-28
003张晓武汉理工大43007287596985Null11972-12-9
004王小燕武汉交大43007185743261lili@sina.com11950-7-30
005李华华中农大43007087569865Null51962-10-18
006李明华中师大43007585362143zhujun@sina.com51955-09-28
007田丽中南财大43007685693265zgming@sohu.com31968-08-10
008吴天武汉电力43007736985612zjamg@china.com51964-10-01
009刘备武汉邮科院43007869865231Null31967-04-02
010张飞武汉钢铁43007969865632liyu@tom.com41958-09-20
011赵云学府家园43007168592312Null41968-11-18
012貂禅湖北工大43007465987654null41959-09-03

表2 Department

编号部门名称备注
DepnoDepNameRemark
1财务部
2人力资源部
3经理办公室
4研发部
5市场部

表3 salary

编号收入支出
NumInComeOutCome
0012100.8123.09
0021582.6288.03
0032569.88185.65
0041987.0179.58
0052066.15108.0
0062980.7210.2
0073259.98281.52
0082860.0198
0092347.68180
0102531.98199.08
0112240.0121.0
0121980.0100.0

练习0:
1.修改部门编号为3的部门,部门名称改为”总办”
2.把市场部门删除掉
3.修改num在005以上所有人的支出比原来支出少20 (outcome=outcome-20)
Update salary set outcome=outcome-20 where num>005
4.修改收入在2500以上的员工,收入比原来的收入多20

练习1:SELECT语句的基本使用
(1) 查询每个雇员的所有记录;
(2) 查询前5个雇员的所有记录;
(3) 查询每个雇员的地址和电话;
(4) 查询num为001的雇员地址和电话;
(5) 查询表Employee表中女雇员的地址和电话,使用别名将结果列中各列的标题分别指定为地址、电话;
(6) 计算每个雇员的实际收入;
(7) 找出所有姓王的雇员;
(8) 找出所有收入在2000-3000元之间的雇员编号
(9) 查询每个部门下男性员工人数在2人以上的部门
(10) 查询公司员工的总收入
(11) 查询公司员工的平均收入
(12) 查询部门是“研发”,”人力资源”,市场部下的员工
(13) 查询实际收入在2500以上的员工号
(14) 查询出要退休的员工(男--55 , 女--50)

练习2:子查询的使用(答案可以不唯一)
(1) 查找在财务部工作的雇员情况;
(2) 查找在财务部且年龄不低于研发部任一个雇员年龄的雇员的姓名;
(3) 查找比所有财务部雇员收入都高的雇员的姓名;

练习3:连接查询的使用
(1) 查找每个雇员的情况及薪水情况;
(2) 查找财务部收入在2200元以上的雇员姓名及其薪水详细情况;

练习5:GROUP BY
(1) 求各部门的雇员数(要求显示,部门号、部门名称和部门雇员数);