数据库实验打印.docx
- 文档编号:25597618
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:15
- 大小:354.69KB
数据库实验打印.docx
《数据库实验打印.docx》由会员分享,可在线阅读,更多相关《数据库实验打印.docx(15页珍藏版)》请在冰豆网上搜索。
数据库实验打印
实验题目二:
数据库的设计
实验目的:
掌握数据表建立、修改、删除、索引的SQL语句。
实验内容:
(1)数据表的建立
(2)数据表的修改
(3)数据表的删除
(4)数据表的索引建立
(5)视图的建立与删除
●建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE)
●查询1983年以后出生的计算机系学生基本信息。
●建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。
●查询计算机系学生选课多于3门的学生学号。
●查询计算机系学生2号课不及格的学生学号和成绩。
实验过程:
(1).数据表的建立
学生表S由学号SNO,姓名SNAME,性别SEX,年龄AGE,所在系DEPT组成。
createtables
(snochar(9),
snamechar(15),
sexchar(3),
agechar(10),
deptchar(20));
插入数据代码:
insertintosvalues('001','张三','男',20,'计科');
insertintosvalues('002','l李四','女',24,'软件');
insertintosvalues('003','刘涛','男',18,'网络');
insertintosvalues('004','杨混','男','38','计科');
结果:
课程表C由课程号CNO,课程名CNAME,学分CCREDIT组成。
createtablec
(cnochar(10),
cnamechar(17),
CCREDITchar(20));
结果:
选课表SC由学号SNO,课程号CNO,成绩GRADE组成。
createtablesc
(snochar(9),
cnochar(10),
gradechar);
结果:
数据表的索引建立:
在S表的Sname上建立一个聚簇索引:
createclusterindexStusnameonS(Sname);
在SC表按学号升序建立唯一索引,按学号升序和课程号降序建立。
createuniqueindexSCnoonSC(Snoasc,Cnodesc);
视图的建立:
1.建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE)
代码:
createviewCSV
as
selectSNO,SNAME,SEX,AGEfroms
wheredept='计科'
2.查询1983年以后出生的计算机系学生基本信息。
代码:
select*fromcsv
where(2012-age)>1983
结果:
3.建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。
代码:
createviewJSGV
as
selects.sno,o,sc.gradefroms,c,sc
wheres.sno=sc.snoando=o
4.查询计算机系学生选课多于3门的学生学号。
代码:
selectsnofromjsgv
groupbysno
havingcount(cno)>3
结果:
5.查询计算机系学生2号课不及格的学生学号和成绩。
代码:
selectsno,gradefromjsgv
wherecno=2andgrade<60
结果:
实验题目三:
数据表的数据操作
实验目的:
掌握数据表数据操作的SQL语句。
实验内容:
SQL语句插入数据操作
SQL语句修改数据操作
SQL语句删除数据操作
SQL语句查询数据操作
维护数据SQL语句:
(1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’)
代码:
insertintosvalues('200213808','HUIJING','女',22,'计算机');
结果:
2.将计算机系学生课程成绩全部提高5%
代码:
结果:
3.统计所有学生选修的课程门数。
代码及结果:
4.检索计算机系女生的学号和姓名。
代码及结果:
代码及结果:
5.检索全体学生姓名、出生年份和所在系。
代码及结果:
6.检索未选修任何课程的学生学号。
代码及结果:
7.检索所有姓杨同学的基本信息。
代码及结果:
8.检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。
代码及结果:
9.统计HU老师所授每门课程的学生平均成绩。
代码及结果:
10.选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。
selcetdistinctCno,count(Cno)
fromSC
groupbyCno
havingcount(Cno)>20
orderbycount(Cno)desc,Cnoasc;
结果为空。
11.检索‘计科’课成绩高于该课平均成绩的同学学号。
代码及结果:
12.检索WANG老师所授课程号、课程名。
代码及结果:
13.检索选修‘计科’课程的学生学号。
代码及结果:
14.检索年龄介于杨混同学年龄和28岁之间的学生基本信息。
代码及结果:
15.检索至少选修了一门TIAN老师所授课程的学生姓名、学号。
代码及结果:
实验题目四:
数据表的完整性和安全性
实验目的:
掌握数据表的完整性和安全性的SQL语句。
实验内容:
数据表的完整性约束
触发器
数据库的授权语句
授权SQL语句:
将查询SC表和修改GRADE属性的权限授予用户user1。
将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。
收回所有用户对表S的插入权限。
实验步骤:
1.数据表的完整性约束:
为s表的sno属性定义为码:
代码:
createtables
(snochar(9)primarykey
snamechar(15),
sexchar(3),
agechar(10),
deptchar(20));
2.触发器:
定义一个before行级触发器,为教师表teacher定义完整性规则“教授工资不得低于5000元,如果低于5000元,自动改为5000元”。
代码及结果:
3.将查询SC表和修改GRADE属性的权限授予用户user1。
代码及结果:
4.将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。
代码及结果:
5.收回所有用户对表S的插入权限。
代码及结果:
实验题目五:
T-SQL语句
实验目的:
掌握T-SQL语句的使用。
实验内容:
1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。
2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。
3.编写程序计算1-100之间能被9整除得数的个数。
4.试用CASE语句输出学生表中各年龄段的学生人数。
1.代码及结果:
2.代码及结果:
3.代码及结果:
4.代码及结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 打印