4.2 使用SSMS创建和修改表
SQL Server创建表的过程就是规定字段属性的过程,同时也是实施数据完整性的过程。创建数据库表需要确定的有表的名字、列的名字、数据类型、是否允许为空,以及确定主键、必要的默认值、检查约束、外键约束等内容。
4.2.1 使用SSMS创建表
【例4.3】ABI学校为了管理学生成绩,建立了一个成绩管理数据库AMDB,现在在该数中要添加适当的表,并进行优化。首先,创建学生(student)表和班级(class)表,两个表体结构如表4.3和表4.4所示。
表4.3 学生(student)表
表4.4 班级(class)表
具体操作步骤如下:
(1)在“对象资源管理器”中,连接到SQL Server数据库引擎的实例,然后展开该实例。
(2)依次展开“数据库”→“AMDB”,右击数据库的“表”结点,在弹出的快捷菜单中选择“新建表”命令。
(3)按照表4.3输入列名(字段名),选择数据类型,并选择各个列是否允许空值,如图4.4所示。
(4)单击工具栏中的“保存”按钮,在打开的“选择名称”对话框中输入表名“student”,单击“确定”按钮,完成学生(student)表的创建,如图4.5所示。
图4.4 学生(student)表设计
图4.5 “选择名称”对话框
(5)重复(2)~(4)步,参照表4.4,完成班级“class”的创建,如图4.6所示。
(6)右击“AMDB”数据库的“表”结点,在弹出的快捷菜单中选择“刷新”命令,即可看到新建的两个表,如图4.7所示。
图4.6 班级“class”表设计
图4.7 新增加的表
4.2.2 使用SSMS修改表字段
【例4.4】现在要对成绩管理数据库AMDB中的学生(student)表进行字段修改,修改的内容包括将学生姓名stu_name字段的数据类型修改为varchar(10),然后删除手机号码phonenumber字段,最后为了建立参照完整性,增加班级编号class_no字段。
具体操作步骤如下:
(1)在“对象资源管理器”中,右击“student”表,在弹出的快捷菜单中选择“设计”命令,打开“表设计器”。
(2)选中“stu_name”字段,单击“数据类型”属性的网格单元格,再在下拉列表中选择varchar(50)数据类型,最后在“列属性”→“长度”中设置字段长度为10,如图4.8所示,单击“保存”按钮,完成stu_name字段的修改。
(3)右击“phonenumber”,在弹出的快捷菜单中选择“删除列”命令,如图4.9所示,完成phonenumber字段的删除。
图4.8 修改stu_name字段
图4.9 删除phonenumber字段
(4)单击“列名”列中的第一个空单元,列名中输入“class_no”,在“数据类型”下拉列表中选择varchar(50),并修改长度为15,最后取消允许Null值的勾选,如图4.10所示,单击“保存”按钮,完成class_no字段的增加。
图4.10 增加class_no字段
4.2.3 使用SSMS设置表约束
【例4.5】现在要对成绩管理数据库AMDB中的学生(student)表和班级(class)表进行各种约束的设置,设置的内容包括:
● 设置学生(student)表的学号stu_no字段和班级(class)表的班级编号class_no字段为2个表的主键。
● 给学生(student)表的学生性别Stu_sex字段设置检查约束,设置只能输入“男”或者“女”。
● 给学生(student)表的年龄age字段设置默认约束,默认值为“18”。
● 给班级(class)表的班级名称Class_name字段设置不允许重复的唯一性约束;在两个表之间建立外键约束,主键为班级(class)表的班级编号class_no字段,外键为学生(student)表的班级编号class_no字段。
具体操作步骤如下:
使用SSMS进行表的各种约束设置基本上都在“表设计器”中进行。
(1)在“对象资源管理器”中,右击要进行设置的表,在弹出的快捷菜单中选择“设计”命令,打开“表设计器”。
(2)在“student”表的“表设计器”中,右击“stu_no”字段,在弹出的快捷菜单中选择“设置主键”命令,如图4.11所示,单击“保存”按钮,完成student表主键的设置。
(3)在“class”表的“表设计器”中单击“class_no”字段,单击工具栏中的,设置class_no为主键。
(4)在“student”表的“表设计器”中,右击“stu_sex”字段,在弹出的快捷菜单中选择“CHECK约束”命令,打开“CHECK约束”对话框。单击“添加”按钮,在“常规”→“表达式”中输入“stu_sex=’男’or stu_sex=’女’”,如图4.12所示,完成检查约束的设置。
图4.11 “设置主键”命令
图4.12 “CHECK约束”对话框
(5)在“student”表的“表设计器”中单击“age”字段,在“列属性”→“常规”→“默认值或绑定”中输入“18”,如图4.13所示,单击“保存”按钮,完成默认约束的设置。
(6)在“class”表的“表设计器”中,右击“class_name”字段,在弹出的快捷菜单中选择“索引/键”命令,打开“索引/键”对话框。单击“添加”按钮,在“常规”→“类型”下拉列表中选择“唯一键”,在“常规”→“类型”浏览找到“class_name”字段,如图4.14所示,完成唯一性约束的设置。
图4.13 默认值设置
图4.14 “索引/键”对话框
(7)在“student”表的“表设计器”中右击“class_no”字段,在弹出的快捷菜单中选择“关系”命令,打开“外键关系”对话框,如图4.15所示。单击“添加”按钮,在“常规”→“表和列规范”中单击右侧浏览按钮,设置对应的主键和外键,如图4.16所示,完成外键约束的设置。
图4.15 “外键关系”对话框
图4.16 设置主、外键
注意:当不需要约束的时候可以将其修改或者删除,修改的方法同创建的方法。利用SSMS删除约束的方法是找到对应的约束对话框,选中要删除的约束,单击“删除”按钮即可。
4.2.4 使用SSMS重命名表
【例4.6】将ReportServer数据库中的“Batch”表重命名为“Batch_new”。
具体操作步骤如下:
(1)在“对象资源管理器”中,依次展开“服务器实例”→“数据库”→“ReportServer”→“表”,右击Batch表,在弹出的快捷菜单中选择“重命名”命令如图4.17所示。
(2)输入新的数据表名称“Batch_new”,然后按【Enter】键,完成重命名。
注意:如果现有查询、视图、用户定义的函数、存储过程或程序引用该表,则名称的修改将使这些对象无效。
图4.17 “重命名”命令
4.2.5 使用SSMS删除表
【例4.7】删除ReportServer数据库中的“Batch_new”表。
具体操作步骤如下:
(1)在“对象资源管理器”中,依次展开“服务器实例”→“数据库”→“ReportServer”→“表”→“Batch_new”。
(2)右击“Batch_new”表,在弹出的快捷菜单中选择“删除”命令,在打开的“删除对象”对话框中单击“确定”按钮,完成Batch_new表的删除。
注意:在删除一个表时,该表位于其上的整个选项卡都将被删除。如果任何度量值与该表相关联,则也将删除该度量值的定义。