练前准备
用户:Oracle的系统用户Scott下
工具: SQL developer
问题
正菜开始上
1、查看工资等于1250的员工信息
2、查看工作等于clerk的员工信息
3、查看工资大于1250的员工姓名和工作
4、查看工资大于等于2000的员工信息
5、查看工资小于等于2000的员工信息
6、查看工资不等于1500的员工信息
7、查看入职日期在81年后的员工信息
解法1:
解法2:
8、列出部门30中的所有员工
9、列出所有办事员clerk的姓名,编号,部门编号
10、找出佣金高于薪金的员工
11、找出佣金高于薪金60%的员工
12、找出部门10中的所有经理和部门20中的所有办事员的详细资料
13、找出部门10中所有经理,部门20中所有办事员,既不是经理又不是办事员但薪金大于或等于2000的所有员工的详细资料
14、找出收取佣金的员工的不同工作
15、找出不收取佣金或收取佣金低于100的员工
16、找出各月倒数第三天受雇的所有员工
17、找出早于12年前受雇的员工
解法1:
解法2:
解法3:
18、以首字母大写的方式显示所有员工的姓名
19、显示正好为5个字符的员工的姓名
下划线的个数为5个
20、显示不带有“R"的员工的姓名
解法1:
解法2:
21、显示所有员工姓名的前3个字符
22、显示所有员工的姓名,用a来替换所有的A
23、显示满10年服务年限的员工的姓名和受雇日期
加floor函数的原因是sysdate-hiredate所得值为天数,需要除以365,可能会出现除不尽的情况
24、显示员工的详细资料,按姓名排序
实际上是按照ename的ASCII码值进行排序的
25、显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
26、显示所有员工的姓名、工作、薪金,按工作降序排序,若工作相同则按薪金排序
27、显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面
28、显示在一个月为30天的情况所有员工的日新金,忽略余数
nvl(comm,0)的意思是 当comm为null时,将它的值设为0
29、找出在任何年份2月受聘的所有员工
30、对于每个员工,显示其加入公司的天数
31、显示姓名字段的任何位置包含A的所有员工的姓名
大功告成!!!