《SQLServer数据库设计》实验指导书软件学院网络工程谭丹丹辽宁科技大学2012-8-27目录实验一SQLServer管理工具3实验二数据定义5实验三简单查询11实验四高级查询15实验五数据更新17实验六索引和视图19实验七数据库完整性23实验八数据库编程25实验九数据库安全性27实验十数据库备份与还原32实验一SQLServer管理工具一、实验目的:1.
掌握SQLServerManagementStudio集成环境的构成和基本操作.
2.
熟悉服务器管理的基本操作.
3.
熟悉联机丛书与教程的实用.
二、实验预习与准备:1.
掌握SQLServerManagementStudio集成环境的构成和基本操作.
2.
利用查询编辑器新建查询.
3.
SQLServer2008的服务器管理.
4.
SQLServer2008的联机丛书和教程.
三、实验内容及步骤:1.
SQLServerManagementStudio的启动和退出(1)启动SQLServerManagementStudio.
(2)连接服务器.
"服务器类型"、"服务器名称"、"身份验证".
(3)退出SQLServerManagementStudio.
2.
SQLServerManagementStudio的基本操作(1)菜单栏的操作.
显示"已注册的服务器"窗口(2)工具栏的操作.
若要在窗口中显示常见模板的相关信息,则需要找到"模板资源管理器"按钮,即可打开窗口.
(3)"对象资源管理器"窗口.
系统将所有已连接的数据库服务器及其子对象以树状结构显示在该窗口中.
查看"数据库"项中所包括的内容.
在"对象资源管理器"窗口工具栏中,找到"连接"和"断开连接"按钮,来实现SQLServerManagementStudio与指定服务的连接和断开连接功能.
3.
新建查询(1)在SQLServerManagementStudio中单击工具栏中的"新建查询"按钮,在"文档"窗口中打开查询编辑器代码窗口.
(2)在查询编辑器中输入如下Transact—SQL语句:(3)单击工具栏中的"以文本格式显示结果"按钮,执行并查看结果.
(4)单击工具栏中的"以网格显示结果"按钮,执行并查看结果.
4.
启动和停止SQLServer2008服务器(1)使用"SQLServer配置管理器"启动、暂停和关闭服务器.
(2)使用SQLServerManagementStudio配置服务器.
(3)使用SQLServer服务启动和关闭服务器.
5.
配置SQLServer2008服务器(1)查看当前SQLServer2008软件的版本和根目录.
(2)把服务器身份验证修改为"SQLServer和Windows身份验证方式".
实验二数据定义一、实验目的:1.
掌握数据库、表的基本概念.
2.
掌握创建、修改数据库和表结构的方法.
3.
掌握管理数据库的方法.
4.
掌握录入、浏览数据的方法.
二、实验预习与准备:1.
数据库、表的基本概念.
2.
利用SQLServerManagementStudio和Transact-SQL语句创建、修改数据库和表结构.
3.
利用SQLServerManagementStudio和Transact-SQL语句管理数据库.
4.
SQLServer2008的系统数据类型.
三、实验内容及步骤:1.
利用SQLServerManagementStudio创建一个名为student的数据库.
该数据库的主数据文件逻辑名称为student,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为student_log,初始大小为1MB,最大尺寸为5MB,增长速度为1MB.
存放路径为E:\DATA\,其他均采用默认设置.
2.
利用Transact-SQL语句创建数据库test,采用默认参数.
若该数据库已存在,则删除后重建.
(利用模板操作)系统将默认在SQLServer2008的安装路径\mssql.
1\mssql\data文件夹下创建数据文件test.
mdf和事务日志文件test_log.
ldf.
3.
修改数据库test,将数据文件的逻辑文件名修改为"测试数据",操作系统文件名修改为e:\data\test.
mdf.
将事务日志文件的逻辑文件名修改为"测试数据日志",操作系统文件名修改为e:\data\test_log.
ldf,并且为数据库新增一个逻辑名称为"测试数据2"的次要数据文件.
(1)查询编辑器中输入如下代码并执行:系统给出如下提示信息:(2)将数据库test设置为脱机状态.
(3)将文件实际移至新目录中.
(4)将数据库test重新设置为联机状态(5)查询编辑器中输入如下添加次要文件的代码并执行:可在查看test数据库的属性,查看数据库的修改情况.
4.
利用SQLServerManagementStudio将test数据库分离后重新附加到当前SQLServer实例中.
5.
利用Transact-SQL语句将test数据库重命名为"测试",调用系统存储过程将"测试"重命名为test.
(1)在编辑器中输入如下代码并执行:系统给出如下提示信息.
(2)在查询编辑器中输入如下调用系统存储过程的代码并执行:系统给出如下提示信息.
6.
利用Transact-SQL语句将test数据库删除.
Student数据库中包含5张表,结构如下:student表(学生信息表)字段名称类型宽度允许空值主键说明snochar10否是学生学号snamechar10否学生姓名sexchar2是学生性别birthdaysmalldatetime4是学生出生日期dnochar10是学生所在院系编号spnochar10是专业代码classnochar10是班级号entimesmalldatetime4是学生入校时间homevarchar50是学生家庭住址telvarchar50是学生联系电话course表(课程信息表)字段名称类型宽度允许空值主键说明cnochar10否是课程编号spnochar10是专业代码cnamechar20否课程名称ctnotinyint1是课程类型编号experimenttinyint1是实验时数lecturetinyint1是授课学时semestertinyint1是开课学期credittinyint1是课程学分student_course(学生选课成绩表)字段名称类型宽度允许空值主键说明snochar10否是学生学号cnochar10否是课程编号scoretinyint1是学生成绩teacher表(教师信息表)字段名称类型宽度允许空值主键说明tnochar10否教师编号tnamechar10否教师姓名sexchar2是教师性别birthdaysmalldatetime4是教师出生日期dnochar10是教师所在院系编号pnotinyint1是教师职务或职称编号homevarchar50是教师家庭住址zipcodechar10是邮政编码telvarchar50是联系电话emailvarchar50是电子邮件teacher_course表(教师上课课表)字段名称类型宽度允许空值主键说明ticdsmallint2否是上课编号tnochar10是教师编号spnochar10是专业代码classnochar10是班级号cnochar10否课程编号semesterchar10是学期schoolyearchar10是学年classtimevarchar50是上课时间classroomvarchar50是上课地点weektimetinyint1是每周课时数7.
利用SQLServerManagementStudio在student数据库中创建student表和course表.
8.
利用Transact-SQL语句创建teacher表、student_course表、teacher_course表.
9.
利用SQLServerManagementStudio修改表结构(1)为student表增加一列email(电子邮件),数据类型nchar(50)(2)修改course表中ctno列的数据类型为char(10)(3)为student_course表增加一列usually(平均成绩),数据类型smallint.
10.
利用Transact-SQL语句修改表结构(1)为student表增加籍贯列native,数据类型为char(10),允许为空.
(2)修改student表中native列的数据类型为varchar(10).
(3)删除teacher表中的zipcode列.
11.
利用Transact-SQL语句删除teacher表.
实验三简单查询一、实验目的:1.
掌握select各个子句的功能和检索数据的方法.
2.
掌握where子句中like、in、between、is等逻辑运算符的使用.
3.
掌握orderby子句的使用.
4.
掌握聚集函数的使用.
5.
掌握groupby子句的使用.
二、实验预习与准备:1.
利用select…from子句实现投影查询和设置结果集格式.
2.
利用where子句实现数据过滤.
3.
orderby子句的使用.
4.
聚集函数的使用.
5.
利用Groupby子句和having子句实现分组查询.
三、实验内容及步骤:首先启动数据库引擎,增加以下3张表及数据Teacher表Teacher_course表Class表1.
查询所有的学生的学号、姓名、性别、出生日期.
2.
查询所有课程的课程名、课程学分、专业代码和课程类型.
3.
查询有学生选修的课程的课程号4.
查询所有的学生的学号、姓名、年龄.
年龄的别名为age.
(提示:函数year()可以用来求年份.
)5.
查询"090502"班的所有学生的基本信息.
6.
查询年龄大于22岁的男生的姓名,所在学院编号、专业代码和班级号.
7.
查询出生日期在1990年1月1日后的学生的学号、姓名、性别、出生日期.
8.
查询不是"06"学院的学生的信息.
9.
查询选修课程且期末成绩不为空的学生的选课信息.
10.
查询email使用126邮箱的所有学生的学号、姓名和电子邮箱地址.
11.
查询第二个字是"岩"的学生的学号和姓名.
12.
查询生日在"1990/09/01"和"1991/08/31"之间的学生的信息.
13.
查询选修'c05109'或'c05103'课程,并且期末成绩在90-100分之间的学生学号,课程号和期末成绩.
14.
查询所有学生信息,查询结果按照年龄大小从大到小排序.
15.
查询所有学生信息,查询结果按照院系编号的升序排列,同一个学院的按照年龄大小从小到大排序.
16.
查询选修了'c05109'课程的学生的学号和成绩,按照成绩的降序排列.
17.
查询选修了'c05109'课程,并且期末成绩在前5名的学生学号、课程号和期末成绩.
18.
查询编号'05'学院学生的人数,列名为"软件学院学生人数".
19.
查询编号'05'学院女生的人数,列名为"软件学院女学生人数".
20.
查询每个学院的人数,列名分别为"学院号""学生人数".
21.
查询"c05109"号课程的平均分、最高分、最低分,列名分别为"平均分""最高分""最低分"22.
查询所有课程的课程号、平均分、最高分、最低分,按照平均分的降序排序.
列名分别为"课程号""平均分""最高分""最低分".
23.
查询有3人以上选修的课程的课程号和选修人数,列名为"课程号""选修人数".
实验四高级查询一、实验目的:1.
掌握多表连接查询的基本概念.
2.
掌握多表连接的各种方法.
3.
掌握嵌套查询的方法.
二、实验预习与准备:1.
利用多表连接方式查询数据.
2.
利用嵌套方式查询数据.
三、实验内容及步骤:首先创建2张表并录入如下数据表名:department(dno,dname)speciality(spno,spname)1.
查询所有学生的学号,姓名,性别,所在学院、系、和班级的名字.
2.
查询网络工程系的学生的学号,姓名及各科考试的课程名和成绩,查询结果按照学号升序排序,同一个学生按照成绩的降序排序.
3.
(1)查询选修了'c05103'或者'c05109'号课程的学生的学号.
(2)查询至少选修了'c05103'和'c05109号课程的学生的学号.
4.
查询所有教授或副教授的职工号,姓名,职称和所在学院.
5.
查询所有平时成绩在70分以下的学生的学号、姓名和学院.
6.
查询所有期末成绩在70分以下的学生的学号,姓名及其70分以下的科目名称.
7.
查询所有参加考试的学生的学号、姓名,考试科目及其成绩.
8.
查询"韩吟秋"同学的考试科目,平时成绩,期末成绩,其各科的学分.
9.
查询跟"何影"是同一个学院的其他学生的学号、姓名、年龄.
10.
查询教师的基本信息和教授课程信息,其中包括未分配课程的教师信息.
11.
查询'090501'班级中选修了'韩晋升'老师教授的课程的学生的学号、姓名、课程名和期末成绩.
12.
查询所有教授'c05127'号课程的教师信息.
13.
查询同时教授'c05127'和'c05109'号课程的教师信息.
14.
查询至少选修了姓名为"韩吟秋"的学生所选修课程中一门课的学生的学号和姓名.
15.
查询没有被任何学生选修的课程编号、课程名称和学分.
16.
查询所有考试70分以下的学生的学号,姓名及其70分以下的科目数.
17.
查询2科以上(包括2科)90分以上的学生的学号,姓名及其90分以上的科目数.
18.
查询软件学院各班的人数,显示班级名和人数.
19.
查询每个同学所获得的总学分,显示学号、姓名和总学分.
(假设没有及格的科目不能获得学分,及格的科目可以获得本科目的学分.
)20.
在选修了"C语言"这门课程的学生中查询成绩大于或等于"C语言"这门课程的平均成绩的学生的学号、姓名、成绩.
21.
查询每个同学的平均分,显示前3名同学的学号、姓名、平均分.
按照平均分从大到小排序,平均分相同按照学号的降序排序.
22.
查询选修课程且期末成绩不为空的学生人数.
23.
查询教授两门以上课程的教师编号和课程数.
24.
查询课程编号以'05'开头、被3名以上学生选修且期末成绩的平均分高于75分的课程号、选修人数和期末成绩平均分,并按平均分降序排序.
实验五数据更新一、实验目的:1.
掌握在SQLServerManagementStudio中对表进行插入、修改和删除数据操作.
2.
掌握使用SQL语句对表进行插入、修改和删除数据操作.
3.
理解SQL语句对表数据库操作的灵活控制功能.
二、实验预习与准备:1.
表数据的浏览.
2.
表数据的插入、删除、修改.
三、实验内容及步骤:1.
在SQLServerManagementStudio中对数据库student中的表进行插入、删除数据的操作.
(1)在数据库引擎的树形目录中展开数据库student,找到表并展开,则列出该数据库的所有对象,如表、视图、存储过程、默认和规则等.
(2)选中"表",将列出student数据库的所有表(包括系统表和用户表),在此以用户表student为例,选中该表,单击鼠标右键,弹出快捷菜单,执行"打开表"菜单项,打开该表,并向表中录入若干条记录.
(3)在数据库引擎中删除数据库student中的表数据.
在打开的表student中,选定将要删除的行,单击鼠标右键,弹出快捷菜单,执行"删除"菜单项,在打开的删除对话框中回答"是".
2.
使用T-SQL语句插入、修改和删除表数据(1)向stuent表中插入如下一条记录:学号:0922221326,姓名:李杰,性别:男,出生日期:1988-2-3,班级:090501,电话:13456734522,电子邮箱:lijie@sina.
com(2)向stuent_course表中插入如下一条记录:学号:0922221326课程号:c05109平时成绩:60期末成绩:45(3)新建一张表average(sno,sname,average)查询所有学生的学号、姓名、平均分,并将查询结果插入到表average中,并按平均分从大到小排序.
(建表、往表中插入数据,用T—SQL语句完成)(4)将"0802"专业的学生,改成"0801"专业的.
(5)将选修了"c语言"这门课,不及格学生的成绩改为60分.
(6)删除学院编号为空的学生的学生记录及其选课记录.
实验六索引和视图一、实验目的:1.
掌握索引的基本概念和功能.
2.
掌握利用SQLServerManagementStudio和Transact—SQL语句创建、维护索引的方法.
3.
掌握视图的基本概念和功能4.
理解视图与基本表的区别.
5.
掌握利用SQLServerManagementStudio和Transact—SQL语句创建、修改视图的方法.
二、实验预习与准备:1.
利用SQLServerManagementStudio和Transact—SQL语句创建、维护索引.
2.
利用SQLServerManagementStudio和Transact—SQL语句创建、修改视图.
3.
通过视图查看和修改基本表中的数据.
三、实验内容及步骤:1.
利用SQLServerManagementStudio为student表的classno列创建非聚集、非唯一、降序索引UC_classno.
2.
完成下列一系列的操作.
(1)利用Transact—SQL语句在teacher表的tname列上创建非聚集唯一索引UQ_tname.
若该索引已存在,则删除后重建.
(2)向teacher表中插入一条数据:'t05002','刘元朝','副教授','05'.
若插入成功,则记录teacher表中的数据;若插入不成功,记录错误提示信息.
Hostodo 算是比较小众的海外主机商,这次九月份开学季有提供促销活动。不过如果我们有熟悉的朋友应该知道,这个服务商家也是比较时间久的,而且商家推进活动比较稳,每个月都有部分活动。目前有提供机房可选斯波坎、拉斯维加斯和迈阿密。从机房的地理位置和实际的速度,中文业务速度应该不是优化直连的,但是有需要海外业务的话一般有人选择。以前一直也持有他们家的年付12美元的机器,后来用不到就取消未续约。第一、开...
关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...
Hostkey.com成立于2007年的荷兰公司,主要运营服务器出租与托管,其次是VPS、域名、域名证书,各种软件授权等。hostkey当前运作荷兰阿姆斯特丹、俄罗斯莫斯科、美国纽约等数据中心。支持Paypal,信用卡,Webmoney,以及支付宝等付款方式。禁止VPN,代理,Tor,网络诈骗,儿童色情,Spam,网络扫描,俄罗斯色情,俄罗斯电影,俄罗斯MP3,俄罗斯Trackers,以及俄罗斯法...