Oracle数据库PL SQL开发、Oracle-SQL开发习题答案

本文详细介绍了Oracle数据库的多个章节练习,涵盖从基础的查询语句编写到复杂的多表连接、子查询和事务控制。练习内容包括查询员工信息、工资计算、数据限制与排序、子查询、集合运算等,旨在帮助读者深入理解并掌握Oracle的SQL语法和PL/SQL开发技巧。
摘要由CSDN通过智能技术生成

第2章 编写简单的查询语句

练习1
1.使用两种方式查询所有员工(EMP)信息。
2.查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号。

练习2
1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。
2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)

练习3
1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。

练习4
1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示格式为:XXX的第一年总收入为XXX。
2.查询员工表中一共有哪几种岗位类型。
课后作业
1.分别选择员工表、部门表、薪资等级表中的所有数据
2.分别查看员工表、部门表、薪资等级表结构。

第3章 限制数据和对数据排序

练习1
1.查询职位为SALESMAN的员工编号、职位、入职日期。
2.查询1985年12月31日之前入职的员工姓名及入职日期。
3.查询部门标号不在10部门的员工姓名、部门编号。

练习2
1.查询入职日期造82年至85年员工姓名,入职日期。
2.查询月薪在3000到5000的员工姓名,月薪。
3.查询部门编号为10或者20的员工姓名,部门编号。
4.查询经理编号为7709,7566,7788的员工姓名,经理编号。

练习3
1.查询员工姓名以W开头的员工姓名。
2.查询员工姓名倒数第2个字符为T的员工姓名。
3.查询奖金为空的员工姓名,奖金。

练习4
1.查询工资超过2000并且职位是WANAGER,或者职位是SALESMAN的员工姓名、职位、工资。
2 .查询工资超过2000并且职位是WANAGER或SALESMAN的员工姓名、职位、工资。
3.查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。
4.查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。
5.查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。

练习5
1.查询部门在20或30的员工姓名,部门编号,并按照工资升序排序。
2.查询工资在2000-3000之间,部门不在10号的员工姓名,部门编号,工资,并按照部门升序,工资降序排序。
3.查询入职日期在82年至83年之间,职位以SALES或者MAN开头的员工姓名,入职日期,职位,并按照入职日期降序排序。

课后作业
1.查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
2.查询员工姓名的第三个字母是a的员工姓名。
3.查询除了10、20号部门以外的员工姓名、部门编号。
4.查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。
5.查询没有上级的员工(经理号为空)的员工姓名。
6.查询工资大于等于4500并且部门为10或者20的员工的姓名,工资,部门编号。

#第4章 单行函数
练习1
1.写一个查询,用首字母大写,其他字母小写显示雇员的ename,显示名字的长度,并给每列一个适当的标签,条件是满足所有雇员名字的开始字母是J、A或M的雇员,并对查询结果按雇员的ename升序排序。(提示:使用initcap、length、substr)

练习2
1.查询员工姓名中包含大写或小写字母A的员工姓名。
2.查询部门编号为10或20,入职日期在81年5月1日之后,并且姓名中包含大写字母A的员工姓名,员工姓名长度。(提示:要求使用INSTR函数)
3.查询每个职工的编号,姓名,工资
-要求将查询到的数据按照一定的格式合并成一个字符串
-前10位:编号,不足部分用填充,左对齐
-中间10位:姓名,不足部分用
填充,左对齐
-后10位:工资,不足部分用*填充,右对齐

练习3
1.写一个查询,分别计算100.456四舍五入到小数点后第2位,第1位,整数位的值。
2.写一个查询,分别计算100.456从小数点后第2位,第1位,整数位截断的值。

练习4
1.查询每个员工截止到现在一共入职多少天?
2.当前日期为2015年,指定日期格式DD-MON-RR,指定日期为01-1月-01,该日期实际所代表的日期为?
3. 当前日期为2015年,指定日期格式DD-MON-RR,指定日期为01-1月-95,该日期实际所代表的日期为?
4.当前日期为1998年,指定日期格式DD-MON-RR,指定日期为01-1月-01,该日期实际所代表的日期为?
5.当前日期为1998年,指定日期格式DD-MON-RR,指定日期为01-1月-95,该日期实际所代表的日期为?
6.当前日期为1998年,指定日期格式DD-MON-YY,指定日期为01-1月-01,该日期实际所代表的日期为?
7.当前日期为1998年,指定日期格式DD-MON-YY,指定日期为01-1月-95,该日期实际所代表的日期为?

练习5
1.查询服务器当前时间。
2.查询部门10,20的员工截止到2000年1月1日,工作了多少个月,入职的月份。(使用months_between, extract)
3.如果员工使用期6个月,查询职位不是MANAGER员工姓名,入职日期,转正日期,入职日期后的第一个星期一,入职当前月的最后一天日期。(使用add_months, next_day, l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值