您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页数据库原理实验上机

数据库原理实验上机

来源:化拓教育网
武 汉 工 程 大 学

计算机科学与工程学院

《数据库系统原理》实验报告

专业班级 学生学号 学生姓名 实验项目 实验类别 SQL语句的使用 实验地点 指导教师 实验时间 操作性(√ ) 验证性() 设计性( ) 综合性( ) 其它( ) 1.掌握SQL语句的基本语法。 2.学会用SQL语句创建表,对表进行插入、删除、修改。 3.掌握SELECT语句的基本语法。 4.掌握子查询的表示。 5.掌握连接查询的表示。 6.掌握数据汇总的方法。 7.掌握SELECT语句的GROUP BY子句的作用和使用方法。 8.掌握SELECT语句的ORDER BY子句的作用和使用方法。 9.掌握视图的概念及创建方法。 10.掌握安全性控制策略的实施方法。 实验目的及要求 类 别 上机表现 程序代码 实验报告 成 绩 评 定 表 评 分 标 准 积极出勤、遵守纪律 主动完成实验设计任务 比较规范、基本正确 功能达到实验要求 及时递交、填写规范 内容完整、体现收获 分值 30分 30分 40分 得分 合 计 说明: 评阅教师: 日 期: 2013 年 月 日 计算机科学与工程学院

实 验 内 容 一、对实验一的JXGL数据库,完成下列各SQL语句。 1、用CREATE语句创建SC表(要求定义主码、外码)。 create table SC (Sno char(10), Cno char(4), Grade int, primary key(Sno,Cno), /*主码由两个属性构成,必须作为表级完整性进行定义*/ foreign key(Sno)references STUDENT(Sno), /*表级完整性约束条件,Sno是外码,被参照表示STUDENT*/ foreign key(Cno)references COURSE(Cno) /*表级完整性约束条件,Cno是外码,被参照表COURSE*/ ); INSERT INTO STUDENT(Sno ,Sname , Ssex ,Sage ,Sdept) VALUES('95001','陈强','男',21,'IS'); INSERT INTO STUDENT(Sno ,Sname , Ssex ,Sage ,Sdept) VALUES('95002','李木子','女',20,'IS'); INSERT INTO STUDENT(Sno ,Sname , Ssex ,Sage ,Sdept) VALUES('95003','李良','男',20,'IS'); INSERT INTO STUDENT(Sno ,Sname , Ssex ,Sage ,Sdept) VALUES('95004','张骞','男',22,'IS'); INSERT INTO STUDENT(Sno ,Sname , Ssex ,Sage ,Sdept) VALUES('95005','王柳','女',22,'CS'); 2、在SC表中用SQL语句插入记录。 95001 1 80 95001 2 90 95001 3 85 95001 4 95002 1 70 95002 3 85 95003 1 82 95004 1 95004 2 80 insert into SC(Sno,Cno,Grade) VALUES('95001','1',80); 《数据库系统原理》实验报告

2

计算机科学与工程学院

INSERT INTO SC(Sno,Cno,Grade) VALUES('95001','2',90); INSERT INTO SC(Sno,Cno,Grade) VALUES('95001','3',85); INSERT INTO SC(Sno,Cno,Grade) VALUES('95001','4',NULL); INSERT INTO SC(Sno,Cno,Grade) VALUES('95002','1',70); INSERT INTO SC(Sno,Cno,Grade) VALUES('95002','3',85); INSERT INTO SC(Sno,Cno,Grade) VALUES('95003','1',82); INSERT INTO SC(Sno,Cno,Grade) VALUES('95004','1',NULL); INSERT INTO SC(Sno,Cno,Grade) VALUES('95004','2',80); 3、将STUDENT表中学号为95001的年龄加1。 update STUDENT SET Sage=Sage+1 where Sno='95001'; 4、将陈强同学的2号课程的成绩改为80分。 update SC set Grade=80 where Cno=2 and Sno in (select Sno from Student where Sname='陈强'); 《数据库系统原理》实验报告

3

计算机科学与工程学院

5、在SC表中删除陈强同学的记录。 delete from SC where Sno in(select Sno from Student where Sname='陈强') 6、查询‘计算机’系的所有学生的信息。 select *from STUDENT WHERE Sdept='IS' 7、查询所有姓‘李’的学生的详细信息。 select *from STUDENT WHERE Sname LIKE '李%'; 8、查询所有年龄在19到25之间的学生的详细信息。并按年龄由低到高的顺序排列。 select *from STUDENT WHERE Sage>19 and Sage<25 order by Sage asc; 9、查询选修了课程的学生的学号及姓名。 select *from Student,SC,Course where Cname='现代数据库技术' and SC.Cno=Course.Cno and SC.Sno=Student.Sno; 10、查询所有选修‘现代数据库技术’这门课程的学生成绩信息,显示学号、姓名、成绩,并按成绩的高低顺序排列。 select Student.Sno,Sname,Grade from Student,SC,Course where Cname='现代数据库技术' and SC.Cno=Course.Cno and SC.Sno=Student.Sno order by Grade desc; 《数据库系统原理》实验报告

4

计算机科学与工程学院

11、按系统计男、女生人数。 select Sdept,Ssex ,'人数'=count(Sdept)from Student Group by Ssex,Sdept; 12、查询每门课程的最高分、最低分及平均分。 select Cname, '最高分'=max(Grade), '最低分'=min(Grade), '平均分'=avg(Grade) from SC,Course where SC.Cno=Course.Cno group by Cname; 13、查询选修了三门以上课程的学生的学号、姓名及课程门数。 select SC.Sno,Sname,'课程门数'=count(Cno) from Student,SC where Student.Sno=SC.Sno group by SC.Sno,Sname; 14、查询既选修了‘现代数据库技术’,又选修‘网络操作系统’这两门课程的学生的详细信息。 select Student.*,Course.*,SC.Grade from Student,Course,SC where SC.sno in (select sno from Course,sc where Cname='现代数据库技术' and course.cno=sc.cno intersect select sno from Course,Sc where Cname='网络操作系统' and course.cno=sc.cno) and Student.Sno=SC.Sno and SC.Cno=Course.Cno; 15、查询计算机系选修了所有课程的学生的信息。 select Student.*,SC.Cno,SC.Grade from Student,SC where Student.Sno=SC.Sno and Student.Sno in (select Sno from SC group by Sno having count(*)=4) 《数据库系统原理》实验报告

5

计算机科学与工程学院

16、查询计算机系没有选修‘现代数据库技术’这门课程的学生信息。 select Student.*,Course.*,SC.Grade from Student,Course,SC where SC.Cno=Course.Cno and Student.Sno=SC.Sno and Student.Sdept='计算机'and not exists(select SC.Grade from SC where Student.Sno=SC.Sno and Cno in(select Cno From Course where Course.Cname ='现代数据库技术')); 二、视图的操作 1.创建“计算机系”所有学生的视图。并通过视图修改学生的信息。 创建视图: create view St_view(Sno,Sname,Ssex,Sage,Sdept) as select * from Student; 删除视图: Drop view St_view ; 2.创建所有选修“现代数据库技术”这门课程的学生及成绩信息。显示学号、姓名、系别、成绩信息。是否能修改视图中信息。 create view St_Student(Sno,Sname,Sdept,Grade) as select Student.Sno,Sname,Sdept,Grade from Student,SC,Course where Cname='现代数据库技术' and SC.Cno=Course.Cno and SC.Sno=Student.Sno 可以修改视图信息: 《数据库系统原理》实验报告 6

计算机科学与工程学院

update St_Student set Grade=75 where Sno='95005' 三、安全性控制的实施 使用JXGL的人员有:学生:李那、黎民、刘敏、王强;任课教师:张行、小叶教务管理人员:汪辉。其中学生只可以查看库中任何一张表的任何内容;教师可以查看任何一张表的内容,还可以修改自己所带学生的成绩(假设张行带1号课程,小叶带2号课程);教务管理人员可以查看任何一张表,对表做任何更新操作。创建各用户,并授予权限。 《数据库系统原理》实验报告 7

计算机科学与工程学院

实 验 总 结 《数据库系统原理》实验报告

8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务