数据库原理及应用周6实验报告文档格式.docx
《数据库原理及应用周6实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用周6实验报告文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
(2)查看与修改数据库属性。
1)在SSMS中查看创建后的grademanager数据库的状态,查看、两个数据库文件所在的文件夹。
2)利用SSMS更改数据库。
更改的参数如表2所示。
表2要更改的参数表
增加的数据文件路径
\db1\
增加的日志文件路径
d:
增加的数据文件初始大小
7MB
增加的日志文件初始大小
3MB
增加的数据文件最大值
增加的日志文件最大值
30MB
增加的数据文件增长量
增加的日志文件增长量
(3)利用SSMS分离该数据库,分离后再把该数据库附加到SQLServer中。
(4)利用SSMS删除该数据库。
(5)利用Transact-SQL语句创建表1要求的数据库。
(6)利用Transact-SQL语句修改表2要求的数据库。
(7)利用Transact-SQL语句删除数据库。
(8)成立一个Excel数据文件,在Excel文件中输入某班学生大体信息(包括学号、姓名、性别、班级、联系、QQ号等),然后把它导入Grademanager数据库,再把此表从SQLServer导出成一个.txt文件。
四、试探题
SQLServer的数据库文件有几种?
扩展名别离是什么?
五、实验总结
一、收成
二、存在的问题
实验二治理表
(1)把握表的基础知识。
(2)把握利用SSMS和Transact-SQL语句创建表的方式。
(3)把握表的修改、查看、删除等大体操作方式。
(1)利用SSMS在grademanager数据库中创建表1~表5所示结构的表。
表1student表的表结构
字段名称
数据类型
长度
精度
小数位数
是否允许NULL值
说明
sno
char
10
否
主码
sname
varchar
8
是
ssex
2
取值:
男或女
sbirthday
datetime
sdept
16
speciality
20
表2course表(课程名称表)的表结构
cno
5
cname
表3sc表(成绩表)的表结构
外码
degree
decimal
1
1~100
表4teacher表(教师表)的表结构
tno
3
tname
tsex
tbirthday
tdept
表5teaching表(讲课表)的表结构
cterm
tinyint
1~5
(2)向表1至表5输入数据记录,见表6~表10。
表6学生关系表student
李勇
男
1987-01-12
cs
计算机应用
刘晨
女
1988-06-04
is
电子商务
王敏
1989-12-23
ma
数学
张立
1988-08-25
表7课程关系表course
C01
数据库
C03
信息系统
C02
C04
操作系统
表8成绩表sc
92
85
88
90
80
表9教师表teacher
101
李新
1977-01-12
102
钱军
1968-06-04
201
王小花
1979-12-23
202
张小青
1968-08-25
表10讲课表teaching
4
(3)修改表结构。
①向student表中增加“入学时刻”列,其数据类型为日期时刻型。
②将student表中的sdept字段长度改成20。
③将student表中的speciality字段删除。
④删除student表。
(4)利用SQL命令(createtable、altertable、droptable)完成对表的操作
①利用createtalbe命令完成student表和course表的概念。
②利用altertable命令实现(3)中的①至③。
③利用droptable命令实现(3)中的④。
(1)SQLServer2020中有哪几种整型数据类型?
它们占用的存储空间别离是多少?
取值范围别离是什么?
(2)在概念大体表语句时,NOTNULL参数的作用是什么?
(3)主码能够成立在“值能够为NULL”的列上吗?
五、实验总结:
实验三简单查询——单表无条件和有条件查询
(1)把握SELECT语句的大体用法。
(2)利用WHERE子句进行有条件的查询。
(3)把握利用IN和NOTIN,BETWEEN…AND和NOTBETWEEN…AND来缩小查询范围的方式。
(4)利用LIKE子句实现字符串匹配查询。
在上次实验成立的Grademanager数据库中完成下面查询:
(1)查询所有学生的大体信息、所有课程的大体信息和所有学生的成绩信息(用三条SQL语句)。
(2)查询所有学生的学号、姓名、性别和诞生日期。
(3)查询所有课程的课程名称。
(4)查询前10门课程的课号及课程名称。
(5)查询所有学生的姓名及年龄。
(6)查询所有年龄大于18岁的女生的学号和姓名。
(7)查询所有男生的信息。
(8)查询所有任课教师的Tname、Tdept。
(9)查询“电子商务”专业的学生姓名、性别和诞生日期。
(10)查询Student表中的所有系名。
(11)查询“C01”课程的开课学期。
(12)查询成绩在80~90分之间的学生学号及课号。
(13)查询在1970年1月1日之前诞生的男教师信息。
(14)输出有成绩的学生学号。
(15)查询所有姓“刘”的学生信息。
(16)查询生源地不是山东省的学生信息。
(17)查询成绩为79分、89分或99分的记录。
(18)查询名字中第二个字是“小”字的男生的学生姓名和地址。
(19)查询名称以“运算机_”开头的课程名称。
(20)查询运算机系和软件系的学生信息。
一、LIKE的通配符有哪些?
别离代表什么含义?
二、明白学生的诞生日期,如何求出其年龄?
3、IS能用“=”来代替吗?
四、实验总结:
实验四简单查询——分组与排序
一、实验目的:
(1)利用GROUPBY子句对查询结果分组。
(2)利用ORDERBY子句对查询结果排序。
(3)把握聚集函数的利用方式。
在Grademanager数据库中完成下面查询:
(1)统计有学生选修的课程的门数。
(2)计算“c01”课程的平均成绩。
(3)查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。
(4)查询各个课程号及相应的选课人数。
(5)统计每门课程的选课人数和最高分。
(6)统计每一个学生的选课门数和考试总成绩,并按选课门数降序排列。
(7)查询选修了3门以上课程的学生学号。
(8)查询成绩不合格的学生学号及课号,并按成绩降序排列。
(9)查询至少选修一门课程的学生学号。
(10)统计输出各系学生的人数
(11)统计各系学生人数;
各系的男、女生人数。
(两条命令)
(12)统计各班人数;
各班男、女生人数。
(13)统计各系的教师人数,并按人数升序排序。
(14)统计不合格人数超过10人的课程号。
(15)查询软件系的男生信息,查询结果按诞生日期升序排序,诞生日期相同的按地址降序排序。
三、试探题
(1)聚集函数可否直接利用在SELECT子句、HAVING子句、WHERE子句、GROUPBY子句中?
(2)WHERE子句与HAVING子句有何不同?
实验五多表查询
(1)把握SELECT语句在多表查询中的应用。
(2)把握多表连接的几种连接方式及应用。
。
(1)查询运算机系女学生的学生学号、姓名及考试成绩。
(2)查询“李勇”同窗所选课程的成绩。
(3)查询“李新”教师所讲课程的课程名称。
(4)查询女教师所讲课程的课程号及课程名称。
(5)查询至少选修一门课程的女学生姓名。
(6)查询姓“王”的学生所学的课程名称。
(7)查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。
(8)查询课程成绩合格的男同窗的学生信息及课程号与成绩。
(9)查询选修“c04”课程的学生的平均年龄。
(10)查询学习课程名为“数学”的学生学号和姓名。
(11)查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩。
(12)查询在第3学期所开课程的课程名称及成绩。
(13)查询“c02”号课程不合格的学生信息。
(14)查询软件系成绩在90分以上的学生姓名、性别和课程名称。
(15)查询同时选修了“c04”和“c02”课程的学生姓名和成绩。
(1)指定一个较短的别名有什么益处?
(2)内连接与外连接有什么区别?
(3)“=”与IN在什么情形下作用相同?
实验六嵌套查询
(1)把握嵌套查询的利用方式。
(2)把握相关子查询与嵌套子查询的区别。
(3)把握带IN谓词的子查询的利用方式。
(4)把握带比较运算符的子查询的利用方式。
(1)查询运算机系(CS)女学生的学生学号、姓名及考试成绩。
(5)查询姓“王”的学生所学的课程名称。
(6)查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。
(7)查询选修“C04”课程的学生的平均年龄。
(8)查询学习课程名为“数学”的学生学号和姓名。
(9)查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩。
(10)查询在第3学期所开课程的课程名称及成绩。
(11)查询与“李勇”同一个系的同窗姓名。
(12)查询学号比“刘晨”同窗大,而诞生日期比他小的学生姓名。
(13)查询诞生日期大于所有女同窗诞生日期的男同窗的姓名及系别。
(14)查询成绩比该课程平均成绩高的学生的学号及成绩。
(15)查询不教学“C01”课的教师姓名。
(16)查询没有选修“C02”课程的学生学号及姓名。
(17)查询选修了“数据库”课程的学生学号、姓名及系别。
(20)查询“C02”号课程不合格的学生信息。
(1)子查询一样分为几种?
(2)相关子查询的执行进程是什么?
实验七数据更新
(1)把握利用INSERT命令实现对表数据的插入操作。
(2)把握利用UPDATE命令实现对表数据的修改操作。
(3)把握利用DELETE命令实现对表数据的删除操作。
在Grademanager数据库中完成下面操作:
注意:
利用SELECTINTO…命令备份Student、SC、Course这3个表,备份表名自定。
(1)向Student表中插入记录("
"
,"
张静"
1981-3-21"
女"
CS"
电子商务"
)。
(2)插入学号为“20050302”、姓名为“李四”的学生信息。
(3)把运算机系的学生记录保留到表TS中(TS表已存在,表结构与Student表相同)。
(4)将学号为“20050202”的学生姓名改成“张华”,系别改成“CS”,专业改成“多媒体技术”。
(5)将“李勇”同窗的专业改成“运算机信息治理”。
(6)将“20050201”学生选修“C03”号课程的成绩改成该课的平均成绩。
(7)把成绩低于总平均成绩的女同窗的成绩提高5%。
(8)把选修了“数据库”课程而成绩不合格的学生的成绩全改成空值(NULL)。
(9)删除学号为“20050302”的学生记录。
(10)删除“运算机系”所有学生的选课记录。
(11)删除SC表中尚无成绩的选课记录。
(12)把“张晨”同窗的成绩全数删除。
(1)如何从备份表中恢复3个表?
(2)DROP命令和DELETE命令的本质区别是什么?
(3)利用INSERT、UPDATE和DELETE命令能够同时对多个表进行操作吗?
实验八第四章综合实验
(1)进一步把握SELECT语句的功能及利用方式。
(2)进一步把握SELECT语句的大体语法和查询条件表示方式;
(3)进一步把握查询条件种类和表示方式;
(4)进一步把握连接查询的表示及利用;
(5)进一步把握嵌套查询的表示及利用;
(6)了解集合查询的表示及利用
(7)进一步把握利用INSERT命令实现对表数据的插入操作。
(8)进一步把握利用UPDATE命令实现对表数据的修改操作。
(9)进一步把握利用DELETE命令实现对表数据的删除操作。
(1)查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情形;
(2)查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;
(3)列出选修了‘数学’或‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;
(4)查询缺少成绩的所有学生的详细情形;
(5)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;
(6)查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;
(7)依照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的取得情形。
其中已修学分为考试已经合格的课程学分之和;
(8)列出只选修一门课程的学生的学号、姓名、院系及成绩;
(9)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;
(10)只选修“数据库”和“数据结构”两门课程的学生的大体信息;
(11)至少选修“数据库”或“数据结构”课程的学生的大体信息;
(12)列出所有课程被选修的详细情形,包括课程号、课程名、学号、姓名及成绩;
(13)查询只被一名学生选修的课程的课程号、课程名;
(14)检索所学课程包括学生‘张向东’所学课程的学生学号、姓名;
(15)利用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;
(16)利用嵌套查询查询其它系中年龄小于运算机系的某个学生的学生姓名、年龄和系别;
(17)利用ANY、ALL查询,列出其他院系中比CS系所有学生年龄小的学生;
(18)b别离利用连接查询和嵌套查询,列出与‘张力’在一个系的学生的信息;
(19)利用集合查询列出CS系的学生和性别为女的学生名单;
(20)利用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;
(21)利用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集;
(22)依照课程名顺序显示各个学生选修的课程(如1数据库数据结构数学);
(23)教材P172综合练习题
(1)——
(2)
实验九索引
(1)温习数据库大体应用
(2)明白得架构、索引的概念与类型。
(3)把握创建、更改、删除架构、索引的方式。
1)数据库大体应用温习
一、查询Student表中的不同的系名。
二、查询所有年龄大于18岁的女生的学号和姓名。
3、查询生源地不是山东省的学生信息。
4、统计有学生选修的课程的门数。
五、统计每一个学生的选课门数。
六、查询各个课程号及相应的选课人数。
7、查询每一个学生的平均成绩。
八、统计的选课门数。
九、查询“c01”课程的平均成绩。
10、查询没有选修数学的学生学号和姓名。
11、查询至少选修一门课程的女学生姓名。
12、查询缺少成绩的所有学生的详细情形。
13、查询所选课程的平均成绩大于于田田的平均成绩的学生学号。
14、查询只选修一门课程的学生的学号。
2)创建和删除架构
(1)利用Transact-SQL语句和SSMS别离创建架构。
在学生治理系统数据库grademanager中创建名称为test1和test2的架构。
(2)利用Transact-SQL语句和SSMS别离将test1和test2删除。
3)利用对象资源治理器创建、治理索引
(1)创建索引。
为student表创建一个以学号为索引关键字的唯一聚簇索引stud_index。
(2)重命名索引。
将索引文件stud_index从头命名为stud_index1。
(3)删除索引。
将索引文件stud_index1删除。
4)利用Transact-SQL语句创建、治理索引
①利用Transact-SQL语句为teacher表创建一个索引名为t_index的唯一性非聚簇索引,索引关键字为tno,升序,填充因子为85%。
②用Transact-SQL语句为sc表创建一个索引名为sc_index的非聚簇复合索引,索引关键字为sno+cno,升序,填充因子为50%。
将teacher表的索引t_index更名为teacher_index。
将teacher表的索引teacher_index删除。
实验十视图
一、明白得视图的概念和作用;
二、