3.2 界面方式创建表结构
数据库创建后,首先创建表结构;已经创建的表结构可以修改;不再使用的表可以删除。
3.2.1 创建表结构
例如,通过“对象资源管理器”创建表xsb,步骤如下。
(1)启动“SSMS”,在“对象资源管理器”中展开“数据库”,右键单击“xscj”数据库菜单下的“表”选项,在弹出的快捷菜单中选择“新建表”菜单项,系统打开“表设计器”窗口。
在右边表“属性”页中显示数据库名称为“xscj”,用户修改(表名称)为“xsb”。
(2)在“表设计器”窗口中,根据附录已经设计好的xsb的表结构分别输入或选择各列的名称、数据类型、是否允许为空值等属性。
删除“学号”和“姓名”字段“允许Null值”,使其不能为空。
(3)根据需要,可以在“列属性”选项卡中填入相应内容。在“专业”字段的“默认值或绑定”中输入“计算机”;相应的性别字段“默认值或绑定”设置为1;在总学分字段“默认值或绑定”设置为0。
在“说明”项中分别填写有关字段的说明信息。
(4)在“学号”列上单击鼠标右键,选择“设置主键”菜单项,选择“设为主键”选项,该字段前就会显示小钥匙图标。
学生情况表(xsb)设计后的结果如图3.1所示,单击“”保存图标保存设计表结构。
图3.1 “表设计器”窗口
使用同样的方法创建课程表,表格名称为kcb;创建成绩表,名称为cjb。
说明
在创建表时,如果主键由两个或两个以上的列组成(例如,课程表的主键为学号列和课程号列),在设置主键时,则需要在按住“Ctrl”键的同时选择多个列,然后右键单击选择“设置主键”菜单项,将多个列设置为表的主键。
3.2.2 修改表结构
在创建了一个表之后,使用过程中可能需要对表结构进行修改。默认情况下,SQL Server用户不能通过界面方式修改表的结构。而需要先删除原来的表,再重新创建新表。如果需要通过界面方式修改表,在“SSMS”的面板中单击“工具”主菜单,选择“选项”子菜单,在出现的“选项”对话框中选择“设计器”,删去“阻止保存要求重新创建表的更改”复选框前的勾选。
1. 更改表名
在“对象资源管理器”中选择需要更名的表,单击鼠标右键,在弹出的快捷菜单上选择“重命名”菜单项,输入新的表名后确定。
注意
SQL Server虽然允许改变一个表的名字,但当表名改变后,与此相关的某些对象(如视图),以及通过表名与表相关的存储过程将无效。
2. 修改表结构
修改表结构包括增加列、删除列、修改已有列的属性(列名、数据类型、是否为空值等)。
在“对象资源管理器”中展开“数据库”,在选择的数据库中选择修改表,单击鼠标右键,在弹出的快捷菜单中选择“设计”菜单项,打开“表设计器”窗口。系统列出已经存在的表结构,用户就像界面设计表结构一样修改表结构。
如果要在某列之前加入新列,则可以右键单击该列,选择“插入列”,在空白行中填写列信息即可。如果要删除某列,则可以右键单击该列,选择“删除列”。修改完毕后,关闭该窗口,此时将弹出一个“保存更改”对话框,单击“是”按钮,保存修改后的表。
注意
在SQL Server中,被删除的列是不可恢复的,所以在删除某一列之前需要慎重考虑。并且,在删除一个列以前,必须保证基于该列的所有索引和约束都已删除。
改变列的数据类型时,要求满足下列条件:
(1)原数据类型必须能够转换为新数据类型;
(2)新数据类型不能为timestamp类型;
(3)如果被修改列属性中有“标识规范”属性,则新数据类型必须是有效的“标识规范”数据类型。
注意
表中尚未有记录值时,可以修改表结构,如更改列名、列的数据类型、长度和是否允许空值等属性;但当表中有了记录后,建议不要轻易改变表结构,特别不要改变数据类型,以免产生错误。
在修改列的数据类型时,如果列中存在列值,可能会弹出警告框,要确认修改单击“是”按钮,但是此操作可能会导致一些数据永久丢失,请谨慎使用。
另外,具有某些特性(具体参考有关文档)的列不能修改。
3.2.3 删除表
在“对象资源管理器”中展开“数据库”→选择数据库→选择表,单击鼠标右键,在弹出的快捷菜单上选择“删除”菜单项。系统弹出“删除对象”窗口。单击“确定”按钮即可删除指定表。
注意
(1)删除一个表时,该表的定义、表中的所有数据,以及表的索引、触发器、约束等均被删除。
(2)不能删除系统表和外键约束所参照的表。