数据库管理系统 练习与作业
数据库管理系统 练习与作业
职工档案表(emp) 职工号 empno Number(4) 第三章练习 姓名 ename Varchar2(10 工作类型job Varchar2 (9) 受雇日期 hiredateDate 工资 sal Number(7, 2 奖金 comm Number(7, 2) 部门号 deptno Number2() 列出所有在部门20工作的雇员姓名,且列名为name 列出名字不以‘N开头的工作类型 找出工资比奖金高的雇员,按工资降序排列,姓名升序 排列 今列出有关雇员姓名、奖金收入百分比的信息,按雇员姓 名排序,不包括奖金未知的雇员 2
2 第三章 练习一 职工档案表(emp) 职工号 empno Number(4) 姓名 ename Varchar2(10) 工作类型 job Varchar2(9) 受雇日期 hiredate Date 工资 sal Number(7,2) 奖金 comm Number(7,2) 部门号 deptno Number(2) ❖列出所有在部门20工作的雇员姓名,且列名为name ❖列出名字不以‘N’开头的工作类型 ❖找出工资比奖金高的雇员,按工资降序排列,姓名升序 排列 ❖列出有关雇员姓名、奖金收入百分比的信息,按雇员姓 名排序,不包括奖金未知的雇员
练习二 student(学生信息表) tudent sno sname sex birthdayclass 为“95031班或性别为「08曾华男|09077903 “女”的同学记录 105匡明男10/02/7595031 以cass为降序、sn为107王丽女01/237695033 升序显示 student表的所101李军男02/207619033 有记录 109王芳女02/10/7595031 显示各班的学生人数 103陆军男06/03/7495031 3
3 练习二 student (学生信息表) sno sname sex birthday class 108 曾华 男 09/01/77 95033 105 匡明 男 10/02/75 95031 107 王丽 女 01/23/76 95033 101 李军 男 02/20/76 95033 109 王芳 女 02/10/75 95031 103 陆军 男 06/03/74 95031 ❖显示student表中班级 为“95031”班或性别为 “女”的同学记录 ❖以class为降序、sno为 升序显示student表的所 有记录 ❖显示各班的学生人数
teacher(老师信息表) tno tname sex birthday prof depart 804李诫男」120258副教授」计算机系 856李旭男03/1269讲师电子工程系 825王萍女050572助教计算机系 831刘冰女08/14/77助教电子工程系 冷列出教师表中所有的不重复的单位( depart列)
4 teacher(老师信息表) tno tname sex birthday prof depart 804 李诚 男 12/02/58 副教授 计算机系 856 李旭 男 03/12/69 讲师 电子工程系 825 王萍 女 05/05/72 助教 计算机系 831 刘冰 女 08/14/77 助教 电子工程系 ❖列出教师表中所有的不重复的单位(depart列)
course (课程表) score(成绩表 cho chame tno sno cno degree 3-105计算机导论825 1033-24586 3-245操作系统804 1093-24568 6-166数字电路 856 1053-24575 9-888高等数学825 103310592 1053-105 88 显示 score表中成绩在60到80之间的所有记录 显示 score表中成绩为85,86或88的记录 093-10576 以cno升序、 degree降序显示scoe表的所有1013-10564 记录 1073-10591 显示 score表中的最高分的学生学号和课程号 1083-10578 显示每一门课程的课程名和平均分 1016-166 85 用嵌套查询从 score表中选出选修“3-105课 076-16679 程的成绩高于“109”号同学成绩的所有同学的1086-16681 记录 5
5 score(成绩表) sno cno degree 103 3-245 86 109 3-245 68 105 3-245 75 103 3-105 92 105 3-105 88 109 3-105 76 101 3-105 64 107 3-105 91 108 3-105 78 101 6-166 85 107 6-166 79 108 6-166 81 ❖显示score表中成绩在60到80之间的所有记录 ❖显示score表中成绩为85,86或88的记录 ❖以cno升序、degree降序显示score表的所有 记录 ❖显示score表中的最高分的学生学号和课程号 course(课程表) cno cname tno 3-105 计算机导论 825 3-245 操作系统 804 6-166 数字电路 856 9-888 高等数学 825 ❖显示每一门课程的课程名和平均分 ❖用嵌套查询从score表中选出选修“3-105”课 程的成绩高于“109”号同学成绩的所有同学的 记录
职工档案表(emp) 职工号 empno Number(4) 练习 姓名 ename Varchar2(10 工作类型job Varchar2 (9) 受雇日期 hiredateDate 工资 sal Number(7, 2 奖金 comm Number(7, 2) 部门号 deptno Number2() 冷写出emp的定义语句,其中职工号为 主键,姓名、工作类型属性不可空, 且工资要求不可低于800元。 6
6 练习三 职工档案表(emp) 职工号 empno Number(4) 姓名 ename Varchar2(10) 工作类型 job Varchar2(9) 受雇日期 hiredate Date 工资 sal Number(7,2) 奖金 comm Number(7,2) 部门号 deptno Number(2) ❖写出emp的定义语句,其中职工号为 主键,姓名、工作类型属性不可空, 且工资要求不可低于800元
上机练习一 令目标:熟练掌握SQL语句及 SQL PLUS命令。 令练习内容: 把练习二中的后两张表,用 SQL PLUS在数 据库中创建,并把创建表的语法保存到文件 create xxx(xx用你的姓名拼音缩写代替)中; 表结构根据数据自行定义。 往表中插入数据,数据在练习二中已给出。 试验练习二中的各习题的语句及结果,保存 到文件 select xxx中
7 上机练习一 ❖ 目标:熟练掌握SQL语句及SQL PLUS命令。 ❖ 练习内容: 把练习二中的后两张表,用SQL PLUS在数 据库中创建,并把创建表的语法保存到文件 create_xxx(xxx用你的姓名拼音缩写代替)中; 表结构根据数据自行定义。 往表中插入数据,数据在练习二中已给出。 试验练习二中的各习题的语句及结果,保存 到文件select_xxx中
实验报告要求 以表格形式给出两张表的结构定义说明; 冷写出创建表的语法; 写出插入数据的语句,要求每个表写一句 即可; 令写出经上机验证后的练习题的语句和执行 结果
8 实验报告要求 ❖ 以表格形式给出两张表的结构定义说明; ❖ 写出创建表的语法; ❖ 写出插入数据的语句,要求每个表写一句 即可; ❖ 写出经上机验证后的练习题的语句和执行 结果
第四章练习一游标 1、假设已存在表 bonus( empno, bonus) 要求从emp表中取出sa及comm的值, 按下列公式计算红利,并写入 bonus表中 红利( bonus)=sa50%+comm*50% 要求:使用游标。 1)、用直到型循环实现; 2)、用FOR循环实现
9 第四章 练习一 游标 1、假设已存在表bonuss(empno,bonus), 要求从emp表中取出sal及comm的值, 按下列公式计算红利,并写入bonus表中: 红利(bonus)=sal*50%+comm*50%。 要求:使用游标。 1)、用直到型循环实现; 2)、用FOR循环实现
第四章练习一游标 2、找出工资最高的员工所在部门,并给 该部门所有员工的工资中增加工龄补贴, 每年增加$15。要求显示部门名称以及每 位员工的姓名、工龄、工龄补贴的金额。 提示:工龄是当前日期减去参加工作日期 后,折算成年数,可四舍五入。(请复习 相关函数) ☆要求:使用带参数的游标进行处理 10
10 第四章 练习一 游标 ❖ 2、找出工资最高的员工所在部门,并给 该部门所有员工的工资中增加工龄补贴, 每年增加$15。要求显示部门名称以及每 位员工的姓名、工龄、工龄补贴的金额。 ❖ 提示:工龄是当前日期减去参加工作日期 后,折算成年数,可四舍五入。 (请复习 相关函数) ❖ 要求:使用带参数的游标进行处理