实验目的

(1)熟悉SQL Server Management Studio。
(2)掌握通过SQL Server Management Studio管理数据库的方法。
(3)掌握数据库及其物理文件的结构关系。
(4)掌握通过SQL Server Management Studio管理数据表的方法。


一、通过SQL Server Management Studio创建数据库

创建一个名称为学生管理信息Student_info数据库,创建数据库Student_info的具体参数如表B.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. 打开SSMS,登录以后在“数据库”处单击右键,选择新建数据库
    在这里插入图片描述
  2. 指定数据库名称,,若要更改数据库文件和日志文件的存储位置,可单击列表上的如图所示的按钮,若要更改数据文件和日志文件的初始大小,可在“初始大小”选项上输入希望的大小,最后单击确定
    在这里插入图片描述

二、查看、验证创建的数据库

方法1:执行sp_helpdb系统存储过程查看Student_info数据库的信息。
在这里插入图片描述
注 : 语句后面写的是英文分号噢
详情:link.

方法2:在SQL Server Management Studio中查看。

鼠标右击需要查询的数据库,选择属性,然后在选择页中选择文件,就可以查询到对应的数据库信息
在这里插入图片描述

三、修改数据库的属性

通过SQL Server Management Studio查看数据库,将数据库Student_info数据文件的初始大小改为30MB,最大值改为300MB,数据增长改为5%,日志文件的初始大小改为20MB,最大值改为30MB,数据增长改为6%。
进入上面所示的数据库属性界面,修改相应的属性即可

四、数据库的分离及附加

1. 将Student_info数据库从数据库服务器分离。

  1. 在启动SSMS并连接到数据库服务器后,在数据库对象下找到需要分离的数据库名称,右键单击数据库,在弹出的快捷菜单中选择属性项
  2. 在“选择页”下面区域中选定“选项”对象,然后在右边区域的“其它选项”列表中找到“状态”项,单击“限制访问”文本框,在其下拉列表中选择“SINGLE_USER”。
    在这里插入图片描述
  3. 单击确定
    在这里插入图片描述
  4. 单击“是”按钮后,数据库名称后面会增加显示“单个用户”。右键单击该数据库名称,在快捷菜单中选择“任务”的二级菜单项“分离”。出现图所示的“分离数据库”窗口。
    在这里插入图片描述
  5. 请选中“更新统计信息”复选框。若“消息”列中没有显示存在活动连接,则“状态”列显示为“就绪”;否则显示“未就绪”,此时必须勾选“删除连接”列的复选框
    在这里插入图片描述
  6. 分离数据库参数设置完成后,单击”确定”按钮,就完成了所选数据库的分离操作。这时在对象资源管理器的数据库对象列表中就见不到刚才被分离的数据库名称了

2. 将Student_info数据库再次附加到服务器中。

  1. 右击数据库对象,并在快捷菜单中选择“附加”命令,打开“附加数据库”窗口
    在这里插入图片描述

  2. 在“附加数据库”窗口中,单击页面中间的“添加”按钮,打开定位数据库文件的窗口,在此窗口中定位到需要附加的数据库文件目录,选择要附加的数据库文件,文件后缀名为.mdf
    在这里插入图片描述

  3. 单击“确定”按钮就完成了附加数据库文件的设置工作。这时,在附加数据库窗口中列出了需要附加数据库的信息。如果需要修改附加后的数据库名称,则修改“附加为”文本框中的数据库名称。然后单击确定按钮,完成数据库的附加任务。
    在这里插入图片描述

五、通过SQL Server Management Studio在Student_info数据库中创建表

Student_info数据库包含三张表:Student表、Course表及SC表,分别代表学生信息、课程信息及学生选课信息。三张表的结构及其约束见表B.2、表B.3和表B.4。

表B.5 Student表

列名称类型宽度允许空值默认值约数主键说明
Snochar8学号
Snamevarchar8学生姓名
Sexchar2性别
Birthsmalldatetime出生年月
Classnochar3入学时间
Entrance_datesmalldatetime入学时间
Hmoe_addrvarchar40家庭地址

表B.6 Course表

列名称类型宽度允许空值默认值约数主键说明
Cnochar3课程号
Cnamevarchar20课程名称
Total_periorsmallint大于0总学时
Credittinyint大于0,小于等于6学分

表B.7 SC表

列名称类型宽度允许空值默认值约数主键外键说明
Snochar8课程号
Cnochar3课程名称
Gradetinyint大于等于0,小于等于100总学时

1. 创建表:

  1. 创建表。展开要创建表的数据库节点,右击其下的表,选择“新建”,再在下一级菜单中选择”表“
    在这里插入图片描述

  2. 在弹出的编辑框中分别输入各列的名称,并对后面的数据类型和是否允许为空等属性进行设置,然后保存表,命名为Student,使用同样的方法创建Course表和SC表
    在这里插入图片描述

2. 创建约束

  1. 主键约束(PRIMARY KEY CONSTRAINT)
    用于定义基本表的主键,是唯一确定表中每一条记录的标识符,其值不能为空,也不能重复,一个表只能有一个主键约束
    步骤:
    (1)在表设计器中单击要定义为主键的数据库列的行选择器。若要选择多个列,按住Ctrl键的同时单击其他列的行选择器
    在这里插入图片描述
    (2)右击列的行选择器,点击“设置主键”命令

  2. 空值约束(NULL CONSTRAINT)
    空值约束用于控制是否允许该字段的值未null,设置方法非常简单,在表设计器中每一列的后面复选框即可指定该列是否允许为空

  3. 唯一约束(UNIQUE CONSTRAINT)
    用于指定一个或多个列组合的值具有唯一性,以防在列中输入重复的值
    步骤:
    (1)在工具栏中点击“管理索引和键”按钮
    在这里插入图片描述
    (2)点击“添加”按钮,系统分配的名称出现在“标识”栏的“名称”中,然后在“常规”栏中“是唯一的”选项改为“是”,最后点击“关闭”即可
    在这里插入图片描述

  4. 检查约束(CHECK CONSTRAINT)
    是对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的完整性
    步骤:
    (1)在这里插入图片描述
    (2)单击“添加”按钮,将约束表达式输入,最后单击“关闭”即可
    在这里插入图片描述

  5. 默认约束(DEFAULT CONSTRAINT)
    默认约束指定在进行插入操作时如果没有提供输入值,则系统自动指定值
    步骤:
    在表设计器中选择要设置默认约束的列,在“列属性”的“常规”栏中,在“默认值或绑定”项后面输入集体的默认值,组后点击“关闭”按钮即可在这里插入图片描述

  6. 外键约束(FOREIGN KEY CONSTRAINT)
    定义多个表之间的关系,用于建立两个表数据库之间的连接的一列或多列
    步骤:
    (1)在这里插入图片描述
    (2)单击“添加”,单击“常规”栏的“表和列规范”
    在这里插入图片描述
    (3)选择对应的主键表和外键表字段
    在这里插入图片描述
    (4)最后点击关闭即可,在外键约束创建好以后,可以右击对象资源管理器的“数据库”–>student_info–>"数据库关系图“,右键选择”新建数据库关系图“,在弹出的对话框中选择”添加表“对话框中将涉及主外键约束的表全选中,就可以看到各表之间的关系图
    在这里插入图片描述

六、通过SQL Server Management Studio管理表结构

1. 添加和删除列

a.给Student表增加身高(以米单位)stature列,类型为numeric(4,2),允许为空值,且身高值需小于3.0米。
b.给Student表增加所在系Sdept列,字符型,长度为20,允许为空值。
在这里插入图片描述

c.给Student表增加邮政编码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其他字符。
在这里插入图片描述
在postcode的检查约束里面的"表达式" 中输入Postcode like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’ 即可实现题意

d.删除Student表中身高stature列。
在这里插入图片描述

2. 添加和删除约束

a.在Student表添加约束:入学时间必须在出生年月之后。
在这里插入图片描述
在检查约束中输入 Birth<Entrance_date即可实现题意

b.给SC表的成绩grade列增加默认值约束,默认值为0。
在这里插入图片描述

c.删除grade列的默认值约束。
在这里插入图片描述

七、通过SQL Server Management Studio对表添加、修改、删除数据

1. 插入数据

Student表、Course表、SC表的记录见表B.5、表B.6、表B.7。

表B.5 Student表

snosnamesexbirthclassnoentrance_datehome_addrsdeptpostcode
20110001张虹1992/09/110512011/09/01南京计算机系200413
20110002林红1991/11/120512011/09/01北京计算机系100010
20110103赵青1993/05/110612011/09/01上海软件工程200013

表B.6 Course表

cnocnametotal_periorcredit
001高数966
002C语言程序设计805
003Java语言程序设计483
004Visual_Basic484

表B.7 SC表

snocnograde
201100100189
201100100278
201100100389
201100100495
201100200260
201100300180

其他数据可自行添加。要求Student表和SC表中数据包括了每位同学自己的学号。

右键需要加入数据的列选择”编辑前200行“,输入对应的数据
在这里插入图片描述

2. 修改数据

a.将Student表中的学号为’20110103’的同学的出生年月改为1993年10月1日。
在这里插入图片描述

b.将Course表中的课程号为’002’的学分改为4,总学时改为64。
在这里插入图片描述

3. 删除数据(请注意约束的限制)

a.删除SC表中20110103同学的选课记录。

选中需要删除的数据,右键单击”删除“
在这里插入图片描述

b.删除Course表中课程号为002的记录。如果不能成功删除该记录,请分析原因。

同样右键单击删除,出现一个提示框,不能被成功删除
在这里插入图片描述
不能被成功删除的原因:
Course表与SC表有外键约束的限制,Course表的Cno与SC表的Cno关联了,所以要成功删除002号课程的记录,要先去SC中将相应的002的所有记录全部删除,再到Course表中将002的课程记录删除


总结

SQL Server Management Studio (SQL Server 管理控制台)是SQL Server中使用最多的管理工具,它提供了一个操作SQL Server功能组件的集成环境,主要用于连接数据库引擎服务,并将用户的操作传递给数据库引擎服务,是一种前端工具。

SQL Server数据库文件主要分为三类:

  • 主数据库文件:存放数据库数据和数据库对象的文件,一个数据库可以有一个或多个数据文件,但只能有一个主数据库文件,扩展名为.mdf
  • 次数据文件:用来存储主数据文件未存储的其他数据和数据库对象,一个数据库可以没有次数据库文件,也可以拥有多个,扩展名为.ndf
  • 日志文件:用于存储数据库的更新情况等事务信息,扩展名为.ldf

通过本次实验,我掌握了SSMS管理数据库和表的方法,并了解了数据库及物理结构关系,初步了解了对表的增删改查操作,还有约束对保证数据库的完整性发挥的重要作用。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐