数据库系统实验报告.doc

上传人:小** 文档编号:16806243 上传时间:2020-10-26 格式:DOC 页数:55 大小:1.61MB
收藏 版权申诉 举报 下载
数据库系统实验报告.doc_第1页
第1页 / 共55页
数据库系统实验报告.doc_第2页
第2页 / 共55页
数据库系统实验报告.doc_第3页
第3页 / 共55页
资源描述:

《数据库系统实验报告.doc》由会员分享,可在线阅读,更多相关《数据库系统实验报告.doc(55页珍藏版)》请在装配图网上搜索。

1、数据库系统实验班 级 姓 名 学 号 任课教师 计算机学院55实验一:基本SQL语言1. 实验目标1.1. 熟练掌握基本的SQL语言。能够利用SQL定义语言(DDL)创建、删除和修改数据库的基本对象(表、视图、约束和索引等),利用SQL查询语言(Select)对数据中数据进行检索,利用SQL修改语言(Insert、Update、Delete)对数据中数据进行插入、修改和删除操作。能够利用SQL控制语言(DCL)将数据库的基本对象(表和视图等)的各种权限授予其它用户。1.2. 熟悉SQL Server 2000的交互式SQL语言的操作环境。能够利用查询分析器进行SQL语言的编辑和提交。2. 实验

2、要求2.1. 写出以下各个实验的SQL语句。2.2. 在SQL Server 2000的查询分析器环境中执行SQL语句,写出每次执行的结果。2.3. 对于错误的执行结果,分析产生错误的原因,并写出纠正错误的方案。2.4. SQL语句的书写规范,要求每个查询子句独占一行,如:Select SNO, SNAMEFrom SWhere Sage=20 ;注意:每次实验之后请作好数据库备份。下次实验之前进行数据库恢复。3. 实验课时本次实验共计10课时。4. 实验数据本次实验中用到6个关系表(当前用户):COURSE(课程)、DEPT(系)、S(学生)、PROF(教师)、PC(授课)、SC(选修)。4

3、.1. 关系模式。4.2. 6个关系表的定义。 COURSE(课程)字段名称类型说明CNO课程号VARCHAR(10)PK,NOT NULLCNAME课程名VARCHAR(10)NOT NULLPCNO先修课程号VARCHAR(10)CREDIT学分REAL DEPT(系)字段名称类型说明DNO系号VARCHAR(10)PK,NOT NULLDNAME系名VARCHAR(10)NOT NULLDEAN系主任号VARCHAR(10)系主任作为教师的编号 S(学生)字段名称类型说明SNO学生号VARCHAR(10)PK,NOT NULLSNAME学生名VARCHAR(10)NOT NULLSEX性

4、别VARCHAR(10)0,女;1,男AGE年龄REALDNO所在系号VARCHAR(10)FK PROF(教师)字段名称类型说明PNO教师号VARCHAR(10)PK,NOT NULLPNAME教师名VARCHAR(10)NOT NULLSAL工资额FLOATAGE年龄REALDNO所在系号VARCHAR(10)FK SC(选修)字段名称类型说明SNO学生号VARCHAR(10)PK,NOT NULLFKCNO课程号VARCHAR(10)FKSCORE成绩REAL PC(授课)字段名称类型说明PNO学生号VARCHAR(10)PK,NOT NULLFKCNO课程号VARCHAR(10)FK4

5、.3. 6个关系表的元组数据。 COURSE(课程)CNOCNAMEPCNOCREDITC1数据库C54C2离散数学C72C3组合数学C22C4操作系统C94C5数据结构C23C6近世代数C72C7高等数学4C8C语言C22C9数理逻辑4 DEPT(系)DNODNAMEDEAND1计算机P01D2数学P04D3物理P07 S(学生)SNOSNAMESEXAGEDNOS1宋江159D1S2吴用148D1S3鲁智深142D1S4孙二娘040D2S5林冲151D2S6李逵146D2S7武松136D3S8扈三娘030D3 PROF(教师)PNOPNAMESALAGEDNOP1刘备180059D1P2诸

6、葛亮160048D1P3关羽1400D1P4曹操220040D2P5司马懿200061D2P6张辽170046D2P7孙权210066D3P8周瑜190030D3P9鲁肃150050D3 SC(选修)SNOCNOSCORES1C180S1C260S1C340S1C490S1C570S1C660S1C750S1C870S1C980S2C180S2C260S2C340S2C490S3C570S3C660S4C170S4C260S4C355S4C485S4C570S4C670S4C780S4C840S4C970S5C340S5C490S5C570S5C660S5C750S6C180S6C260S6C

7、340S6C490S7C130S7C280S7C340S7C470S7C580S7C660S7C790S7C850S7C980S8C260S8C355S8C485 PC(授课)PNOCNOP1C1P2C2P3C3P4C4P5C5P6C6P7C7P8C8P9C95. 实验步骤5.1. SQL Server 2000数据库的安装、启动和创建新的数据库。SQL Server 2000已安装在本机,一般采用的是Windows认证方式。因此当你以默认Windows用户administrator登陆进window操作系统之后,你就可以直接通过服务管理器启动SQL Server 2000。启动成功之后的状态

8、如下(启动成功之后,可以关闭服务管理器):之后可以通过打开查询分析器登陆到SQL Server 2000,建立和DBMS的会话。利用此windows默认用户身份登录SQL ServerWindows的系统管理员默认对应SQL Server的系统管理员用户sa。因此,当你以windows的系统管理员身份登陆到SQL Server之后,你在SQL Server中对应的用户名就是sa。你可以对SQL Server执行任何操作了(当然你也可以创建一个新的用户,该用户最好在windows和SQL Server中以相同的名字同时创建)。利用企业管理器创建新的数据库test。test数据库作为本次实验用数据

9、库,在test数据库中创建本次实验的所有数据库对象。5.2. Create语句利用Create语句创建以上6个关系表。同时利用Insert语句将实验数据插入到相应的表中。1) 创建COURSE(课程)的Create语句。表的创建SQL语句、出现的主要错误及原因:CREATE TABLE COURSE( CNO VARCHAR(10) PRIMARY KEY NOT NULL, CNAME VARCHAR(10) NOT NULL, PCNO VARCHAR(10), CREATIT REAL)向表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO COURSE(CNO,CNAM

10、E,PCNO,CREATIT) values(C1,数据库,C5,4) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C2,离散数学,C7,2) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C3,组合数学,C2,2) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C4,操作系统,C9,4) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C5,数据结构,C2,3) INSERT I

11、NTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C6,近世代数,C7,2) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C7,高等数学,NULL,4) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C8,C语言,C2,2) INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C9,数理逻辑,NULL,4)INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(

12、C1,数据库,C5,4)中,字符型varchar类型的要用单引号,数字型的real,float类型的不用加单引号,上面的4应改为4INSERT INTO COURSE(CNO,CNAME,PCNO,CREATIT) values(C9,数理逻辑,4)VALUES值中若为空,应写为NULL,不是用两个单引号表示2) 创建DEPT(系)的Create语句。表的创建SQL语句、出现的主要错误及原因:CREATE TABLE DEPT( DNO VARCHAR(10) PRIMARY KEY NOT NULL, DNAME VARCHAR(10) NOT NULL, DEAN VARCHAR(10)向

13、表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO DEPT(DNO,DNAME,DEAN) VALUES(D1,计算机,P01)INSERT INTO DEPT(DNO,DNAME,DEAN) VALUES(D2,数学,P04)INSERT INTO DEPT(DNO,DNAME,DEAN) VALUES(D3,物理,P07)3) 创建S(学生)的Create语句。表的创建SQL语句、出现的主要错误及原因:CREATE TABLE S( SNO VARCHAR(10) PRIMARY KEY NOT NULL, SNAME VARCHAR(10) NOT NULL, SEX

14、 VARCHAR(10) CHECK(SEX=0 OR SEX=1), AGE REAL , DNO VARCHAR(10) FOREIGN KEY REFERENCES DEPT(DNO) NOT NULL)有外键约束时格式为 DNO VARCHAR(10) FOREIGN KEY REFERENCES DEPT(DNO) NOT NULL向表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S1,宋江,1,59,D1)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S2

15、,吴用,1,48,D1)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S3,鲁智深,1,42,D1)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S4,孙二娘,0,40,D2)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S5,林冲,1,51,D2)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S6,李逵,1,46,D2)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S7,武松,1,36

16、,D3)INSERT INTO S(SNO,SNAME,SEX,AGE,DNO) VALUES(S8,扈三娘,0,30,D3)4) 创建PROF(教师)的Create语句。表的创建SQL语句、出现的主要错误及原因:CREATE TABLE PROF( PNO VARCHAR(10) PRIMARY KEY NOT NULL, PNAME VARCHAR(10) NOT NULL, SAL FLOAT, AGE REAL, DNO VARCHAR(10) FOREIGN KEY REFERENCES DEPT(DNO) NOT NULL)INSERT INTO PROF(PNO,PNAME,SA

17、L,AGE,DNO) VALUES(P1,刘备,1800,59,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P2,诸葛亮,1600,48,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P3,关羽,1400,NULL,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P4,曹操,2200,40,D2)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P5,司马懿,2000,61,D2)INSER

18、T INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P6,张辽,1700,46,D2)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P7,孙权,2100,66,D3)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P8,周瑜,1900,30,D3)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P9,鲁肃,1500,50,D3)向表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO PROF(PNO,PNAM

19、E,SAL,AGE,DNO) VALUES(P1,刘备,1800,59,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P2,诸葛亮,1600,48,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P3,关羽,1400,NULL,D1)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P4,曹操,2200,40,D2)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P5,司马懿,2000,61,D2)I

20、NSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P6,张辽,1700,46,D2)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P7,孙权,2100,66,D3)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P8,周瑜,1900,30,D3)INSERT INTO PROF(PNO,PNAME,SAL,AGE,DNO) VALUES(P9,鲁肃,1500,50,D3)5) 创建SC(选修)的Create语句。CREATE TABLE SC( SNO VAR

21、CHAR(10) FOREIGN KEY REFERENCES S(SNO) NOT NULL, CNO VARCHAR(10) FOREIGN KEY REFERENCES COURSE(CNO) NOT NULL, SCORE REAL, PRIMARY KEY(SNO,CNO)有多个字段的约束必须定义为表的约束形式当SNO,CNO都是主键时格式应为:PRIMARY KEY(SNO,CNO)向表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C1,80)INSERT INTO SC(SNO,CNO,SCORE)

22、VALUES (S1,C2,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C3,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C4,90)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C5,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C6,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C7,50)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C8,70)I

23、NSERT INTO SC(SNO,CNO,SCORE) VALUES (S1,C9,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S2,C1,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S2,C2,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S2,C3,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S2,C4,90)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S3,C5,70)INSERT INTO SC(SNO,

24、CNO,SCORE) VALUES (S3,C6,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C1,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C2,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C3,55)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C4,85)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C5,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES

25、(S4,C6,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C7,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C8,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S4,C9,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S5,C3,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S5,C4,90)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S5,C5,70)INSERT I

26、NTO SC(SNO,CNO,SCORE) VALUES (S5,C6,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S5,C7,50)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S6,C1,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S6,C2,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S6,C3,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S6,C4,90)INSERT INTO SC(SNO,CNO,SCO

27、RE) VALUES (S7,C1,30)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C2,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C3,40)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C4,70)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C5,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C6,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C7,

28、90)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C8,50)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S7,C9,80)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S8,C2,60)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S8,C3,55)INSERT INTO SC(SNO,CNO,SCORE) VALUES (S8,C4,85)6) 创建PC(授课)的Create语句。表的创建SQL语句、出现的主要错误及原因:CREATE TABLE PC( PNO

29、 VARCHAR(10) FOREIGN KEY REFERENCES PROF(PNO) NOT NULL, CNO VARCHAR(10) FOREIGN KEY REFERENCES COURSE(CNO) NOT NULL)向表插入数据的SQL语句、出现的主要错误及原因:INSERT INTO PC(PNO,CNO) VALUES(P1,C1)INSERT INTO PC(PNO,CNO) VALUES(P2,C2)INSERT INTO PC(PNO,CNO) VALUES(P3,C3)INSERT INTO PC(PNO,CNO) VALUES(P4,C4)INSERT INTO

30、PC(PNO,CNO) VALUES(P5,C5)INSERT INTO PC(PNO,CNO) VALUES(P6,C6)INSERT INTO PC(PNO,CNO) VALUES(P7,C7)INSERT INTO PC(PNO,CNO) VALUES(P8,C8)INSERT INTO PC(PNO,CNO) VALUES(P9,C9)*/5.3. Select语句7) 给出所有老师的信息。该查询的SQL语句、出现的错误及原因:SELECT * FROM PROF8) 出所有老师的姓名及税后工资额(税额5%)。该查询的SQL语句、出现的错误及原因:SELECT PNAME,SAL*0.

31、95 FROM PROF9) 找出所有选修课程的学生。该查询的SQL语句、出现的错误及原因:SELECT distinct SNOFROM SCall在实际代码中,不加,否则无效10) 找出工资低于1500的职工的姓名、工资、系名。该查询的SQL语句、出现的错误及原因:select PNAME,SAL,DNAMEFROM PROF,DEPTWHERE SALP2.SAL16) 求选修了C1或C2课程的学生姓名。该查询的SQL语句、出现的错误及原因:SELECT SNAMEFROM S,SCWHERE SC.SNO=S.SNO AND (SC.CNO=C1 OR SC.CNO=C2)SELECT

32、 SNAME FROM S,SCWHERE S.SNO=SC.SNO AND CNO IN (C1,C2)17) 列出姓名以“张”打头的教师的所有信息。该查询的SQL语句、出现的错误及原因:SELECT *FROM PROFWHERE PNAME LIKE 张%18) 列出名称中含有4个字符以上,且倒数第3个字符是“d”,倒数第2个字符是“_”的教师的所有信息。该查询的SQL语句、出现的错误及原因:SELECT *FROM PROFWHERE PNAME LIKE %d_escape 19) 按系名升序列出老师姓名,所在系名,同一系中老师按姓名降序排列。该查询的SQL语句、出现的错误及原因:S

33、ELECT PNAME,DEANFROM PROF,DEPTWHERE PROF.DNO=DEPT.DNOORDER BY DEAN ASC,PNAME DESC20) 求选修了C1或C2号而没有选C3号课程的学生号。该查询的SQL语句、出现的错误及原因:SELECT DISTINCT SNOFROM SCWHERE CNO IN (C1,C2)AND CNO NOT IN (C3)21) 列出各系的老师的最高、最低、平均工资。该查询的SQL语句、出现的错误及原因:SELECT DNO,MAX(SAL),MIN(SAL),AVG(SAL)FROM PROFGROUP BY DNO22) 列出计

34、算机系总分超过300分的学生的平均成绩及学号。该查询的SQL语句、出现的错误及原因:SELECT AVG(SCORE),S.SNOFROM S,SC,DEPTWHERE S.DNO=DEPT.DNO AND DNAME=计算机 AND S.SNO=SC.SNOGROUP BY S.SNOHAVING SUM(SCORE)=30023) 列出选修了两门课程以上的学生的平均成绩及学号。该查询的SQL语句、出现的错误及原因:SELECT AVG(SCORE),SNOFROM SCGROUP BY SNOHAVING COUNT(*)=224) 求选修了课程的学生人数。该查询的SQL语句、出现的错误及

35、原因:SELECT COUNT(DISTINCT SNO)FROM SC25) 求各系60岁以上老师的平均工资。该查询的SQL语句、出现的错误及原因:SELECT AVG(SAL)FROM PROFWHERE AGE60GROUP BY DNO26) 找出年龄值为空的老师姓名。该查询的SQL语句、出现的错误及原因:SELECT PNAMEFROM PROFWHERE AGE IS NULL27) 列出选修了C1号和C2号课程的学生的学号。该查询的SQL语句、出现的错误及原因:SELECT SNOFROM SCWHERE CNO=C1 AND SNO IN (SELECT SNO FROM SC

36、 WHERE CNO=C2 )28) 找出平均成绩最高的学生号。该查询的SQL语句、出现的错误及原因:SELECT SNOFROM SCGROUP BY SNOHAVING AVG(SCORE)=ALL(SELECT AVG(SCORE)FROM SCGROUP BY SNO)子查询返回的值多于一个。当子查询跟随在 =、!=、= 之后,或子查询用作表达式时,这种情况是不允许的。要加上all29) 求S1号学生所选课程的课程记录。该查询的SQL语句、出现的错误及原因:SELECT *FROM COURSEWHERE EXISTS(SELECT * FROM SC WHERE SC.CNO=COU

37、RSE.CNO AND SC.SNO=S1)30) 列出选修了所有课程的学生名。该查询的SQL语句、出现的错误及原因:SELECT SNAMEFROM SWHERE NOT EXISTS(SELECT *FROM COURSEWHERE NOT EXISTS(SELECT *FROM SCWHERE SC.CNO=COURSE.CNOAND SC.SNO=S.SNO)31) 列出至少选修了S1号学生选修的所有课程的学生名。该查询的SQL语句、出现的错误及原因:SELECT SNAMEFROM SWHERE NOT EXISTS(SELECT *FROM SC SC1WHERE SC1.CNO=

38、S1AND NOT EXISTS(SELECT * FROM SC SC2WHERE SC2.CNO=SC1.CNO AND SC2.SNO=S.SNO)32) 找出所有只教授一门课程的老师姓名。该查询的SQL语句、出现的错误及原因:SELECT PNAMEFROM PROFWHERE PNO IN(SELECT PNOFROM PCGROUP BY(PNO)HAVING COUNT(PNO)=1)UNIQUE在查询分析器中不识别,用IN以及GROUP BY来实现相同功能33) 找出至少选修了两门课程的学生姓名。该查询的SQL语句、出现的错误及原因:SELECT SNAMEFROM SWHER

39、E SNO IN(SELECT SNOFROM SCGROUP BY(SNO)HAVING COUNT(SNO)=2)34) 找出平均成绩及格的学生及其平均分数。该查询的SQL语句、出现的错误及原因:SELECT SNAME,AVG_SCOREFROM S,(SELECT SNO,AVG(SCORE) FROM SCGROUP BY SNOHAVING AVG(SCORE)=60)AS SC_AVG(SNO,AVG_SCORE)WHERE S.SNO=SC_AVG.SNO利用派生关系解决属性之间的问题,重新生成一个临时表并加以引用5.4. Insert语句35) 将平均成绩大于60的学生加入到

40、EXCELLENT中(先自行定义创建EXCELLENT表)。该插入的SQL语句、出现的错误及原因:CREATE TABLE EXCELLENT(SNO VARCHAR(10),SCORE REAL)INSERT INTO EXCELLENT(SNO,SCORE)SELECT SNO,AVG(SCORE)FROM SCGROUP BY SNOHAVING AVG(SCORE)905.5. Update语句36) 将老师工资上调5%。该更新的SQL语句、出现的错误及原因:UPDATE PROFSET SAL=SAL*1.0537) 将D1系系主任的工资改为该系的平均工资。该更新的SQL语句、出现的

41、错误及原因:UPDATE PROFSET SAL=(SELECT AVG(SAL)FROM PROFWHERE DNO=D1)WHERE PNO=(SELECT DEANFROM DEPTWHERE DNO=D1 )38) 工资超过2000的缴纳10%所得税,其余的缴纳5%所得税。求教师的税后工资。该更新的SQL语句、出现的错误及原因:UPDATE PROFSET SAL=SAL*0.9WHERE SAL2000UPDATE PROFSET SAL=SAL*0.95WHERE SAL=200039) 将计算机系学生的选课成绩上调20%。该更新的SQL语句、出现的错误及原因:UPDATE SCS

42、ET SCORE=SCORE*1.2WHERE EXISTS(SELECT *FROM S,DEPTWHERE S.DNO=DEPT.DNOAND DEPT.DNAME=计算机AND S.SNO=SC.SNO)5.6. Delete语句40) 删除张辽老师所有的任课记录。该删除的SQL语句、出现的错误及原因:DELETE FROM PCWHERE PNO IN(SELECT PNOFROM PROFWHERE PNAME=张辽)DELETE语句中不能使用连接,应该考虑使用子查询并且from后面的表明只能为一个41) 清除EXCELLENT表中所有记录。该删除的SQL语句、出现的错误及原因:DE

43、LETE FROM EXCELLENT42) 删除低于平均工资的老师记录。该删除的SQL语句、出现的错误及原因:DELETE FROM PROFWHERE SAL92)45) 利用Drop语句删除EXCELLENT关系表的定义。该删除的SQL语句、出现的错误及原因:DROP DATABASE EXCELLENT5.8. Grant和Revoke语句按以下各图创建一个用户,利用Grant和Revoke语句授予和收回表的各种权限。根据以下几个图示进行实验。46) 授权1的Grant和Revoke语句。该授权的SQL语句、出现的错误及原因:47) 授权2的Grant和Revoke语句。该授权的SQL

44、语句、出现的错误及原因:48) 授权3的Grant和Revoke语句。该授权的SQL语句、出现的错误及原因:49) 授权4的Grant和Revoke语句。该授权的SQL语句、出现的错误及原因:5.9. Index50) 创建关系表COURSE(课程)基于列“CNAME”的索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX CNAME_INDEX ON COURSE (CNAME)51) 创建关系表DEPT(系)基于列“DNAME”的索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX DNAME_INDEX ON D

45、EPT(DNAME)52) 创建关系表S(学生)基于列“SNAME”的索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX SNAME_INDEX ON S(SNAME)53) 创建关系表PROF(教师)基于列“PNAME,DNO”的联合索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX P_INDEX ON PROF(PNAME,DNO)54) 创建关系表SC(选修)基于列“SNO”的索引和基于列“CNO”的索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX SC_INDEX

46、 ON SC(SNO,CNO)55) 创建关系表PC(授课)基于列“PNO”的索引和基于列“CNO”的索引的Create语句。该索引创建的SQL语句、出现的错误及原因:CREATE INDEX PC_INDEX ON PC(PNO,CNO)5.10. View56) 创建工资少于2000元的教工视图(水平视图)。该视图创建的SQL语句、出现的错误及原因:CREATE VIEW P_SAL1AS (SELECT *FROM PROFWHERE SAL2000)57) 创建只能访问列“PNO , PNAME , SAL”的教工视图(垂直视图)。该视图创建的SQL语句、出现的错误及原因:CREATE

47、 VIEW P_SAL2AS (SELECT PNO,PNAME,SALFROM PROF)58) 创建工资少于2000元且只能访问列“PNO , PNAME , SAL”的教工视图(行列视图)。该视图创建的SQL语句、出现的错误及原因:CREATE VIEW P_SALAS (SELECT PNO,PNAME,SALFROM PROFWHERE SAL2000)59) 创建可以访问列“SNO , SNAME , CNAME , SCORE”的视图(连接视图)。该视图创建的SQL语句、出现的错误及原因:CREATE VIEW S_SC_CAS(SELECT S.SNO,SNAME,CNAME,

48、SCOREFROM S,SC,COURSEWHERE S.SNO=SC.SNOAND SC.CNO=COURSE.CNO)SNO不明确,要在sno前加限制60) 创建每个学生的平均成绩的视图(分组视图)。该视图创建的SQL语句、出现的错误及原因:CREATE VIEW SC_AVG(SNO,AVG)AS (SELECT SNO,AVG(SCORE)FROM SCGROUP BY SNO)实验二:嵌入式SQL语言1. 实验目标1.1. 熟练掌握数据库前端开发工具PowerBuilder的使用。能利用PowerBuilder工具建立和Oracle数据库的连接,并利用PowerBuilder进行关系模式的定义。1.2. 熟练掌握PowerBuilder的各种控件的使用。1.3. 熟悉Oracle的嵌入式SQL语言。能够利用嵌入式SQL语言实现对表数据的更新和查询。1.4. 熟悉视图的操作。能够根

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!