版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,创建Student数据库,包括Students,Courses,SC表,表结构如下:Students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT)Courses(CNO,CNAME,LHOUR,CREDIT,SEMESTER)SC(SNO,CNO,GRADE)(注:下划线表示主键,斜体表示外键),并插入一定数据。答:create table Students(SNO varchar(100) primary key ,SNAME varchar(100) null,SEX varchar(100) null,BDATE datetime null,HEIGH
2、T decimal null,DEPARTMENT varchar(100) null)gocreate table Courses(CNO varchar(100) primary key ,CNAME varchar(100) null,LHOUR int null,CREDIT int null,SEMESTER varchar(100) null)goCREATE TABLE dbo.SC(SNO varchar(100) NOT NULL,CNO varchar(100) NOT NULL,GRADE int NULL, CONSTRAINT PK_SC PRIMARY KEY CL
3、USTERED (SNO ASC,CNO ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.SC WITH CHECK ADD CONSTRAINT FK_SC_Courses FOREIGN KEY(CNO)REFERENCES dbo.Courses (CNO)GOALTER TABLE dbo.SC CHECK C
4、ONSTRAINT FK_SC_CoursesGOALTER TABLE dbo.SC WITH CHECK ADD CONSTRAINT FK_SC_Students FOREIGN KEY(SNO)REFERENCES dbo.Students (SNO)GOALTER TABLE dbo.SC CHECK CONSTRAINT FK_SC_Students2完成如下的查询要求及更新的要求。(1)查询身高大于1.80m的男生的学号和姓名;答:select SNO,SNAME from Students where HEIGHT1.8(2)查询计算机系秋季所开课程的课程号和学分数;答:sel
5、ect CNO,CREDIT from Courses where SEMESTER=秋季(3)查询选修计算机系秋季所开课程的男生的姓名、课程号、学分数、成绩;答:select s.SNAME,SC.CNO,c.CREDIT,SC.GRADE from students sinner join SC on sc.SNO=s.SNOinner join Courses c on sc.CNO=c.CNOwhere s.DEPARTMENT=计算机系 and s.SEX=男 and c.SEMESTER=秋季(4)查询至少选修一门电机系课程的女生的姓名(假设电机系课程的课程号以EE开头);答:se
6、lect distinct s.sname from Students s,sc where s.sno=sc.sno and s.sex=女 and o like EE%(5)查询每位学生已选修课程的门数和总平均成绩;答:select count(c.CNO) as 课程门数,avg(SC.GRADE) as 总平均成绩from students sinner join SC on sc.SNO=s.SNOinner join Courses c on sc.CNO=c.CNOgroup by s.SNO(6)查询每门课程选课的学生人数,最高成绩,最低成绩和平均成绩;答:select cna
7、me,count(cno),max(grade),min(grade),avg(grade)from students natural join sc natural join coursesgroup by chane;(7)查询所有课程的成绩都在80分以上的学生的姓名、学号、且按学号升序排列;答:select sname,sno from students natural join (select sno.min(grade)as mini from sc group by sno)where mini80 order by(sno);(8)查询缺成绩的学生的姓名,缺成绩的课程号及其学分数
8、;答:select sname,o,creditfrom students,courses,scwhere students.sno=sc.sno and o=o and grade is null;(9)查询有一门以上(含一门)三个学分以上课程的成绩低于70分的学生的姓名;答:select sname from students,courses,scwhere students.sno=sc.sno and o=sc.cho and credit=3 and grade70;(10)查询1984年1986年出生的学生的姓名,总平均成绩及已修学分数。答:select smane,avg(gra
9、de),sun(credit)from students natural join sc natural join courseswhere bdate between 1984-00-00 and 1987-00-00group by sname;(11) 在STUDENT和SC关系中,删去SNO以01开关的所有记录。答:delete sc where SNO like %01%delete Students where SNO like %01%(12)在关系中增加以下记录:答:insert into students values(0409101,何平,女,1987-03-02,1.62
10、,)insert into students values(0408130,向阳,男,1986-12-11,1.75,)(13)将课程CS-221的学分数增为,讲课时数增为答:update courses set credit=3 where cno=GS-221update courses set credit=60 where cno=GS-2213补充题:(1) 统计各系的男生和女生的人数。答:select department,sum(case wgen sex=男 then 1 else 0 end),sum(case wgen sex=女 then 1 else 0 end),co
11、unt(sno) from students group by department order by department;(2) 列出学习过编译原理,数据库或体系结构课程,且这些课程的成绩之一在90分以上的学生的名字。答:select snamefrom students natural join sc natural join courseswhere cname=编译原理 or cname=数据库 or cname=体系结构 and grade90;(3) 列出未修选电子技术课程,但选修了数字电路或数字逻辑课程的学生数。答:select count(distinci sc.sno) f
12、rom courses,sc.sno not in(select sc.sno from o=o and cname=电子技术)and o in (select cno from courses where cname=数字逻辑 or cname=数字电路)(4) 按课程排序列出所有学生的成绩,尚无学生选修的课程,也需要列出,相关的学生成绩用NULL表示。答:select distinct o,ame,sno,grade from courses left join sc on (o-o)group by o,ame,sno,gradeorder by o,ame,sno,grade;(5)
13、列出平均成绩最高的学生名字和成绩。(SELECT句中不得使用TOP n子句)答:select sname,rfrom(select sname,avg(grade)as from students,sc where students.sno=sc.sno group by sname,students.sno order by r desc)where rownum=1;4选做题:对每门课增加“先修课程”的属性,用来表示某一门课程的先修课程,每门课程应可记录多于一门的先修课程。要求:1) 修改表结构的定义,应尽量避免数据冗余,建立必要的主键,外键。2) 设计并插入必要的测试数据,完成以下查询:
14、列出有资格选修数据库课程的所有学生。(该学生已经选修过数据库课程的所有先修课,并达到合格成绩。)注意:须设计每个查询的测试数据,并在查询之前用INSERT语句插入表中。实验二:数据库的安全和完整性约束实验要求:1采用实验一的建库脚本和数据插入脚本创建Student数据库,并完成以下操作:1)新增表Credits(SNO,SumCredit,NoPass),表示每学生已通过选修课程的合计学分数,以及不及格的课程数。答:create table Credits(SNO varchar(100),SumCredit int,NoPass int)2)创建视图Student_Grade(Sname,C
15、name,Grade),表示学生选修课程及成绩的详细信息。答:create view Student_Gradeas select s.SNAME,c.CNAME,SC.GRADE from students sinner join SC on sc.SNO=s.SNOinner join Courses c on sc.CNO=c.CNO2. 在数据库中创建以下触发器:1) Upd_Credit要求:当在SC表中插入一条选课成绩,自动触发Upd_Credit,完成在Credits表中修改该学生的合计学分数和不及格的课程数。答:create trigger Upd_Credit on SC f
16、or insertas declare SNO varchar(100),CNO varchar(100),GRADE int ,NoPass int ,CREDIT int select SNO=SNO,CNO=CNO,GRADE=GRADE,NoPass=(case when GRADE3group by s.SNO4) CAL_GPA (SNO,GPA output)要求:根据SNO参数, 输出并显示该学生的GPA值。计算方法如下:GRADE(G) GRADEPOINT(GP)G=85 485G=75 375G=60 260G 1GPA= (GP*CREDIT)/ CREDIT)答:cr
17、eate procedure CAL_GPASNO varchar(100),GPA decimal outputasdeclare SUM_CREDIT int,AVG_GRADE int,All_CREDIT intselect SUM_CREDIT=SumCredit from Creditswhere SNO=SNOselect AVG_GRADE=avg(case when SC.GRADE=85 then 4 when 85SC.GRADE and SC.GRADE=75 then 3 when 75SC.GRADE and SC.GRADE=60 then 2 when 60SC
18、.GRADE then 1 end) from Students sinner join SC on sc.SNO=s.SNOwhere s.SNO=SNO and SC.GRADE3group by s.SNOselect GPA=(AVG_GRADE*SUM_CREDIT)/All_CREDIT3选做题: 使用其它程序设计语言编程,连接数据库并提交SQL语句,显示查询结果。 要求:实现上题中的第3)小题要求,设计一个图形界面来输入查询的参数SNO,及显示查询的结果。(如采用VC+,VB等)实验四:事务的管理(选作)实验要求:1 采用实验一的建库脚本和数据插入脚本创建Student数据库。2 测试事务隔离级别,要求: 分别设置不同的隔离级别,包括:SET TRANSACTION ISOLATION LEVEL SERIALIZAB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑安装简易工程施工合同
- 建筑行业农民工薪酬支付现状分析
- 教育服务外债登记管理规范
- 2024年定制影视项目中介服务协议
- 青岛中国画教学课程设计
- 2024年毛坯店铺租赁协议法律范本
- 中国华电公司员工管理制度
- 直播电商CEO招聘合同
- 医院信息科工作流程规范化操作
- 环境保护违章管理办法
- 常州高级中学2022-2023学年高一上学期期中英语试卷(原卷版)
- 术后肠麻痹学习课件
- 新任科级领导干部培训总结
- layout(工厂布局)课件
- 室内攀岩挑战征服高空挑战自我
- 深圳市养老保险延趸缴申请告知承诺书
- 学生寝室生活管理策略例谈
- 烧伤瘢痕挛缩畸形查房课件
- 混流式水轮发电机组导水机构A级检修作业指导书
- 米兰大教堂完整版本
- 槽钢专项施工方案
评论
0/150
提交评论