sqlserver实验答案.docx
- 文档编号:4980391
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:19
- 大小:22.54KB
sqlserver实验答案.docx
《sqlserver实验答案.docx》由会员分享,可在线阅读,更多相关《sqlserver实验答案.docx(19页珍藏版)》请在冰豆网上搜索。
sqlserver实验答案
实验1SqlServer数据库的安装
1.实验目的
(1)通过安装来了解,感受SQLServer2005
(2)了解SQLServer2005所支持的多种形式的管理架构,并确定此次安装的管理架构形式
(3)熟悉安装SQLServer2005的各种版本所需的软、硬件要求,确定要安装的版本
(4)熟悉SQLServer2005支持的身份验证种类
(5)掌握SQLServer服务的几种启动方法
(6)正确配置客户端和服务器端网络连接的方法
(7)掌握SQLServerManagementStudio的常规使用
2.实验准备
(1)了解SQLServer2005的各种版本及所需的软、硬件要求
(2)了解SQLServer2005支持的验证种类
(3)了解SQLServer2005各组件的主要功能
(4)掌握在查询分析器中执行SQL语句的方法
3.实验内容
(1)安装SQLServer2005,并在安装时将登录身份验证模式设置为“SQLServer”和“Windows”验证,其他选择默认,并记住Sa的密码。
(2)利用SQLServerConfigurationManager配置SQLServer2005服务器
(3)利用SQLServer2005创建的默认帐户,通过注册服务器向导首次注册服务器
(4)试着创建一些由SQLServer2005验证的用户,删除第一次注册的服务器后用新建的帐户来注册服务器。
(5)为某一个数据库服务器指定服务器别名,后通过服务器别名注册该数据库服务器
(6)熟悉和学习使用SQLServer2005的SQLServerManagementStudio
实验2创建数据库和表
1.实验目的
(1)了解SQLServer数据库的逻辑结构和物理结构
(2)了解表的结构和特点
(3)了解SQLServer的基本数据类型
(4)掌握在SQLServerManagementStudio中创建数据库和表的方法
(5)掌握使用T-SQL语句创建数据库和表的方法
2.实验准备
(1)要明确能够创建数据库的用户必须是系统管理员或被授权使用Createdatabase的用户
(2)创建数据库必须要确定数据库名、所有者、数据库大小(最初大小、最大大小、是否允许增长和增长的方式)和存储数据的文件
(3)确定数据库包含哪些表及包含的表结构,还要了解掌握在SQLServerManagement的常用数据类型,以创建数据库的表
(4)了解常用的创建数据库和表的方法
3.实验内容
(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,
filename='E:
\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)
)
GO
CREATETABLE专业
(专业代码char(4)CONSTRAINTpk_zydmPRIMARYKEY,
专业名称varchar(20)NOTNULL,
系部代码char
(2)CONSTRAINTfk_zyxbdmREFERENCES系部(系部代码))
GO
CREATETABLE班级
(班级代码char(9)CONSTRAINTpk_bjdmPRIMARYKEY,
班级名称varchar(20),
专业代码char(4)CONSTRAINTfk_bjzydmREFERENCES专业(专业代码),
系部代码char
(2)CONSTRAINTfk_bjxbdmREFERENCES系部(系部代码),
备注varchar(50))
GO
CREATETABLE学生
(学号char(12)CONSTRAINTpk_xhPRIMARYKEY,
姓名char(8),
性别char
(2),
出生日期datetime,
入学时间datetime,
班级代码char(9)CONSTRAINTfk_xsbjdmREFERENCES班级(班级代码),
系部代码char
(2)CONSTRAINTfk_xsxbdmREFERENCES系部(系部代码),
专业代码char(4)CONSTRAINTfk_xszydmREFERENCES专业(专业代码))
GO
CREATETABLE课程
(课程号char(4)CONSTRAINTpk_kcPRIMARYKEY,
课程名char(20)NOTNULL,
学分smallint)
GO
CREATETABLE教师
(教师编号char(12)CONSTRAINTpk_jsbhPRIMARYKEY,
姓名char(8)NOTNULL,
性别char
(2),
出生日期datetime,
学历char(10),
职务char(10),
职称char(10),
系部代码char
(2)CONSTRAINTfk_jsxbdmREFERENCES系部(系部代码),
专业char(20),
备注varchar(50))
GO
CREATETABLE教学计划
(课程号char(4)CONSTRAINTpk_jxjhchREFERENCES课程(课程号),
专业代码char(4)CONSTRAINTpk_jxjhzydmREFERENCES专业(专业代码),
专业学级char(4),
课程类型char(8),
开课学期tinyint,
学分tinyint)
GO
CREATETABLE教师任课
(教师编号char(12)CONSTRAINTfk_jsrkjsbhREFERENCES教师(教师编号),
课程号char(4)CONSTRAINTfk_jsrkchREFERENCES课程(课程号),
专业学级char(4),
专业代码char(4)CONSTRAINTfk_jsrkzydmREFERENCES专业(专业代码),
学年char(4),
学期tinyint,
学生数smallint)
GO
CREATETABLE课程注册
(注册号bigintidentity(0,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)
GO
实验3表的基本操作
1.实验目的
(1)能够在资源管理器中对表数据进行插入、修改和删除等操作
(2)能使用T-SQL语句对表数据进行插入、修改和删除等操作
2.实验准备
(1)了解表数据的插入、修改和删除操作,对表数据的更新操作可以在对象资源管理器中进行,也可用T-SQL语句完成
(2)掌握使用T-SQL语句对表数据进行插入、修改和删除等操作的用法
3.实验内容
(1)在对象资源管理器中向student数据库中的表插入数据
(2)使用T-SQL命令向studen数据库中的表插入数据
a)向系部表中插入数据('01','计算机系','徐才智')
b)向系部表中插入数据('02','经济管理系','张博')
c)向系部表中插入数据('03','数学系','徐裕光')
d)向系部表中插入数据('04','外语系','李溅波')
Usestudent
Go
INSERTinto系部(系部代码,系部名称,系主任)VALUES('01','计算机系','徐才智')
GO
INSERTinto系部(系部代码,系部名称,系主任)VALUES('02','经济管理系','张博')
GO
INSERTinto系部(系部代码,系部名称,系主任)VALUES('03','数学系','徐裕光')
GO
INSERTinto系部(系部代码,系部名称,系主任)VALUES('04','外语系','李溅波')
(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数据查询
1.实验目的
(1)掌握Select语句的基本语法
(2)掌握Insert语句的基本语法
(3)掌握连接查询的基本方法
(4)掌握子查询的基本方法
2.实验准备
(1)了解Select语句的执行方法
(2)了解基本聚合函数的作用
(3)了解Select语句的groupby和having子句的使用
(4)了解Insert语句的基本语法格式
(5)了解连接查询的表示方法
(6)了解子查询的表示方法
3.实验内容
(1)用Select语句进行简单查询
1根据前面实验给出的数据表结构,查询每个学生的上机号、姓名、上机所剩余额等信息
Select上机号,姓名,余额from上机卡
2查询上机号为“03”的学生的姓名和余额
Select姓名,余额from上机卡where上机号=’03’
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(distinct上机号)as总人数from上机记录groupby上机日期
5查询上机日期在2008-3-1到2008-8-3之间的各个班级的上机总人数
Select班级代码,count(distincta..上机号)from上机记录a,上机卡bwherea.上机号=b.上机号groupbyb.班级代码
6将学生的上机号、姓名按余额的多少由高到低排序
Select上机号,姓名from上机卡orderby余额desc
4.计费数据库的数据结构:
数据表的创建脚本:
USEjifei
GO
CREATETABLE班级
(班级代码char(10)CONSTRAINTpk_bjdmPRIMARYKEY,
班级名称char(30))
GO
CREATETABLE上机卡
(上机号char(13)CONSTRAINTpk_sjhPRIMARYKEY,
姓名char(8),
班级代码char(10)CONSTRAINTfk_bjdmREFERENCES班级(班级代码),
上机密码varchar(30),
管理密码varchar(30),
余额money,
备注varchar(50))
GO
CREATETABLE上机记录
(上机号char(13)CONSTRAINTfk_sjjlsjhREFERENCES上机卡(上机号),
上机日期datetime,
开始时间datetime,
结束时间datetime,
上机状态bit)
GO
CREATETABLE管理员
(管理员代码char(20)CONSTRAINTpk_glydmPRIMARYKEY,
姓名char(8),
密码char(10))
GO
实验5数据完整性
1.实验目的
要求学生能够使用T-SQL语句的primarykey、check、foreignkey……references、notnull、unique等关键字实现SQLServer的实体完整性、参照完整性及用户定义的完整性
2.实验准备
(1)了解数据完整性的概念
(2)了解约束的类型
(3)了解创建约束和删除约束的语法
(4)了解创建规则和删除规则的语法
(5)了解绑定规则和解绑规则的语法
(6)了解创建默认对象和删除默认对象的语法
(7)了解绑定默认对象和解绑默认对象的语法
3.实验内容
(1)建表时创建约束。
在student数据库中使用createtable语句创建表stu1,其结构如下:
学号:
char(12),姓名:
char(8),性别:
char
(2),出生日期:
datetime,住址:
char(40),备注text。
在建表时,创建所需约束。
要求如下:
将学号设为主键,主键名为pk_xuehao;
为姓名添加唯一约束,约束名为uk_xingming;
为性别添加默认约束,默认名为de_xingbie
为出生日期添加check约束,约束名为ck_csrq,条件为:
(出生日期>’01/01/1986’)
Createtablestu1
(学号char(12)constraintpk_xuehaoprimarykey,
姓名char(8)constraintuk_xingmingunique,
性别char
(2)constraintde_xingbiedefault'男',
出生日期datetimeconstraintck_csrqcheck(出生日期>convert(datetime,'1/1/1986',101)),
住址char(40),
备注text
)
(2)在查询分析器中删除上面所建的约束
Altertablestu1
Dropconstraintpk_xuehao
Altertablestu1
Dropconstraintuk_xingming
Altertablestu1
Dropconstraintde_xingbie
Altertablestu1
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','stu1.性别'
execsp_unbindefault'stu1.性别'
实验6索引的应用
1.实验目的
(1)掌握创建索引的命令
(2)掌握使用资源管理器创建索引的方法
(3)掌握查看索引的系统存储过程的用法
(4)掌握索引分析与维护的常用方法
2.实验准备
(1)了解聚集索引和非聚集索引的概念
(2)了解创建索引的SQL语句
(3)了解使用资源管理器创建索引的步骤
(4)了解索引更名的存储过程的用法
(5)了解删除索引的SQL命令的用法
(6)了解索引分析与维护的常用方法
3.实验内容
(1)完成例题中索引的创建
⏹例:
为student数据库中的“教师”表创建基于“专业”列的非聚集索引js_zy_index。
⏹代码如下:
⏹USEstudent
⏹GO
⏹CREATEINDEXjs_zy_indexON教师(专业)
⏹GO
(2)为student数据库中课程注册表的成绩字段建立一个非聚集索引,名为kczccj_index
⏹Usestudent
⏹go
⏹Createindexkczccj_indexon课程注册(成绩)
⏹go
(3)使用sp_helpindex查看课程注册表上的索引信息
⏹Usestudent
⏹go
⏹execsp_helpindex课程注册
⏹go
(4)使用sp_rename将索引kczccj_index改为kcvc_cj_index
⏹Usestudent
⏹Go
⏹Execsp_renamekczccj_index,kcvc_cj_index
⏹go
(5)使用student数据库中的课程注册表,查询所有课程注册信息,同时显示查询处理过程中磁盘活动的统计信息
⏹Usestudent
⏹Go
⏹Showplan_allon
⏹Go
⏹Select*from课程注册
⏹Go
(6)用SQL语句删除kcvc_cj_index
⏹Usestudent
⏹Go
⏹Dropindexkcvc_cj_index
⏹go
实验7视图的应用
1.实验目的
(1)掌握创建视图的命令
(2)掌握使用资源管理器创建视图的方法
(3)掌握查看视图的系统存储过程的用法
2.实验准备
(1)了解创建视图的方法
(2)了解修改视图的SQL语句
(3)了解视图更名的存储过程的用法
(4)了解删除视图的SQL命令的用法
3.实验内容
(1)在student数据库中以学生表为基础,建立一个名为经济管理系学生的视图,显示学生表中的所有字段
Usestudent
Go
Createview经济管理系学生as
Select*from学生where专业代码in
(selectdistinct专业代码from专业
Where专业名称=’经济管理’)
go
(2)使用经济管理系学生视图查询专业代码为“0201”的学生
select*from经济管理系学生where专业代码='0201'
go
(3)将经济管理系学生视图改名为v_经济管理系学生
Usestudent
Go
Execsp_renamest_jjgl,v_经济管理系学生
go
(4)修改v_经济管理系学生视图的内容,使得该视图能查询到经济管理系所有的女生
Usestudent
Go
Alterviewv_经济管理系学生as
Select*from学生where性别=’女’and专业代码in
(selectdistinct专业代码from专业
Where专业名称=’经济管理’)
go
(5)用SQL语句删除v_经济管理系学生视图
Usestudent
Go
Dropviewv_经济管理系学生
go
实验8存储过程与触发器
1.实验目的
(1)掌握存储过程和触发器创建的方法和步骤
(2)掌握存储过程和触发器的使用方法
2.实验准备
(1)了解存储过程和触发器的基本概念和类型
(2)了解创建存储过程和触发器的SQL语句的基本语法
(3)了解查看、执行、修改和删除存储过程的SQL语句的用法
(4)了解查看、执行、修改和删除触发器的SQL语句的用法
1.实验内容
(1)存储过程的使用:
1在student数据库中的学生、课程注册、课程表中创建一个带参的存储过程cjcx。
其功能是:
当任意输入一个学生的姓名时,返回该学生的学号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlserver 实验 答案