标签:
SQL语法练习: 1,选择部门30中的所有员工 select * from emp where deptno=30; 2,列出办事员的姓名,编号和部门编号 select ename, empno, deptno from emp where job=upper(‘clerk‘); 3,找出佣金高于薪金的员工 select * from emp where comm>sal ; 4,找出佣金高于薪金的60%的员工 select * from emp where comm > sal * 0.6; 5,找出部门10中所有经理和部门20中所有办事员的详细资料 select * from emp where (deptno=10 and job=‘manager‘) or ( deptno=20 and job=‘clerk‘ ); 6,找出部门10中所有经理,部门20中所有办事员,既不是经理也不是办事员但其薪金大于或等于2000的所有员工 的详细资料 select * from emp where (deptno=20 and job=‘manager‘)or(deptno=20 and job=‘clerk‘) or (job NOT IN(‘manager‘, ‘clerk‘) and sal >=2000) ; 7,找出收取佣金的员工的不同工作 select distinct job from emp where comm IS NOT NULL; 8,找出不收取佣金或者收取的佣金低于100的员工 select * from emp where (comm is null ) or (comm<100); 9,找出各月倒数第三天受雇的所有员工 select * from emp where last_day(hiredate)-2 =hiredate ; 10,找出早于12年前受雇的员工 select * from emp where (months_between(sysdate, hiredate) /12 ) > 12 ; 11,以首字母大学的方式显示所有员工的姓名 select initcap(ename) from emp; 12,显示正好为5个字符的员工的姓名 select ename from emp where length(ename)=5 ; 13,显示不带’R‘的员工的姓名 select ename from emp where ename not like ‘%R%‘ ; 14,显示所有员工姓名的前三个字符 select substr(ename,0,3) from emp ; 15,显示所有员工姓名,用’a‘替换所有的’A‘ select replace(ename, ‘A‘,‘a‘) from emp ; 16,显示满10年服务年限的员工的姓名和受雇日期 select ename ,hiredate from emp where (months_between(sysdate, hiredate) /12 ) > 10 ; 17,显示员工的详细信息,按姓名排序 select * from emp order by ename; 18,显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面 select ename, hiredate from emp order by hiredate; 19,显示所有员工的姓名,工作和薪金,按工作的降序排序,若工作相同则按薪金排序 select ename , job, sal from emp where job desc, sal ; 20,显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面 select ename,to_char(hiredate,‘yyyy‘) year, to_char(hiredate,‘yy‘) months from emp order by months ,year ; 21,显示在一个月为30天的情况的所有员工的日薪金,忽略余数 select ename ,round(sal/30) from emp 22,找出在任何年份的2月受聘的所有员工 select * from emp where to_char(hiredate,‘mm‘) = 2 ; 23,对于每个员工,显示其加入公司的天数 select ename, round(sysdate-hiredate) days from emp ; 24,显示姓名字段的任何位置包含’A‘的所有员工的姓名 select * from emp where ename like ‘%A%‘ ; 25,以年月日的方式显示所有员工的服务年限。 select ename ,trunc( months_between( sysdate , hiredate )/12 ) years, trunc( mod( months_between( sysdate,hiredate ),12 ) ) months, trunc( mod( (sysdate-hiredate),30 ) )days from emp ;
标签:
原文地址:http://www.cnblogs.com/mitnick/p/5463329.html