实验一
一、实验目的
(1)熟悉SQL Server Management Studio
(2)掌握通过SQL Server Management Studio管理数据库的方法。 (3)掌握数据库及其物理文件的结构关系。
(4)掌握通过SQL Server Management Studio管理数据表的方法
二、实验内容
1、 通过SQL Server Management Studio创建数据库
创建一个名称为学生管理信息Student_info数据库,创建数据库Student_info
的具体参数如表1。
表B.1 数据库参数
参数名称 数据库名称 数据库逻辑文件名称 数据物理文件名称 数据文件初始大小 数据文件大小最大值 数据文件增长增量 日志逻辑文件名称 日志物理文件名称 日志文件初始大小 日志文件大小最大值 日志文件增长增量 参考参数 Student_info Student_info_data Student_info_data.mdf 20MB 300MB 5MB Student_info_log Student_info_log.ldf 5MB 50MB 1MB
步骤:
1、打开SQL Server Management Studio 2、如下图所示,右击“数据库”,选择“新建数据库”
3、新建数据库后,出现如下界面
把题目中要求的参考参数填入上面的界面中
最后形成的界面为:
4、最后点击“确定”,创建完成
2、查看、验证创建的数据库
方法1:执行sp_helpdb系统存储过程查看Student_info数据库的信息。
步骤:
1、在Student_info数据库中“新建查询”
2、输入SQL语句:sp_helpdb Student_info,单击“执行”
方法2:在企业管理器中查看
步骤:
1、右击Student_info数据库,单击“属性”
2、在“数据库属性”中选择“文件”,查看数据库信息
3、修改数据库的属性
通过SQL Server Management Studio查看数据库(注意),将数据库Student_info数据文件的初始大小改为30MB,最大值改为500MB,数据增长改为5%,日志文件的初始大小改为20MB,最大值改为60MB,数据增长改为6%。 步骤:
1、右击Student_info数据库,单击“属性”;在“数据库属性”中选择“文件”,
并修改信息
最后的界面信息如下,单击“确定”,修改完成
4、数据库的分离及附加
1) 将Student_info数据库从数据库服务器分离
1、选中Student_info数据库,右击选择“属性”;出现如下界面,选择“选项”
2、在“选项”中找到“限制访问”,将其内容改为“SINGLE_USER”
单击“确定”,出现如下对话框:
单击“是”,则出现:
3、选择Student_info数据库,右击选择“任务”,继续选择“分离”
出现如下界面:选中“更新统计信息”复选框。若“消息”列中没有显示
存在活动连接,则“状态”列显示为“就绪”,否则显示“未就绪”,此时必须勾选“删除连接”列的复选框
单击“确定”,分离成功
如下图,已不存在Student_info数据库
2) 将Student_info数据库再次附加到服务器中 1、选中左边“数据库”,右击选择“附加”
出现如下界面,单击“添加”
出现如下界面,选择以“.mdf”为后缀名的Student_info_data,单击“确定”
单击“确定”,完成附加操作
5、通过SQL Server Management Studio在Student_info数据库中创建表
Student_info数据库包含3张表:Student表、Course表及SC表,分别代表学生信息、课程信息及学生选课信息。3张表的结构及其约束见表2、表3、表4.
表 2 Student表结构和约束 列名称 Sno Sname Sex Birth Classno Entrance_date Home_addr 类型 char varchar char smalldatetime char smalldatetime varchar 宽度 允许缺省值 约束 空值 8 8 2 3 40 否 否 否 否 否 否 是 男 主键 是 说明 学号 学生姓名 性别 出生年月 班级号 入学时间 家庭地址 步骤: 1、单击Student_info数据库,展开;选择“表”右击,选择“新建表”
出现如下界面,根据表格信息,向界面中插入信息
2、在列表中插入详细信息
设置主键:选中Sno,右击,选择“设置主键”
设置缺省值:选中Sex,在“列属性”中选择“默认类型或绑定”,填写“’男’”
3、保存,并命名为“Student”,创建完成
表 3 Course表结构和约束
列名称 Cno Cname 类型 char varchar 宽度 允许空值 缺省值 3 20 否 否 是 是 约束 大于0 大于0,小于等于6 主键 是 说明 课程号 课程名称 总学时 学分 Total_perior smallint Credit tinyint 步骤同创建“Student”表大致相同: 1、新建表
2、填入信息;设置主键;添加约束
添加check约束:选中Total_perior,右击,选择“CHECK约束”;单击“添加”
单击“添加”后,出现如下所示界面:“表达式”为约束条件,可自行写上去;“名称”可自定义
单击“确定”完成
单击“关闭”即可
同理可对Credit添加check约束
3、保存,并命名为“Course”,创建完成
表 4 SC表结构和约束
列名称 Sno Cno Grade 类型 char char tinyint 宽度 8 3 允许空值 否 否 是 缺省值 约束 大于等于0,小于等于100 主键 外键 是 是 否 说明 学号 课程号 成绩 是 步骤同创建“Student”表大致相同: 1、新建表 2、填入信息
设置主键:同时选中”Sno和Cno”,右击,选择“设置主键”
设置check约束:选中“Grade”,右击,选择“CHECK约束”;
单击“添加”,在表达式中写入约束条件,名称可自定义改变。
单击关闭即可完成
3、保存,并命名为“SC”
6、通过SQL Server Management Studio管理表结构 (1)添加和删除列
a. 给Student表增加身高(以米单位)Stature列 ,类型为numeric(4,2),允许为空值,且身高值需小于3.0米。
1、选中Student表,右击,选择“设计”,出现表Student
2、在Student表中直接添加Stature等一行信息
3、对“Stature”添加check约束
单击“关闭”完成
b. 给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。 同a理,直接添加:
c. 给Student表增加邮政篇码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。 1、同a理,直接添加:
2、“若不为空时,则要求其值只能出现数字,不能是其它字符”此步骤无法用企业管理器实现
d.删除Student表中身高Stature列。
在Student表中选中Stature,右击,选择“删除列”,完成。
最后保存修改后的表
(2)添加和删除约束
a.在Student表添加约束:入学时间必须在出生年月之后。 1、选择Student表,右击“设计”打开;
选择表中的任一行,右击选择“CHECK约束”;
选择“添加”,在表达式中添加约束条件,名称可自定义 单击“关闭”完成
保存修改后的表,但可能会出现如下情况
这时候,选择“取消”; 单击菜单栏中的“工具”,选择“选项”,展开如下界面
将“√”去掉即可
单击“确定”,然后保存即可
b.给SC表的成绩Grade列增加默认值约束,默认值为0. 1、选择SC表,右击“设计”打开;
2、选择Grade列,在下方列属性中添加默认值约束
默认值0需用单引号
c.删除Grade列的默认值约束
在Grade列的列属性中,将“默认值或绑定”中的“‘0’”删除即可
7、通过SQL Server Management Studio对表添加、修改、删除数据
(1)插入数据,Student表、Course表、SC表的记录见表5、表6、表7。
表 5 Student表 Sno Sname Sex 男 女 男 Birth 1992/09/01 1991/11/12 1993/05/11 Classno Entrance_date Home_addr Sdept Postcode 051 051 061 2011/09/01 2011/09/01 2011/09/01 南京 北京 上海 计算机系 计算机系 软件工程 200413 100010 200013 20110001 张虹 20110002 林红 20110103 赵青 1、选中Student表,右击选择“编辑前200行”;出现如下界面
2、根据表中信息添加至界面中
注意:Sdept是char(2)类型
表 6 Course表 Cno 001 002 004 Cname 高数 C语言程序设计 Visual_Basic Total_perior Credit 96 80 48 48 6 5 3 4 003 JAVA语言程序设计 1、选中Course表,右击选择“编辑前200行”;出现如下界面
2、根据表中信息添加至界面中
输入完毕即可
表 7 SC表 Sno 20110001 20110001 20110001 20110002 20110103 Cno Grade 001 002 003 002 001 89 78 89 60 80 同上理:点击“编辑前200行”打开SC表,添加表中数据即可
其它数据可自行添加。要求Student表和SC表中数据包括了每位同学自己的学号。
(2)修改数据
a.将Student表中的学号为’20050103’的同学的出生年月改为1993年10月1日。 1、选中Student表,右击选择“编辑前200行”打开表 2、点中需要更改信息的位置,直接修改数据即可
b.将Course表中的课程号为’002’的学分改为4,总学时改为64。 同a理:打开Course表,直接修改数据
(3)删除数据 (请注意约束的限制)
a.删除SC表中20110103同学的选课记录
选择“编辑前200行”打开SC表,选中20110103同学的那一行数据,右击,选择“删除”即可
单击“是”
b.删除Course表中课程号为002的记录。如果不能成功删除该记录,请分析原因。
选择“编辑前200行”打开Course表,选中002课程的那一行数据,右击,选择“删除”
如果不能成功删除,应先删除约束:选择“设计”打开Course表,任选一行右击选择“CHECK约束”,打开后删除约束即可