sqlserver实验答案Word下载.docx
- 文档编号:6180393
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:23
- 大小:42.64KB
sqlserver实验答案Word下载.docx
《sqlserver实验答案Word下载.docx》由会员分享,可在线阅读,更多相关《sqlserver实验答案Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
确定数据库包含哪些表及包含的表结构,还要了解掌握在SQLServerManagement
的常用数据类型,以创建数据库的表
(4)
了解常用的创建数据库和表的方法
(1)数据库分析
1创建用于学生选课管理的数据库,数据库名为“student”初始大小20M,最大50M,
数据库自动增长,增长方式是按15%;
日志文件大小5M,最大25M,按5M增长。
数据库的逻辑文件名和物理文件名均采用默认值
2Student数据库包含学生和教师的信息、教学计划信息、课程信息、教师任课信息等。
数据库关系图如下图所示。
(2)在对象资源管理器中创建和删除数据库和表
1在对象资源管理器中创建student数据库
2在对象资源管理器中删除student数据库
3在对象资源管理器中分别创建“学生”和“教师”表
4在对象资源管理器中分别删除“学生”和“教师”表
(3)在查询分析器中创建和删除数据库和表
1用T-SQL语句创建student数据库
createdatabasestudent
onprimary
(name=student_db_data,
filename='
E:
\db\student_db_data.mdf,size=20mb,
maxsize=50mb,
filegrowth=15%)
logon
(name=student_db_log,
\db\student_db_data.mdf,,size=5mb,
maxsize=25mb
filegrowth=5mb)
collateChinese_PRC_CI_AS
go
2用T-SQL语句创建“学生”和“教师”表
数据库中各表的创建:
USEstudent
GO
CREATETABLE系部
(系部代码char
(2)CONSTRAINTpk_xbdmPRIMARYKEY,系部名称varchar(30)NOTNULL,
系主任char(8)
)
CREATETABLE专业
(专业代码char(4)CONSTRAINTpk_zydmPRIMARYKEY专业名称varchar(20)NOTNULL,
系部代码char
(2)CONSTRAINTfk_zyxbdmREFERENCESGO
CREATETABLE班级
(班级代码char(9)CONSTRAINTpk_bjdmPRIMARYKEY,班级名称varchar(20),
专业代码char(4)CONSTRAINTfk_bjzydmREFERENCES系部代码char
(2)CONSTRAINTfk_bjxbdmREFERENCES备注varchar(50))
CREATETABLE学生
(学号char(12)CONSTRAINTpk_xhPRIMARYKEY,
姓名char(8),
性别char
(2),
出生日期datetime,
入学时间datetime,
班级代码char(9)CONSTRAINTfk_xsbjdmREFERENCES系部代码char
(2)CONSTRAINTfk_xsxbdmREFERENCES专业代码char(4)CONSTRAINTfk_xszydmREFERENCESGO
CREATETABLE课程
(课程号char(4)CONSTRAINTpk_kcPRIMARYKEY,课程名char(20)NOTNULL,
学分smallint)
CREATETABLE教师
(教师编号char(12)CONSTRAINTpk_jsbhPRIMARYKEY姓名char(8)NOTNULL,
系部(系部代码))
专业(专业代码),系部(系部代码),
班级(班级代码),系部(系部代码),专业(专业代码))
学历char(10),
职务char(10),职称char(10),系部代码char
(2)CONSTRAINTfk_jsxbdmREFERENCES系部(系部代码),
专业char(20),备注varchar(50))
CREATETABLE教学计戈U
(课程号char(4)CONSTRAINTpk_jxjhchREFERENCES课程(课程号),
专业代码char(4)CONSTRAINTpk_jxjhzydmREFERENCES专业(专业代码),
专业学级char(4),课程类型char(8),开课学期tinyint,学分tinyint)
CREATETABLE教师任课
(教师编号char(12)CONSTRAINTfk_jsrkjsbhREFERENCES教师(教师编号),
课程号char(4)CONSTRAINTfk_jsrkchREFERENCES课程(课程号),专业学级char(4),
专业代码char(4)CONSTRAINTfk_jsrkzydmREFERENCES专业(专业代码),
学年char(4),学期tinyint,学生数smallint)
CREATETABLE课程注册
(注册号bigintidentity(O,1)notforreplicationCONSTRAINTpk_zchPRIMARYKEY,学号char(12)CONSTRAINTfk_kczcxhREFERENCES学生(学号),课程号char(4)CONSTRAINTfk_kczckchREFERENCES课程(课程号),教师编号char(12)CONSTRAINTfk_kczcjsbhREFERENCES教师(教师编号),
专业代码char(4)CONSTRAINTfk_kczczydmREFERENCES专业(专业代码),专业学级char(4),选课类型char(8),学期tinyint,学年char(4),成绩tinyint,学分tinyint)
实验3表的基本操作
(1)能够在资源管理器中对表数据进行插入、修改和删除等操作
(2)能使用T-SQL语句对表数据进行插入、修改和删除等操作
(1)了解表数据的插入、修改和删除操作,对表数据的更新操作可以在对象资源管理器中进行,也可用T-SQL语句完成
(2)掌握使用T-SQL语句对表数据进行插入、修改和删除等操作的用法
(1)在对象资源管理器中向student数据库中的表插入数据
(2)使用T-SQL命令向studen数据库中的表插入数据
('
01'
'
计算机系’,'
徐才智'
02'
经济管理系'
张博'
03'
数学系'
徐裕光'
04'
外语系'
李溅波'
Go
INSERTinto系部(系部代码,系部名称,系主任)VALUES
INSERTinto系部(系部代码,系部名称,系主任)VALUESGO
INSERTinto系部(系部代码,系部名称,系主任)VALUES
(3)GO在对象资源管理器中修改studenti数据库中的表数据
(4)使用T-SQL命令修改studen数据库中的表数据
a)将系部表中计算机系的系主任改为’张中裕’
Update系部set系主任='
张中裕’where系部名称='
计算机系’
b)将系部表中的系部名称列中的‘系’全部更改为’科学系’(使用replace函数,用
法:
replace(串1,串2,串3),其功能是将串1中的串2替换为串3)
Update系部set系部名称=replace(系部名称,'
系’,'
科学系’)
(5)在对象资源管理器中删除studen数据库中的表数据
(6)使用T-SQL命令删除student数据库中的表数据
a)在系部表中删除系主任姓’张’的系部数据
Deletefrom系部where系主任like张%'
实验4数据查询
掌握Select语句的基本语法
掌握Insert语句的基本语法
掌握连接查询的基本方法
掌握子查询的基本方法
.实验准备
了解Select语句的执行方法
了解基本聚合函数的作用
了解Select语句的groupby和having子句的使用
了解Insert语句的基本语法格式
(5)
了解连接查询的表示方法
(6)
了解子查询的表示方法
(1)用Select语句进行简单查询
1根据前面实验给出的数据表结构,查询每个学生的上机号、姓名、上机所剩余额等信息
Select上机号,姓名,余额from上机卡
2查询上机号为“03”的学生的姓名和余额
Select姓名,余额from上机卡where上机号='
3查询所有姓“王”的学生的上机号、余额和上机密码
Select上机号,余额,上机密码from上机卡where姓名like王%'
4查询所有余额不足5元的学生的上机号
Select上机号from上机卡where余额<5
5查询所有上机日期在2008-3-1到2008-3-3之间的学生的上机号
Select上机号from上机记录where上机日期betweenconvert(datetime,
2008-3-1'
))andconvert(datetime,2008-3-3'
))
(2)用Select语句进行高级查询
1查询班级名称为“03计算机教育班”的学生的上机号和姓名
Select上机号,姓名from上机卡where班级代码in
(select班级代码from班级where班级名称='
03计算机教育班'
2查询所有余额不足5元的学生的上机号、姓名和班级名称
Select上机号,姓名,班级名称from上机卡a,班级bwherea.班级代码=b.班级代码anda.余额<5
3查询所有余额不足30元的学生的总人数
Selectcount(*)as总人数from上机卡where余额<30
4求每一天的上机总人数
Selectcount(distinet上机号)as总人数from上机记录groupby上机日期
5查询上机日期在2008-3-1到2008-8-3之间的各个班级的上机总人数
Select班级代码,count(distineta..上机号)from上机记录a,上机卡bwherea.上
机号=b.上机号groupbyb.班级代码
6将学生的上机号、姓名按余额的多少由高到低排序
Select上机号,姓名from上机卡orderby余额desc
4.计费数据库的数据结构:
数据表的创建脚本:
USEjifei
(班级代码char(10)CONSTRAINTpk_bjdmPRIMARYKEY,
班级名称char(30))
CREATETABLE上机卡
(上机号char(13)CONSTRAINTpk_sjhPRIMARYKEY,
班级代码char(10)CONSTRAINTfk_bjdmREFERENCES班级(班级代码),
上机密码varchar(30),
管理密码varchar(30),
余额money,
备注varchar(50))
CREATETABLE上机记录
(上机号char(13)CONSTRAINTfk_sjjlsjhREFERENCES上机卡(上机号),上机日期datetime,开始时间datetime,结束时间datetime,
上机状态bit)
CREATETABLE管理员
(管理员代码char(20)CONSTRAINTpk_glydmPRIMARYKEY,
密码char(10))
实验5数据完整性
要求学生能够使用T-SQL语句的primarykey、check、foreignkeyreferences、notnull、
unique等关键字实现SQLServer的实体完整性、参照完整性及用户定义的完整性
(1)了解数据完整性的概念
(2)了解约束的类型
(3)了解创建约束和删除约束的语法
(4)了解创建规则和删除规则的语法
(5)了解绑定规则和解绑规则的语法
(6)了解创建默认对象和删除默认对象的语法
(7)了解绑定默认对象和解绑默认对象的语法
(1)建表时创建约束。
在student数据库中使用createtable语句创建表stu1,其结构如下:
学号:
char(12),姓名:
char(8),性别:
char
(2),出生日期:
datetime,住址:
char(40),备注text。
在建表时,创建所需约束。
要求如下:
将学号设为主键,主键名为pk_xuehao;
为姓名添加唯一约束,约束名为uk_xingming;
为性别添加默认约束,默认名为de_xingbie
为出生日期添加check约束,约束名为
ckcsrq,条件为:
(出生日期>
'
01/01/1986'
Createtablestu1
(学号char(12)constraint
pk_xuehao
primary
key,
姓名char(8)constraint
uk_xingming
unique
性别char
(2)constraint
de_xingbie
default
男'
岀生日期datetimeconstraintck_csrq
check
(岀生日
期>
convert(datetime,'
1/1/1986'
101)),
住址char(40),
备注text
(2)在查询分析器中删除上面所建的约束
Altertablestu1
Dropconstraintpk_xuehao
Dropconstraintuk_xingming
Dropconstraintde_xingbie
Dropconstraintck_csrq
(3)基于学生选课管理系统中的student数据库中的表建立外键约束、规则、默认对象,
进行绑定和解绑,最后删除所建的约束
createruleck_csrqas@rq>
convert(datetime,‘1/1/1986'
101)
execsp_bindrule'
ck_csrq'
,‘stu1.岀生日期'
execsp_unbindrule'
stu1.岀生日期'
createdefaultde_xingbieas'
execsp_bindefault'
de_xingbie'
,‘stul.性另V
execsp_unbindefault'
stul.性另V'
实验6索引的应用
(1)掌握创建索引的命令
(2)掌握使用资源管理器创建索引的方法
(3)掌握查看索引的系统存储过程的用法
(4)掌握索引分析与维护的常用方法
(1)了解聚集索引和非聚集索引的概念
(2)了解创建索引的SQL语句
(3)了解使用资源管理器创建索引的步骤
(4)了解索引更名的存储过程的用法
(5)了解删除索引的SQL命令的用法
(6)了解索引分析与维护的常用方法
(1)完成例题中索引的创建
例:
为student数据库中的教师"
表创建基于专业"
列的非聚集索引js_zy_index。
代码如下:
CREATEINDEXjs_zy_indexON教师(专业)
(2)为student数据库中课程注册表的成绩字段建立一个非聚集索引,名为kczccj_index
Usestudent
Createindexkczccj_indexon课程注册(成绩)
(3)使用sp_helpindex查看课程注册表上的索引信息
execsp_helpindex课程注册
(4)使用sp_rename将索弓丨kczccj_index改为kcvc_cj_index
Execsp_renamekczccj」ndex,kcvc_cj」ndex
(5)使用student数据库中的课程注册表,查询所有课程注册信息,同时显示查询处理过
程中磁盘活动的统计信息
Showplan_allon
Select*from课程注册
(6)用SQL语句删除kcvc_cj」ndex
Dropindexkcvc_cj」ndex
(1)掌握创建视图的命令
(2)掌握使用资源管理器创建视图的方法
(3)掌握查看视图的系统存储过程的用法
(1)了解创建视图的方法
(2)了解修改视图的SQL语句
(3)了解视图更名的存储过程的用法
(4)了解删除视图的SQL命令的用法
3.
显示学
实验内容
(1)在student数据库中以学生表为基础,建立一个名为经济管理系学生的视图,
生表中的所有字段
Createview经济管理系学生as
Select*from学生where专业代码in
(selectdistinet专业代码from专业
Where专业名称='
经济管理'
(2)使用经济管理系学生视图查询专业代码为“0201”的学生
select*from经济管理系学生where专业代码='
0201'
(3)将经济管理系学生视图改名为v_经济管理系学生
Execsp_renamest_jjgl,v_经济管理系学生
(4)修改v_经济管理系学生视图的内容,使得该视图能查询到经济管理系所有的女生
Alterviewv_经济管理系学生as
Select*from学生where性别='
女'
and专业代码in
(5)用SQL语句删除v_经济管理系学生视图
Dropviewv_经济管理系学生
实验8存储过程与触发器
(1)掌握存储过程和触发器创建的方法和步骤
(2)掌握存储过程和触发器的使用方法
(1)了解存储过程和触发器的基本概念和类型
(2)了解创建存储过程和触发器的SQL语句的基本语法
(3)了解查看、执行、修改和删除存储过程的SQL语句的用法
(4)了解查看、执行、修改和删除触发器的SQL语句的用法
1.实验内容
(1)存储过程的使用:
1在student数据库中的学生、课程注册、课程表中创建一个带参的存储过程cjcx。
其
功能是:
当任意输入一个学生的姓名时,返回该学生的学号、选修的课程名和课程
成绩。
CreatePROCEDURE[dbo].[cjcx]
@axmchar(8)
AS
BEGIN
SELECT学生.学号,课程.课程名,课程注册.成绩from学生,课程,课程注册
where学生.学号=课程注册.学号and课程注册.课程号=课程.课程号
and姓名=@axm
END
2执行存储过程cjcx,查询“周红瑜”的学号、选修的课程名和课程成绩。
Exe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlserver 实验 答案