![数据库程序设计2004testc-答案_第1页](http://file4.renrendoc.com/view/90ed8a0b42a6d48db4c2185d3d23c723/90ed8a0b42a6d48db4c2185d3d23c7231.gif)
![数据库程序设计2004testc-答案_第2页](http://file4.renrendoc.com/view/90ed8a0b42a6d48db4c2185d3d23c723/90ed8a0b42a6d48db4c2185d3d23c7232.gif)
![数据库程序设计2004testc-答案_第3页](http://file4.renrendoc.com/view/90ed8a0b42a6d48db4c2185d3d23c723/90ed8a0b42a6d48db4c2185d3d23c7233.gif)
![数据库程序设计2004testc-答案_第4页](http://file4.renrendoc.com/view/90ed8a0b42a6d48db4c2185d3d23c723/90ed8a0b42a6d48db4c2185d3d23c7234.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2004-2005-1 学期数据库程序设计 TEST(C)一、数据库基础(30 分):1、数据库管理系统(DBMS)DBMS 是对数据库建立、2、画出三级模式结构图、的系统3、什么内模式?内模式( ernal Schema):亦称模式(Storage Schema),数据在数据库的表示方式。例如,数据在计算机中存储方式(顺序、B 树、Hash),以及是否加密、压缩4、常用的数据模型有哪几种层次模型网状模型关系模型对象模型5、实体型间联系实体型间联系树或森林网状结构实体型间联系通过二维表(关系)表示基于类、对象的表示两实体型实体间多对多联系,举三个例子.m:n(多对多联系)A 中一个实体对应 B
2、 中的多个实体,反之 B 中一个实体对应 A 中的多个实体例:学生与课程、工厂与产品、商店与顾客二、 写出SQL 语句(45 分)相关表结构如下:学生表课程表学习表表STUDENT(SNO,SNAME,SAGE,SSEX,SDEPT)COURSE(SC(AME,CPNO,TEACHER)O,GRADE)DEPT(DEPTNO,DNAME,LOC)职工表 EMP(EMPNO,ENAM,HIREDATE,DEPTNO)列名含义为(职工号,管理者,工种,月工资,佣金,参加工作日期,号)查询系男学生人数SELECT COUNT(*) FROM STUDENT WHERE SDEPT=MA;查询学生各系
3、的女学生人数SELECT SDEPT,COUNT(*) FROM STUDENT GROUP BY SDEPTAND SSEX=女;选 1 号课程的最高分数SELECT MAX(GRADE) FROM SC WHERE CNO=1;查询选修了 7 门以上课的学生号SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)7;查询选修 4 号课的学生名SELECT DISTINCT SNAME FROM STUDENT,SC WHERE STUDENT.SNO=SC.SNO ANDO=4;6、查询 1981 年 2 月 1 日至 1998 年 5 月 1 日参
4、加工作的职工作日期降序排序.和参加工作日期,按参加工SELECT ENAME,HIREDATE FROM EMP WHERE HIREDATE BET 01/5 月/81 ORDER BY HIREDATE DESC;7、查询每种工种的职工人数和平均工资.SELECT JOB, COUNT(*),AVG(SAL) FROM EMP GROUP BY JOB;N 01/2 月/81 AND8、查询工资超过 3000 的职工,工资,名SELECTENAME,SAL,DNAMEFROMEMP,DEPTWHERESAL3000ANDDEPT.DEPTNO=EMP.DEPTNO;9、查询在DALLAS
5、工作的所有职工SELECTENAMEFROMEMP,DEPTWHERELOC=DALASANDDEPT.DEPTNO=EMP.DEPTNO;10、查询工资超过平均工资的所有职工SELECT ENAMEFROM EMP WHERE SAL (SELECT AVG(SAL) FROM EMP);11、查询工资超过 20 号最高工资的所有职工SELECT ENAMEFROM EMP WHERE SAL (SELECT MAX(SAL) FROM EMP WHERE DEPTNO=30);12、将职工号为 7322 的工资改为 3500UPDATE EMP SET SAL=3500 WHERE EMP
6、NO=7322;13、给10 的每个职工增加 10 的工资UPDATE EMP SET SAL=SAL*1.1 WHERE DEPTNO=10;14、给名是SALE的每个职工增加 10 的工资UPDATE EMP SET SAL=SAL*1.1 WHERE DEPTNO= (SELECT DEPTNO FROM DEPT WHERE DNAME=SALE);15、删除号为 50 的职工DELETE FROM EMP WHERE DEPTNO=50;三、PLSQL 程序设计(15)1、填空:编写一个存贮过程,将每门课成绩前 3 位的学生的学生名,课名,成绩,名次存到一个数据表 GOOD 中cre
7、ate or replace procedure find_goodascursorselecto isame from course;cursor cno_grade(c_num number) isselect sno,grade from sc where cno=c_num order by grade desc;s_name varchar2(10); n number;beginfor r1 ino loopfor r2 incno_grade(exit when o)loop3;o_grade%;select snameo s_name from student where sn
8、o=;inserto good values( end loop;end loop; end;create or replace procedure find3asame,r2.grade,n);cursorselecto isame from course;cursor cno_grade(c_num number) isselect sno,grade from sc where cno=c_num order by grade DESC; s_name varchar2(10);n number; beginfor r1 in ALL CNO loopfor r2 in CNO GRAD
9、E(o) loopexit when CNO GRADE%ROWCOUNT3 o_grade% ROWCOUNT;select snameo s_name from student where sno= R2.SNO;inserto good values(ame,r2.grade,n); END LOOP;end loop; end;2、程序填空, 编写 trigger,使学生的修改只能增大。CREATE OR REPLACE TRIGGER UPDATE_AGEBEFORE ON STUDENTfor each row DECLAREupdate OF SAGESAGE_ERROR EXCEPTION; BEGINIF :new.sage=:old.sage RAISE sage_error;END IF; EXCEPTIONWHEN SAGE_ERROR THENTHENRAISE_APPLICA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论