下面列出来部分SQL练习题,希望对正在学习的朋友或者准备面试的朋友有所帮助
表1 Employee表 下表的字段设置什么约束合适
编号 | 姓名 | 地址 | 邮编 | 电话 | 电子邮件 | 部门 | 出生日期 | 性别 |
---|---|---|---|---|---|---|---|---|
Num | Name | Addr | Zip | Tel | Depno | Birth | Sex | |
001 | 王林 | 武汉大学 | 430074 | 87598405 | Null | 2 | 1985-2-1 | 男 |
002 | 王芳 | 华中科大 | 430073 | 62534231 | Null | 1 | 1966-3-28 | 男 |
003 | 张晓 | 武汉理工大 | 430072 | 87596985 | Null | 1 | 1972-12-9 | 男 |
004 | 王小燕 | 武汉交大 | 430071 | 85743261 | lili@sina.com | 1 | 1950-7-30 | 女 |
005 | 李华 | 华中农大 | 430070 | 87569865 | Null | 5 | 1962-10-18 | 男 |
006 | 李明 | 华中师大 | 430075 | 85362143 | zhujun@sina.com | 5 | 1955-09-28 | 男 |
007 | 田丽 | 中南财大 | 430076 | 85693265 | zgming@sohu.com | 3 | 1968-08-10 | 女 |
008 | 吴天 | 武汉电力 | 430077 | 36985612 | zjamg@china.com | 5 | 1964-10-01 | 男 |
009 | 刘备 | 武汉邮科院 | 430078 | 69865231 | Null | 3 | 1967-04-02 | 男 |
010 | 张飞 | 武汉钢铁 | 430079 | 69865632 | liyu@tom.com | 4 | 1958-09-20 | 男 |
011 | 赵云 | 学府家园 | 430071 | 68592312 | Null | 4 | 1968-11-18 | 男 |
012 | 貂禅 | 湖北工大 | 430074 | 65987654 | null | 4 | 1959-09-03 | 女 |
表2 Department
编号 | 部门名称 | 备注 |
---|---|---|
Depno | DepName | Remark |
1 | 财务部 | |
2 | 人力资源部 | |
3 | 经理办公室 | |
4 | 研发部 | |
5 | 市场部 |
表3 salary
编号 | 收入 | 支出 |
---|---|---|
Num | InCome | OutCome |
001 | 2100.8 | 123.09 |
002 | 1582.62 | 88.03 |
003 | 2569.88 | 185.65 |
004 | 1987.01 | 79.58 |
005 | 2066.15 | 108.0 |
006 | 2980.7 | 210.2 |
007 | 3259.98 | 281.52 |
008 | 2860.0 | 198 |
009 | 2347.68 | 180 |
010 | 2531.98 | 199.08 |
011 | 2240.0 | 121.0 |
012 | 1980.0 | 100.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) 求各部门的雇员数(要求显示,部门号、部门名称和部门雇员数);