2011版魔乐mldn李兴华主讲_sql语法练习(一)

2011版魔乐mldn李兴华主讲_sql语法练习(一)

ID:5543573

大小:378.13 KB

页数:18页

时间:2017-12-17

2011版魔乐mldn李兴华主讲_sql语法练习(一)_第1页
2011版魔乐mldn李兴华主讲_sql语法练习(一)_第2页
2011版魔乐mldn李兴华主讲_sql语法练习(一)_第3页
2011版魔乐mldn李兴华主讲_sql语法练习(一)_第4页
2011版魔乐mldn李兴华主讲_sql语法练习(一)_第5页
资源描述:

《2011版魔乐mldn李兴华主讲_sql语法练习(一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQL语法练习(一)使用scott/tiger用户下的emp表(数据库自带的表)完成下列练习,表的结构说明如下:雇员表(emp)EMPEMPNONUMBER(4)ENAMEVARCHAR2(10)JOBVARCHAR2(9)MGRNUMBER(4)HIREDATEDATESALNUMBER(7,2)COMMNUMBER(7,2)DEPTNONUMBER(2)EMPNO雇员编号ENAME雇员姓名JOB职务MGR领导编号HIREDATE受雇日期SAL工资COMM奖金DEPTNO所属部门1、选择部门30中的所有员工。SELECT*FROMempWHEREdeptno=30;2、

2、列出所有办事员(CLERK)的姓名,编号和部门编号。在Oracle中是区分大小写的,所以此时要么将CLERK大写,要么使用upper函数SELECTename,empno,deptnoFROMempWHEREjob=UPPER('clerk');3、找出佣金高于薪金的员工。·comm字段表示佣金或奖金,comm>salSELECT*FROMempWHEREcomm>sal;4、找出佣金高于薪金的60%的员工。SELECT*FROMempWHEREcomm>sal*0.6;5、找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。SELECT*FROMem

3、pWHERE(deptno=10ANDjob='MANAGER')OR(deptno=20ANDjob='CLERK');6、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。SELECT*FROMempWHERE(deptno=10ANDjob='MANAGER')OR(deptno=20ANDjob='CLERK')OR(jobNOTIN('MANAGER','CLERK')ANDsal>=2000);7、找出收取佣金的员工的不同工作。·工作会出现重复,所以DISTINCT关键字消除掉重

4、复的列·comm.ISNOTNULLSELECTDISTINCTjobFROMempWHEREcommISNOTNULL;8、找出不收取佣金或收取的佣金低于100的员工。·comm.ISNULLORcomm.<100SELECT*FROMempWHEREcommISNULLORcomm<100;9、找出各月倒数第3天受雇的所有员工。·要使用LAST_DAY()函数进行处理:LAST_DAY(hiredate)-2=hiredateSELECT*FROMempWHERELAST_DAY(hiredate)-2=hiredate;10、找出早于12年前受雇的员工。·条件:MONTHS_BET

5、WEE()/12,求出总共的月再除以12SELECT*FROMempWHEREMONTHS_BETWEEN(sysdate,hiredate)/12>12;11、以首字母大写的方式显示所有员工的姓名。·initcap()函数SELECTINITCAP(ename)FROMemp;12、显示正好为5个字符的员工的姓名。·length()函数·SELECTenameFROMempWHERELENGTH(ename)=5;13、显示不带有“R”的员工的姓名。·NOTLIKESELECTenameFROMempWHEREenameNOTLIKE'%R%';14、显示所有员工姓名的前三个字符。·s

6、ubstr()字符串截取SELECTSUBSTR(ename,0,3)FROMemp;15、显示所有员工的姓名,用“a”替换所有“A”·replace()函数SELECTREPLACE(ename,'A','a')FROMemp;16、显示满10年服务年限的员工的姓名和受雇日期。SELECTename,hiredateFROMempWHEREMONTHS_BETWEEN(sysdate,hiredate)/12>10;17、显示员工的详细资料,按姓名排序。18、显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。·ORDERBY,进行排序操作SELECT*FROMempOR

7、DERBYhiredate;19、显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序。SELECTename,job,salFROMempORDERBYjobDESC,sal;20、显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面。·要先求出所有员工的雇佣月份·to_char()函数求出月SELECTename,TO_CHAR(hiredate,'yyyy'

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。