实验一 数据定义操作
● 实验目的
1. 掌握数据库和
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
的基础知识
2. 掌握使用创建数据库和表的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
3. 掌握数据库和表的修改、查看、删除等基本操作方法
● 实验
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
和要求
一、数据库的创建
在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:
Grademanager数据库参数表
参数
参数值
参数
参数值
存储的数据文件路径
D:\db\grademanager_data.mdf
存储的日志文件路径
D:\db\grademanager_log.ldf
数据文件初始大小
5MB
日志文件初始大小
2MB
数据文件最大值
20MB
日志文件最大值
15MB
数据文件增长量
原来10%
日志文件增长量
2MB
二、表的创建、查看、修改和删除
1.表的创建
在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:
(1)Student表的表结构
字段名称
数据类型
长度
精度
小数位数
是否允许Null值
说明
Sno
Char
10
0
0
否
学号,主码
Sname
Varchar
8
0
0
是
姓名
Ssex
Char
2
0
0
是
性别,取值:男或女
Sbirthday
Date
8
0
0
是
出生日期
Sdept
Char
16
0
0
是
系名
Speciality
Varchar
20
0
0
是
专业名
特别注意:
为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK约束”命令,然后按照图1进行设置。
图1 设置性别的约束
(2)Course表(课程名称表)的表结构
字段名称
数据类型
长度
精度
小数位数
是否允许Null值
说明
Cno
Char
5
0
0
否
课程号,主码
Cname
Varchar
20
0
0
否
课程名
(3)SC表(成绩表)的表结构
字段名称
数据类型
长度
精度
小数位数
是否允许Null值
说明
Sno
Char
10
0
0
否
学号,外码
Cno
Char
5
0
0
否
课程号,外码
Degree
Decimal
5
5
1
是
成绩,0~100之间
特别注意:
为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为 Degree>=1 And Degree<=100
为SC表设置外键Sno和Cno的方法:
右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno
2.向上述表中输入如下数据记录
学生关系表Student (右键单击表Student,选择“编辑前200行”)
Sno
Sname
Ssex
Sbirthday
Sdept
Speciality
20050101
李勇
男
1987-01-12
计算机系
计算机应用
20050201
刘晨
女
1988-06-04
信息管理系
电子商务
20050301
王敏
女
1989-12-23
数学
数学高考答题卡模板高考数学答题卡模板三年级数学混合运算测试卷数学作业设计案例新人教版八年级上数学教学计划
系
数学
20050202
张立
男
1988-08-25
信息管理系
电子商务
Sno
Cno
Degree
20050101
C01
92
20050101
C02
85
20050101
C03
88
20050201
C02
90
20050201
C03
80
20050301
C01
91
20050301
C02
75
20050202
C01
87
课程关系表Course 成绩表SC
Cno
Cname
C01
数据库
C02
数学
C03
信息系统
C04
操作系统
3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性)
(1)向student表中增加“入学时间”列,其数据类型为日期型
(2)将student表中的sdept字段长度改为20
(3)将student表中的Speciality字段删除
● 思考
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
1. SQL Server的数据库文件有几种?扩展名分别是什么?
2. 如何实现数据库的备份和还原?
2.在定义基本表语句时,NOT NULL参数的作用是什么?
3.主码可以建立在“值可以为NULL”的列上吗?
实验二 简单查询
● 实验目的
1. 掌握SELECT语句的基本用法
2. 使用WHERE子句进行有条件的查询
3. 掌握使用IN和NOT IN,BETWEEN…AND和NOT BETWEEN…AND来缩小查询范围的方法
4. 掌握聚集函数的使用方法
5. 利用LIKE子句实现字符串匹配查询
6. 利用ORDER BY子句对查询结果排序
7. 利用GROUP BY子句对查询结果分组
● 实验内容和要求
一、表结构修改
1.在实验一的所建立的数据库中增加Teacher表,结构如下:
字段名称
数据类型
长度
精度
小数位数
是否允许Null值
说明
Tno
Char
3
0
0
否
教师号,主码
Tname
Varchar
8
0
0
是
教师名
Tsex
Char
2
0
0
是
性别,取值:男或女
Tbirthday
Date
8
0
0
是
出生日期
Tdept
Char
16
0
0
是
所在系
2.在实验一的所建立的数据库中增加Teaching表,表结构如下:
Teaching表(授课表)的表结构
字段名称
数据类型
长度
精度
小数位数
是否允许Null值
说明
Cno
Char
5
0
0
否
课程号,外码
Tno
Char
3
0
0
否
教师号,外码
Cterm
Tinyint
1
0
0
是
1-8之间
3.向上述两表中输入如下数据记录
Cno
Tno
Cterm
C01
101
2
C02
102
1
C03
201
3
C04
202
4
教师表Teacher 授课表Teaching
Tno
Tname
Tsex
Tbirthday
Tdept
101
李新
男
1977-01-12
计算机系
102
钱军
女
1968-06-04
计算机系
201
王小花
女
1979-12-23
信息管理系
202
张小青
男
1968-08-25
信息管理系
二、完成下面查询
1.查询所有男生信息
2.查询年龄大于24岁的女生学号和姓名
3.查询所有教师的Tname、Tdept
4.查询“电子商务”专业的学生姓名、性别和出生日期
5.查询成绩低于90分的学生学号及课号,并按成绩降序排列
6.查询Student表中所有的系名
7.查询“C01”课程的开课学期
8.查询成绩在80分至90之间的学生学号及课号
9.统计有学生选修的课程门数
10.查询成绩为77,88或99的记录
11.计算“C02”课程的平均成绩
12.输出有成绩的学生学号
13.查询所有姓“刘”的学生信息
14.统计输出各系学生的人数
15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列
16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”
17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”
18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
● 思考题
1.聚集函数能否直接使用在:SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中?
2.关键字ALL和DISTINCT有什么不同的含义?
3.SELECT语句中用于表示模糊查询的通配符有几种?含义分别是什么?
4.利用BETWEEN…AND表示的数据范围能否用其他方法表示?怎样表示?如:score between 80 and 90 还可以怎么表示?
实验三 复杂查询
● 实验目的
1. 掌握连接查询和嵌套查询操作
2. 能灵活应用SELECT语句解决复杂的查询问题
● 实验内容和要求
一、连接查询
1. 查询女学生的学生学号及总成绩
2. 查询李勇同学所选的课程号及成绩
3. 查询李新老师所授课程的课程名称
4. 查询女教师所授课程的课程号及课程名称
5. 查询姓“王”的学生所学的课程名称
6. 查询选修“数据库”课程且成绩在80到90之间的学生学号及成绩
7. 查询选修“C02”课程的学生的平均年龄
8. 查询学习课程名为“数学”的学生学号和姓名
9. 查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩
10. 查询在第3学期所开课程的课程名称,选修其课程的学生学号和成绩
二、嵌套查询
1. 查询至少选修两门课程的男学生姓名
2. 查询与李勇同一个系的其他同学姓名
3. 查询学号比刘晨同学大,而年龄比他小的学生姓名
4. 查询年龄大于所有女同学的男同学的姓名及系别
5. 查询成绩比该课程平均成绩高的学生的学号、课程号及成绩
6. 查询不讲授“C01”课的教师姓名
7. 查询没有选修“C02”课程的学生学号及姓名
8. 查询选修了“数据库”课程的学生学号、姓名及系别
9. 查询选修了全部课程的学生姓名
10. 分别用子查询和连接查询,求“C02”号课程在80分以上的学生信息
● 思考题
1. 使用存在量词NOT EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假?
2. DROP命令和DELETE命令的本质区别是什么?
实验四 数据更新、索引及视图操作
● 实验目的
1. 掌握利用INSERT命令实现对表数据的插入操作
2. 掌握利用UPDATE命令实现对表数据的修改操作
3. 掌握利用DELETE命令实现对表数据的删除操作
4. 掌握索引的创建和使用
5. 掌握视图的创建和删除
● 实验内容和要求
一、数据更新
1. 向Student表中插入记录('20050203','张静','女','1981-3-21','CS' ,'电子商务')
2. 插入学号为20050302,姓名为李四学生信息
3. 把男学生记录保存到表TS中
(提示:利用select into 命令可备份数据库中的表
格式:select * into 新表名 from 原表名
where 子句;)