正在学习oracle数据库sql语句,从网上找了各种资料学习整理了下面一些有代表性的题目,希望对初学sql的同学们有帮助。r
r
使用scotttiger用户下的emp表和dept表完成下列练习r
r
1.列出至少有一个员工的所有部门r
selectfromdeptr
wheredept
oi
r
selectdept
ofromempgroupbydept
ohavi
gcou
t0r
r
2.列出薪金比“SMITH”多的所有员工。r
SELECTFROMempr
WHEREsalr
SELECTsalFROMempWHEREe
ameSMITHr
r
3.列出所有员工的姓名及其直接上级的姓名。自连接r
SELECTworkeremp
ow_emp
oworkere
amew_e
amema
ageremp
om_emp
oma
agere
amem_e
amer
FROMempworkerempma
agerr
WHEREworkermgrma
ageremp
or
r
4.列出受雇日期晚于其直接上级的所有员工。自连接r
SELECTworkeremp
ow_emp
oworkere
amew_e
amema
ageremp
om_emp
oma
agere
amem_e
amer
workerhiredatew_hiredatema
agerhiredatem_hiredater
FROMempworkerempma
agerr
WHEREworkermgrma
ageremp
oANDworkerhiredatema
agerhiredater
r
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。外连接r
SELECTeemp
oee
ameejobddept
odd
amer
FROMempeRIGHTOUTERJOINdeptdr
ONedept
oddept
or
6.列出所有“CLERK”(办事员)的姓名及其部门名称。r
SELECTee
ameejobddept
odd
amer
FROMempedeptdr
WHEREedept
oddept
oANDejobCLERKr
r
可以应用子查询r
selectselectd
amefromdeptwheredept
oadept
oasd
ame,e
amer
r
fromempar
r
wherejob‘CLERK‘r
7.列出最低薪金大于1500的各种工作。r
SELECTjobFROMempGROUPBYjobHAVINGMINsal1500r
r
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。r
SELECTee
ameejobdd
ameddept
oFROMempedeptdr
WHEREedept
oi
r
selectddept
ofromdeptdWHEREdd
ameSALESr
ANDdd
ameSALESr
r
9.列出薪金高于公司平均薪金的所有员工。r
SELECTemp
oe
amejobsalFROMempWHEREsalr
SELECTAVGsalFROMempr
r
10.列出与“SCOTT”从事相同工作的所有员工。r
SELECTemp
oe
amejobFROMempWHEREjobr
SELECTjobFROMempWHEREe
ameSCOTTr
ANDe
ameSCOTTr
r
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。r
SELECTe
amejobsalFROMempr
WHEREsali
selectsalFROMempWHEREdept
o30r
r
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。ALLr
SELECTe
amejobsalFROMempr
WHEREsalALLselectsalFROMempWHEREdept
o30r
r
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。r
SELECTdept
oCOUNTcou
t_
umavgsalavgSYSDATEhiredateFRr