ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:203.84KB ,
资源ID:4396976      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4396976.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库实验答案分析总结.doc)为本站会员(gnk289057)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

数据库实验答案分析总结.doc

1、实验三用 SQL 语句完成以下的要求(键表及插入数据的 SQL 语句见下面):create table student(Sno char(5) primary key,Sname char(10),Ssex char(2),Sage int,Sdept char(2);create table Course(Cno char(1) primary key,Cname char(20),Cpno char(1),Ccredit int);create table SC(Sno char(5),Cno char(1),Grade int,primary key (sno,cno);insert i

2、nto student values(95001,李勇,男,20,CS);insert into student values(95002,刘晨,女,21,IS);insert into student values(95003,王敏,女,18,MA);insert into student values(95004,张力,男,19,IS);insert into Course values(1,数据库,5,4);insert into Course values(2,数学,NULL,2);insert into Course values(3,信息系统,1,4);insert into Co

3、urse values(4,操作系统,6,3);insert into Course values(5,数据结构,7,4);insert into Course values(6,数据处理,NULL,2);insert into Course values(7,PASCAL语言,6,4);insert into SC values(95001,1,92);insert into SC values(95001,2,85);insert into SC values(95001,3,88);insert into SC values(95002,2,90);insert into SC valu

4、es(95003,3,85);1.查询信息系(IS)的所有学生信息select *from Studentwhere Sdept=IS;2.查询选修了“数学” 课的所有学生名单select *from Student,Course,SCwhere Student.Sno=SC.Sno And Course.Cno=SC.Cno And Course.Cname=数学;3.查询至少选修了一门其直接先行课为 5 号课程的学生的姓名。select Student.Snamefrom Student,Course,SCwhere Student.Sno=SC.Sno And Course.Cno=SC

5、.Cno And Course.Cpno=54.查询全体学生的姓名和出生年份。select sname,2013-Student.Sagefrom Student5.查询所有姓王的学生。select *from Studentwhere Sname like 王% ; 6.查询选修了 3 号课程的学生姓名及成绩,并按成绩降序排序。select Student.Sname,SC.Gradefrom Student,Course,SCwhere Student.Sno=SC.Sno and Course.Cno=So and o=3order by sc.grade desc7.查询全体学生情况,

6、查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。select *from studentorder by sdept, sage desc8.计算 2 号课程的平均成绩。select AVG(grade)from SCwhere cno=2;9.查询选修了 2 号课程的学生的最高成绩。select MAX(grade)from SCwhere cno=2;10.求各个课程号及相应的选课人数。select cno,COUNT(distinct sno)from SC group by cno11.查询至少选修了 3 门课程以上的学生序号。select snofrom SCgroup

7、 by snohaving COUNT(*)=3;12.查询“数据库” 的间接先行课。select second.cpnofrom Course as first,Course as secondwhere first.cpno=second.Cno And first.Cname=数据库;13.查询其他系中比信息系某一学生年龄小的学生的姓名和年龄。select distinct first.sname,first.sagefrom Student as first, Student as secondwhere first.Sage AVG(second.Grade);16.查询至少选修了

8、1 号课程和 3 号课程的学生学号。(select snofrom SCwhere Cno=1)intersect(select snofrom SCwhere Cno=3);17.查询只选修了 1 号课程和 3 号课程的学生学号。select snofrom SCwhere Cno=1and Sno in(select Snofrom SCwhere Cno=2and Sno in(select Snofrom SCgroup by Snohaving COUNT(sno)=2);18.查询没有选修 1 号课程的学生姓名。select snamefrom student,scwhere sc

9、.sno not in(select snofrom scwhere cno=1) and sc.sno=student.sno19.查询选修了全部课程的学生姓名。select snamefrom studentwhere student.sno in (select snofrom sc as onewhere not exists(select *from SC as twowhere not exists(select *from SC as threewhere three.Sno=one.Sno and three.Cno=two.Cno);20.查询至少选修了 95002 所选修的

10、全部课程的学生学号。select distinct snofrom sc as onewhere not exists(select *from SC as twowhere two.sno=95002 and not exists(select *from SC as threewhere three.Sno=one.Sno and three.Cno=two.Cno);21.建立信息系学生视图,并从视图中查询年龄最大的学生记录。create view IS_student创建视图as select *from Studentwhere Sdept=IS; select sno查询信息fro

11、m IS_studentwhere sage in(select MAX(sage)from IS_student); 实验四实验要求:下实验课后交一份实验报告,写明本次实验所用的 SQL 语句,并给出执行结果。1.用 SQL 语句定义表 student(sno,sname,ssex,sage),并加入如下约束:主键:sno;sname 有唯一约束;sname,ssex,sage 都不允许空;2.用 SQL 语句定义表 course(cno,cname),并加入如下约束:主键:cno;cname 不允许空;3.用 SQL 语句定义表 sc(sno,cno,cj),并加入如下约束:主键:sno,

12、cno;为 sno 定义名为 lsno 的默认参照完整性;为 cno 定义名为 lcno 的默认参照完整性;4.用 SQL 语句向 student 表输入如下元组:(95001,李勇,男,20); (95002,刘晨,女,21);用 SQL 语句向 course 表输入如下元组:(1,数据库);(2,数学);用 SQL 语句向 sc 表输入如下元组:(95001,1,92);(95001,2,85); (95002,2,90);create table student(sno char(5) primary key,sname char(10) unique not null,ssex cha

13、r(2) not null,sage int not null);create table course(cno char(1) primary key,cname char(20)not null);create table sc(sno char(5),cno char(1),cj int,primary key (sno,cno),constraint lsno foreign key (sno)references student(sno),constraint lcno foreign key (cno)references course(cno);insert into stude

14、nt(sno,sname,ssex,sage)values(95001,李勇,男,20);insert into student(sno,sname,ssex,sage)values(95002,刘晨,女,21);insert into course(cno,cname) values(1,数据库);insert into course(cno,cname) values(2,数学);insert into sc(sno,cno,cj)values(95001,1,92);insert into sc(sno,cno,cj)values(95001,2,85);insert into sc(s

15、no,cno,cj)values(95002,2,90);5.执行下列语句,并查看执行结果。如果不能正确执行给出错误原因。insert into student values(95001,张力,男,20);/错误的原因是学号已经存在,不允许插入重复的学号,违反了主键约束insert into student values(95003,李勇,男,20);/错误原因是 sname 属性不允许出现重复键,违反了 unique key 约束insert into SC values(95004,1,92);/ INSERT 语句与 COLUMN FOREIGN KEY 约束 lsno 冲突,因为 st

16、udent 表中不存在这个学号delete from student where sno=95001;/错误的原因是 DELETE 语句与 COLUMN REFERENCE 约束 lsno 冲突。Restrict 为默认选项,凡是被基本表所引用的主键不得删除update course set cno=3 where cno=2;/错误的原因是 UPDATE 语句与 COLUMN REFERENCE 约束 lcno 冲突。破坏了参照完整性。默认的不支持连级修改.6.给 student 表的 ssex 列添加名为 fm 的约束,使其取值只能取男或女。alter table student add

17、constraint fn check(ssex in(男,女);执行 insert into student values(95005,张力,f,20),查看执行结果。INSERT 语句与 COLUMN CHECK 约束 fn 冲突。Sage 属性只能为男或女 。该语句违反了约束。7.给 student 表的 sage 列添加约束,使其年龄不得超过 20 岁。查看约束是否能正确添加,并分析其原因。不能,ALTER TABLE 语句与 COLUMN CHECK 约束 fn1 冲突。有的数据 大于 20 所以不能加上 约束!8.删除约束 lsno 和 lcno。alter table sc dr

18、op constraint lcno,lsno;9.为 sc 表添加在列 sno 上的外键约束 lsno1,并定义为级联删除。执行 delete from student where sno=95001;查看执行结果。alter table sc add constraint lsno1 foreign key(sno)references student on delete cascade;sc 中的关于 95001 的信息也被删除掉了。10.为 sc 表添加在列 cno 上的外键约束 lcno1,并定义为级联修改。执行 update course set cno=3 where cno=2

19、;查看执行结果。alter table sc add constraint lcon1foreign key (cno)references course on update cascade;sc 中的关于课程号 2 的被修改为了 3。实验五有如下两个表:教师(编号,姓名,性别,职称,工资,系别编号) 主码:编号系别(系别编号,系名称,人数) 主码:系别编号create table teacher(tno char(5)primary key,tname char(10),tsex char(2),tpos char(10),tsal int,xno char(4);create table

20、xibie(xno char(4)primary key,xname char(2),xcount int);insert into xibie(xno,xname,xcount)values(1001,CS,0);insert into xibie(xno,xname,xcount)values(1002,IS,0);insert into xibie(xno,xname,xcount)values(1003,NE,0);要求利用触发器完成下面的功能:1. 对教师表进行插入、删除操作时维护系别人数。create trigger tri_count on teacherfor insertas

21、 update xibieset xcount=xcount+1where xno=(select xnofrom inserted);create trigger tri_count1 on teacherfor deleteasupdate xibieset xcount=xcount-1where xno=(select xnofrom deleted);2. 教授工资不得低于 1500。create trigger tri_salary on teacherfor update,insertas if(select COUNT (*)from insertedwhere not exi

22、sts (select *from inserted where inserted.tpos=教授 and inserted.tsal1500)=0rollback transaction3. 工资只能增加不能减少。create trigger tri_salary1 on teacherfor updateasif(select COUNT(*)from inserted,deletedwhere deleted.tsalinserted.tsal)=0rollback transaction4.删除系别时,用触发器实现级联删除。实验六综合实验:任选一开发工具设计一个 C/S 结构的“学生管理系统” ,全面熟悉与领会本门课程所学习的内容,从实际系统开发中领会数据库完整性的意义和数据库设计理论的意义与设计过程,掌握 SQL 嵌入式使用方法,领会嵌入式使用的灵活性。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报