您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 第06章 管理数据库表
1表操作创建表增加、删除和修改字段创建、删除和修改约束查看表格2创建表•在SQLServer2000中,每个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,也就是可以定义1024个字段。•SQLServer2000提供了两种方法创建数据库表,第一种方法是利用企业管理器(EnterpriseManager)创建表;另一种方法是利用Transact-SQL语句中的create命令创建表。3利用企业管理创建表•在EnterpriseManager中,展开指定的服务器和数据库,打开想要创建新表的数据库,用右键单击表对象,从弹出的快捷菜单中选择新建表选项,或者在工具栏中选择图标,就会出现新建表对话框,在该对话框中,可以定义列的以下属性:列名称、数据类型、长度、精度、小数位数、是否允许为空、缺省值、标识列、标识列的初始值、标识列的增量值和是否有行的标识。然后根据提示进行设置,并且保存表。4常用属性说明•长度:指定字段的长度,即字段所占用的字节数。字段的长度并非越打越好。•允许空:指定该字段在表中是否允许空值。空值表示没有输入,并不等于零或零长度的字符串。若指定一列不允许空值,则在相表中写数据时必须在列中输入一个值,否则该行不被接收如数据库。•描述:指定字段的注释文本描述。•默认值:指定字段的默认值,指在插入记录时,没有指定字段值的情况下,自动使用的默认值。5•精度:指定该字段的位数。对于decimal和numeric类型的字段,可以设置精度属性。•小数位数:显示该列值小数点右边能出现的最多数字个数。•标识:指定一个字段是否为标识字段。只有bigint、int、smallint、tinyint、decimal和numeric可以设置该属性。可能的值是:1、否:不设置该字段为标识字段。2、是:指定该字段为标识字段。表示在插入一个新的数据行时,不必为字段指定数值,系统会根据标识种子和标识递增量自动生成一个字段值。3、是(不适用于复制):类似于第二个,但是若以复制的方式象表中输入数据,系统将不自动生成字段值。6•标识种子:指定标识字段的初始值。•标识递增量:指定标识字段的递增值。该选项只使用于其“标识”属性设置为“是”或“是(不适用于复制)”的字段。在一个表中,只能定义一个标识字段。•公式:指定用于计算字段的公式•排序规则:指定当字段值用于对查询结果的记录进行排序时的排序规则,默认情况下使用数据库默认设置。7向表中添加数据•步骤如下:•1、选择要添加数据的表•2、选择菜单“操作-打开表-返回所有行”命令,打开数据输入窗口。•3、输入新记录,同时可以修改和删除操作。•4、保存输入。8表操作——创建表•同一用户不能建立同一个表名的表,同一表名的表可有多个拥有者。但在使用时,需要在这些表上加上所有者的表名。9利用create命令创建表•其语法形式如下:•CREATETABLE[database_name.[owner].|owner.]table_name({column_definition|column_nameAScomputed_column_expression|•table_constraint}[,…n])[ON{filegroup|DEFAULT}]•[TEXTIMAGE_ON{filegroup|DEFAULT}]•column_definition::={column_namedata_type}•[[DEFAULTconstant_expression]•|[IDENTITY[(seed,increment)]]•[column_constraint][...n]10•database_name:用于指定在其中创建表的数据库名称。•owner:用于指定新建表的所有者的用户名。•table_name:用于指定新建的表的名称。•column_name:用于指定新建表的列的名称。•computed_column_expression:用于指定计算列的列值的表达式。•ON{filegroup|DEFAULT}:用于指定存储表的文件组名。如果指定filegroup,则数据表将存储在指定的文件组中。若指定default,或未指定on参数,则数据表将存储在默认文件组中。11•TEXTIMAGE_ON:用于指定text、ntext和image列的数据存储的文件组。•data_type:用于指定列的数据类型。•DEFAULT:用于指定列的缺省值。•constant_expression:用于指定列的缺省值的常量表达式。•IDENTITY:用于指定列为标识列。•Seed:用于指定标识列的初始值。•Increment:用于指定标识列的增量值。•column_constraint和table_constraint:用于指定列约束和表约束。12例:创建一个雇员信息表•其SQL语句的程序清单如下:•CREATETABLEemployee•(numberintnotnull,•namevarchar(20)NOTNULL,•sexchar(2)NULL,•birthdaydatetimenull,•hire_datedatetimeNOTNULL•DEFAULT(getdate())•professional_titlevarchar(10)null,•salarymoneynull,•memontextnull•)13约束•主键约束•唯一性约束•外键约束•核查约束•Null约束和default约束14在企业管理器中设置主键约束•主键可以用来强制一个字段或多个字段组合值的唯一性,且不允许该字段值为空值。•具体步骤如下:•1、选中需要设置的表节点。•2、在该表节点处,点击右键,并选择“设计表”选项。•3、选中需要设置主键的字段,然后点击菜单上的设置主键按钮,即可。•在一个表中只能设置一个主键约束,但可以将包含多个字段的字段组合设置为主键,设置时需要按住ctrl键将多个字段选中,然后按照和设置单字段主键相同的方法设置即可。•取消方法与设置类似。15在T-SQL中设置主键约束•为数据表创建主键约束的句法如下:•[constraintconstraint_name]•Primarykey[clustered|notclustered]•[(字段名[,…n])]•其中:constraint_name约束名称。若缺省,系统将会自动为创建的约束命名。•CLUSTERED|NONCLUSTERED:用于指定约束的类型,即聚集约束或非聚集约束,CLUSTERED为默认值。•column_name:用于指定主键的列名。主键最多由16个列组成。16•主键约束分为字段级约束和表级约束。•字段级约束:为某一个字段设置约束。在设置字段级约束时,只需将创建主键约束的语句添加到该字段的定义子句后面。例:•Createtableproject•(–项目编号intconstraintpk_pnoprimarykey,–项目名称varchar(40)•)17•表级约束:指将包含多个字段的字段组合设置为主键。•设置表级约束时,需要将创建主键约束的语句添加到各个字段定义语句的后面,并在该语句后面的括号中写入字段组合包含的所有字段,字段之间用逗号分隔。例如:•Createtableproject•(–项目编号int,–项目名称varchar(40),–Constraintpk_pno_pnameprimarykey(项目编号,项目名称)•)18唯一性约束•在一个表中只能设置一个主键约束,如何限制非主键字段输入值的唯一性呢?•唯一性约束的设置可以确保在非主关键字段或字段组合中不输入重复值。•唯一性约束和主键约束的区别:•1、在一个表中只能定义一个主键约束,但可以定义多个唯一性约束。•2、允许空值的字段上不能定义主键约束,但可以定义唯一性约束。19在企业管理器中设置唯一性约束•步骤如下:•1、为设置唯一性约束的表打开表设计器,选择工具栏中的“表和索引属性”按钮,打开表的属性窗口。•2、选择“索引/键”选项。•3、选择“新建”命令。为该表创建新的索引,此时系统分配的名称出现在“索引名”框中。•4、在“列名”下展开字段的列表,选择需要附加约束的字段。若要将约束附加到多个字段,在后续行中选择其它的字段。•5、选择“创建unique”复选项。•6、选择“约束选项”,将在该字段上同时创建一个唯一性索引。•7、保存表20唯一性约束的删除•若想删除唯一性约束,可以在“索引/键”选项中选择索引名,然后选择“删除”命令。21在T-SQL中设置唯一性约束•设置唯一性约束的句法如下:•[CONSTRAINTconstraint_name]•UNIQUE[CLUSTERED|NONCLUSTERED]•[(字段名[,…n])]22•例如:创建一个名为project的表,该表包含二个字段“项目编号”和“项目名称”,将字段“项目编号”设置为主键,主键约束名为pk_Pno,为字段“项目名称”设置唯一性约束,约束名为UN_pname:•Createtableproject•(•项目编号intconstraintpk_pnoprimarykey,•项目名称char(20)constraintun_pnameunique•)23•例:创建一个名为project的表,该表包含3个字段“项目编号”、“项目名称”和“项目负责人”,将字段“项目编号”设置为主键,主键约束名为pk_pno,为包含字段“项目名称”和“项目负责人”的组合字段设置唯一性约束,约束名为un_pname_pm。下面是用来完成这一任务的语句:•Createtableproject•(–项目编号int–Constraintpk_pnoprimarykey,–项目名称char(20),–项目负责人char(20),–Constraintun_pname_pmunique(项目名称,项目负责人)•)24外键约束•外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它是和哪个表中哪些列相关联。这样,当在定义主关键字约束的表中更新列值时,其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中没有与插入的外关键字列值相同的值时,系统会拒绝插入数据。25•步骤如下:•1、打开企业管理器,展开数据库company节点。•2、在数据库company的下一级中,右击“关系图”,在弹出菜单中选择“新建数据库关系图”命令。•3、关闭创建数据库关系图向导,进入数据库关系图创建窗口。•4、在数据库关系图创建窗口的工具栏中单击按钮“在关系图上加表”按钮。打开“添加表”窗口。•5、在“添加表”窗口中选择主键表employee,并单击“添加”按钮,再选择外键表project,单击“添加”按钮,然后关闭“添加表”窗口。26•6、将鼠标指针移动到employee表中主关键字段“编号”左边的选择栏,按下鼠标左键,并将鼠标指针拖动到project表中字段“负责人编号”上。•7、松开鼠标左键,此时弹出“创建关系”对话框。根据需要决定是否选择对话框中的如下选项:•8、设置完这些选项以后,单击“确定”按钮,关闭“创建关系”对话框。此时创建数据库关系图窗口中的二个表之间出现一条连接线,表示已经建立了这个关系。•9、单击“保存”按钮,在“另存为”窗口中输入关系名,单击“确定”按钮。•10、在“保存”对话框中,单击“是”按钮确认对主键表和外键表所作的修改。27删除外键约束•若想删除该外键约束,可以在关系图中,删除代表要删除的外键约束的关系线。•注意:若不删除数据库图中的关系线,即使删除了该关系图,也不会影响设置好的外键约束,因为删除关系图并不对表作相应的修改。28在T-SQL中设置外键约束•定义外关键字约束的语法如下:•[CONSTRAINTconstraint_name]•[
本文标题:第06章 管理数据库表
链接地址:https://www.777doc.com/doc-1065778 .html