高级数据库题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储过程题目:
有一个简化的项目管理数据库,主要管理部门、员工等信息,分别由基本表department,employee存放相关信息。其中一个员工属于一个部门,一个部门有多个员工。基本表的逻辑结构(各属性名和含义)和信息如下所示:department(dno,dname,dtel,daddress,dnumber,cname),其中dno表示部门号,dname表示部门名称,daddress表示部门地址,dnumber表示部门人数,cname表示部门领导的员工号,主码是dno,外码是cname,参照员工表中的主码员工号。
department
dno dname daddress dtel dnumber cname D1 厂部1-301 88922790 5 1001
D2 工程部2-106 88922791 12 1003
D3 技术部2-205 88922792 15 1004
D4 质监部1-202 88922793 6 1005
………………
employee(eno,ename,etitle,esex,essn,esalary,dno,eaddr,etel),其中,eno 表示员工号,ename表示员工姓名,etitle表示员工职称,esex表示性别,essn表示员工身份证号,esalary表示员工基本工资,dno表示员工所在部门,eaddr 表示员工家庭地址,etel表示员工家庭电话。
employee
Eno ename egrade esex essn esalar y dno eaddr etel 1001 李月助理工程师男***1978***1200 D1 *** *** 1002 魏兰工程师女***1975***1440 D3 *** *** 1003 赵希青技术员男***1969***1360 D2 *** ***
续表Eno ename egrade esex essn esalar y dno eaddr etel 1004 张明工程师男***1972***1600 D3 *** *** ………………………
一、编写修改工资存储过程,要求由用户指定员工号或者员工姓名或者
技术职称,以及增长幅度(比如增长10%,则该变量的值就为0.1),
存储过程完成对指定员工工资的修改,如果增长幅度是负的话,比
如-0.1,那么计算公式就是“原工资*(1-0.1)”。在存储过程中,
要注意参数值的检验,比如增长幅度是大于-1小于1的值。
二、项目管理数据库中,部门人数应该等于员工表中实际员工的人数,
由于在员工的调入、调出及内部调动(从一部门调到另一部门)时,
可能产生人数跟实际情况不符的问题。编写存储过程,检查所有部
门人数的正确性,如果不正确,则进行修改。
存储过程题目:
有一个简化的项目管理数据库,主要管理部门、员工等信息,分别由基本表department,employee存放相关信息。其中一个员工属于一个部门,一个部门有多个员工。基本表的逻辑结构(各属性名和含义)和信息如下所示:department(dno,dname,dtel,daddress,dnumber,cname),其中dno表示部门号,dname表示部门名称,daddress表示部门地址,dnumber表示部门人数,cname表示部门领导的员工号,主码是dno,外码是cname,参照员工表中的主码员工号。
department
dno dname daddress dtel dnumber cname D1 厂部1-301 88922790 5 1001
D2 工程部2-106 88922791 12 1003
D3 技术部2-205 88922792 15 1004
D4 质监部1-202 88922793 6 1005
………………
employee(eno,ename,etitle,esex,essn,esalary,dno,eaddr,etel),其中,eno 表示员工号,ename表示员工姓名,etitle表示员工职称,esex表示性别,essn表示员工身份证号,esalary表示员工基本工资,dno表示员工所在部门,eaddr 表示员工家庭地址,etel表示员工家庭电话。
employee
Eno ename egrade esex essn esalar y dno eaddr etel 1001 李月助理工程师男***1978***1200 D1 *** *** 1002 魏兰工程师女***1975***1440 D3 *** *** 1003 赵希青技术员男***1969***1360 D2 *** ***
续表Eno ename egrade esex essn esalar y dno eaddr etel 1004 张明工程师男***1972***1600 D3 *** *** ………………………
一、编写函数,收入小于1000的显示“低收入”,1000……2000的“中
低收入”,2000……5000为“中等收入”,5000……8000“中高收入”,
8000以上的“高收入”。
二、对低收入人群工资增加40%,中低收入者工资增加30%,中等收入增
工资20%,中高等收入增工资10%。
练习四:
有以下表格
1、employee 表,职工号ENO,姓名ENAME,身份证SFZ,年龄SAGE,岗位KIND,
级别ELEVEL
2、LEVELSALARY 表,kind 岗位,ELEVEL 级别,SALARY工资
3、MONSALARY 月工资表:日期MON(到月如201102 表示2011年2月),职工号ENO,
本月工资salary
要求
用触发器实现:
一、新增加人员时,在下月工资表中增加该个人的工资信息
二、职工岗位或级别调整时,修改该月和以后月份的月工资信息
三、职工离职时,删除相应的职工月工资信息
练习一:
1、STUDENT 表,学号SNO,姓名SNAME,身份证SFZ,年龄SAGE,系别SDEPT
2、COURSE 表,课程号CNO,课程名CNAME,课程类别KIND,先行课程号PCNO
3、SC 表(成绩),学号SNO,课程号CNO ,成绩GRADE
其中,
表一:1)SNO为主键
2)姓名长度最多5个汉字
3)身份证号为18位,除最后一位外,均为数字
4)年龄最大30岁,最小18岁,默认为19岁
表二:1)CNO为主键
2)课程类别为“基础”、“专业基础”、“专业”三类
3)先行课程号必须为已有课程编号
表三:1)SNO、CNO为外键,SNO+CNO为主键
2)GRADE为0……100之间整数