《【教学课件】第4章表的创建和管理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章表的创建和管理.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4章章表的创建和管理表的创建和管理4.1数据类型数据类型4.2创建表创建表4.3创建、删除和修改约束创建、删除和修改约束4.4增加、删除和修改字段增加、删除和修改字段4.5查看表格查看表格4.6删除表删除表4.1数据类型数据类型4.1.1系统数据类型系统数据类型系统数据类型是系统数据类型是SQLServer预先定义好的,预先定义好的,可以直接使用。可以直接使用。1整型数据类型整型数据类型(1)int(integer):):4个字节个字节(2)Smallint :2个字节个字节(3)Tinyint:1个字节个字节4.1数据类型数据类型2浮点数据类型浮点数据类型:用于存储十进制小数用于存储十进
2、制小数,采用只入不舍的方式采用只入不舍的方式(1)Real:4个字节的,最大个字节的,最大7位精确位数。位精确位数。(2)Float:可可以以精精确确到到第第15位位小小数数,默默认认占占用用8个个字字节节的的存存储储空空间间。Float数数据据类类型型也也可可以以写写为为float(n)的的形形式式,n为为115之之间间的的整整数数值值。当当n取取17时时,系系统统用用4个个字字节节存存储储它它;当当n取取815时,用时,用8个字节存储它。个字节存储它。4.1数据类型数据类型(3)Decimal和和numeric:可可以以提提供供小小数数所所需需要要的的实实际际存存储储空空间间,可可以以用用
3、217个个字字节节来来存存储储。也也可可以以将将其其写写为为decimal(p,s)的的形式。形式。注意:数值类型的总位数不包括小数。注意:数值类型的总位数不包括小数。例如:例如:decimal(10,5),表示共有),表示共有10位位数,其中整数数,其中整数5位,小数位,小数5位。位。4.1数据类型数据类型3 3字符数据类型字符数据类型用来存储各种字母、数字符号和特殊符号。用来存储各种字母、数字符号和特殊符号。在使用时需要在其前后加上英文单引号或者双在使用时需要在其前后加上英文单引号或者双引号。引号。(1 1)CharChar:占用:占用1 1个字节。个字节。其定义形式为:其定义形式为:ch
4、archar(n n)n n的取值为的取值为1800018000。默认。默认n n的值为的值为1 1。4.1数据类型数据类型(2 2)VarcharVarchar:可可以以存存储储长长达达80008000个个字字符符的的可可变变长长度度字字符符串串,和和charchar类类型型不不同同varcharvarchar类类型型根根据据输输入入数数据据的实际长度而变化。的实际长度而变化。其定义形式为:其定义形式为:varcharvarchar(n n)(3 3)NcharNchar:采采用用UnicodeUnicode(统统一一字字符符编编码码标标准准)字字符集每个符集每个UnicodeUnicode
5、字符用两个字节为一个存储单位。字符用两个字节为一个存储单位。其定义形式为:其定义形式为:ncharnchar(n n)(4 4)NvarcharNvarchar:使使用用UnicodeUnicode字字符符集集的的VarcharVarchar数数据据类型。类型。其定义形式为:其定义形式为:nvarcharnvarchar(n n)4.1数据类型数据类型4日期和时间数据类型日期和时间数据类型(1)Datetime:占用:占用8个字节。个字节。用用于于存存储储日日期期和和时时间间的的结结合合体体,可可以以存存储储从从公公元元1753年年1月月1日日零零时时起起公公元元9999年年12月月31日日2
6、3时时59分分59秒秒之之间间的的所所有有日日期期和和时时间间,其其精精确确度度可可达达三三百百分之一秒,即分之一秒,即3.33毫秒。毫秒。当当存存储储datetime数数据据类类型型时时,默默认认的的格格式式是是:MMDDYYYYhh:mmA.M./P.M。当当插插入入数数据据或或者者在在其其它它地地方方使使用用datetime类类型型时时,需需要要用用单单引引号号把把它它括括起起来。来。4.1数据类型数据类型默默认认January1,190012:00A.M。可可以以接接受受的的输输入入格格式式如如下下:Jan 4 1999、JAN 41999、January 4 1999、Jan 199
7、9 4、19994Jan和和1999Jan4。datetime数数据据类类型型允允许许使使用用/、-和和.作作为为不不同同时时间间单单位位间间的的分分隔隔符。符。(2)Smalldatetime:存储从:存储从1900年年1月月1日日2079年年6月月6日内的日期。日内的日期。4个字节。个字节。4.1数据类型数据类型5文本和图形数据类型文本和图形数据类型(1)Text:容量可以在:容量可以在1231-1个字节。个字节。在在定定义义Text数数据据类类型型时时,不不需需要要指指定定数数据据长长度度,SQLServer会根据数据的长度自动为其分配空间。会根据数据的长度自动为其分配空间。(2)Nte
8、xt:采采用用unicode标标准准字字符符集集,用用于于存存储储大大容容量量文文本本数数据据。其其理理论论上上的的容容量量为为230-1(1,073,741,823)个字节。)个字节。(3)Image:用于存储照片、目录图片或者图画,:用于存储照片、目录图片或者图画,其理论容量为其理论容量为231-1(2,147,483,647)个字节。)个字节。4.1数据类型数据类型6货币数据类型货币数据类型(1)Money:用用于于存存储储货货币币值值,数数值值以以一一个个正正数数部部分分和和一一个个小小数数部部分分存存储储在在两两个个4字字节节的的整整型型值值中中,存存储储范范围围为为-9223372
9、13685477.5808922337213685477.5808,精精度度为为货货币币单单位位的的万万分之一。分之一。(2)Smallmoney:其其 存存 储储 范范 围围 为为-214748.3468214748.3467。当为当为money或或smallmoney的表输入数据时,必须的表输入数据时,必须在有效位置前面加一个货币单位符号(如在有效位置前面加一个货币单位符号(如$或其它货或其它货币单位的记号)。币单位的记号)。4.1数据类型数据类型7位数据类型位数据类型Bit称称为为位位数数据据类类型型,有有两两种种取取值值:0和和1。如如果果一一个个表表中中有有8个个或或更更少少的的bi
10、t列列时时,用用1个个字字节节存放。如果有存放。如果有916个个bit列时,用列时,用2个字节存放。个字节存放。在输入在输入0以外的其它值时,系统均把它们当以外的其它值时,系统均把它们当1看待。看待。4.1数据类型数据类型8二进制数据类型二进制数据类型(1)Binary:其其定定义义形形式式为为binary(n),数数据据的的存存储储长长度度是是固固定定的的,即即n+4个个字字节节。二二进进制制数数据据类类型型的的最最大大长长度度(即(即n的最大值)为的最大值)为8000,常用于存储图像等数据。,常用于存储图像等数据。(2)Varbinary:其其定定义义形形式式为为varbinary(n),
11、数数据据的的存存储储长长度度是是变化的,它为实际所输入数据的长度加上变化的,它为实际所输入数据的长度加上4字节。字节。在在输输入入二二进进制制常常量量时时,需需在在该该常常量量前前面面加加一一个个前前缀缀0 x。4.1数据类型数据类型9特殊数据类型特殊数据类型(1)Timestamp:也也称称作作时时间间戳戳数数据据类类型型。是是一一种种自自动动记记录录时时间间的的数数据据类类型型,主主要要用用于于在在数数据据表表中中记记录录其其数数据据的的修修改改时时间间。它它提提供供数数据据库范围内的唯一值。库范围内的唯一值。(2)Uniqueidentifier:也也称称作作唯唯一一标标识识符符数数据据
12、类类型型。Uniqueidentifier用用于于存存储储一一个个16字字 节节 长长 的的 二二 进进 制制 数数 据据 类类 型型,它它 是是 SQLServer根根据据计计算算机机网网络络适适配配器器地地址址和和CPU时时钟钟产产 生生 的的 全全 局局 唯唯 一一 标标 识识 符符 代代 码码(GloballyUniqueIdentifier,简写为,简写为GUID)。)。4.1数据类型数据类型10新增数据类型新增数据类型(1)Bigint:占用:占用8个字节。个字节。(2)sql_variant:用用于于存存储储除除文文本本、图图形形数数据据和和timestamp类类型型数数据据外外
13、的的其其它任何合法的它任何合法的SQLServer数据。数据。(3)table:用于存储对表或者视图处:用于存储对表或者视图处理后的结果集。理后的结果集。4.1数据类型数据类型4.1.2自定义数据类型自定义数据类型1使用企业管理器创建使用企业管理器创建2利用系统存储过程创建利用系统存储过程创建sp_addtypetypename=type,phystype=system_data_type,nulltype=null_type,owner=owner_name4.1数据类型数据类型ntype:指定用户定义的数据类型的名称。指定用户定义的数据类型的名称。nsystem_data_type:指指定
14、定相相应应的的系系统统提提供供的的数数据据类类型型的的名名称称及及定定义义。注注意意,不不能能使使用用timestamp数数据据类类型型,当当所所使使用用的的系系统统数数据据类类型有额外说明时,需要用引号将其括起来型有额外说明时,需要用引号将其括起来。nnull_type:指指定定用用户户自自定定义义数数据据类类型型的的null属属性性,其其值值可可以以为为null、notnull或或者者nonull。默认与系统默认的默认与系统默认的null属性相同。属性相同。nowner_name:指定用户自定义数据类型的指定用户自定义数据类型的所有者。所有者。4.1数据类型数据类型删除用户自定义数据删除用
15、户自定义数据1使用企业管理器使用企业管理器2利用系统存储过程利用系统存储过程sp_droptypetypename=type 本章首页本章首页4.2创建表创建表表表是是包包含含数数据据库库中中所所有有数数据据的的数数据据库库对对象象,用来存储各种各样的信息。用来存储各种各样的信息。在在SQL SQL Server Server 20002000中中,一一个个数数据据库库中中最最多多可可以以创创建建200200万万个个表表,用用户户创创建建数数据据库库表表时时,最最多多可可以以定定义义10241024列列。在在同同一一数数据据库库的的不不同同表表中中,可可以以有有相相同同的的字字段段,但但在在同
16、同一一个个表表中中不不允允许许有有相相同同的的字字段段,而而且且每每个个字字段段都都要要求求数数据据类类型型相相同。同。4.2创建表创建表4.2.1 4.2.1 利用企业管理器创建表利用企业管理器创建表 n默默 认认 值值:指指 定定 列列 的的 默默 认认 值值。除除 定定 义义 为为timestamptimestamp或或带带IDENTITYIDENTITY属属性性的的列列以以外外的的任任何何列列。删删除除表表时时,将将删删除除默默认认值值定定义义。只只有有常常量量值值(如如字字符符串串)、SQL SQL ServerServer内内部部函函数数(如如SYSTEM_USERSYSTEM_U
17、SER()()或或NULLNULL值可以用作默认值。值可以用作默认值。n精精度度和和小小数数位位数数:精精度度是是列列的的总总长长度度,包包括括整整数数部部分分和和小小数数部部分分的的长长度度之之和和,但但不不包包括括小小数点;小数位数指定小数点后面的长度。数点;小数位数指定小数点后面的长度。4.2创建表创建表n标标识识:指指定定列列是是否否是是标标识识列列。一一个个表表只只能能创创建建一一个个标标识识列列。不不能能对对标标识识列列使使用用绑绑定定默默认认值值和和DEFAULTDEFAULT约约束束。必必须须同同时时指指定定种种子子和和增增量量,或或者者两两者者都都不不指指定定。默默认认值值(
18、1,11,1)。能能够够成成为为标标识识列列的的数数据据类类型型有有intint、smallintsmallint、tinyinttinyint、numericnumeric和和decimaldecimal等等系系统统数数据据类类型型;如如果果其其数数据据类类型型为为numericnumeric和和decimaldecimal,不不允允许许出出现现小小数数位数。位数。n标识种子:指定标识列的初始值。标识种子:指定标识列的初始值。n标识递增量:指定标识列的增量值。标识递增量:指定标识列的增量值。4.2创建表创建表n是是RowGuidRowGuid:指定列是否使用全局唯一标识符。指定列是否使用全局
19、唯一标识符。n公式:用于指定计算列的列值表达式。公式:用于指定计算列的列值表达式。n排序规则:指定列的排序规则。排序规则:指定列的排序规则。说说明明:在在数数据据库库中中表表名名必必须须是是唯唯一一的的,但但是是如如果果为为表表指指定定了了不不同同的的用用户户,就就可可以以创创建建多多个个相同名称的表。相同名称的表。4.2创建表创建表4.2.2 4.2.2 利用利用Transact-SQL语言创建表语言创建表CREATETABLEdatabase_name.owner.|owner.table_name(|column_nameAScomputed_column_expression|,n)O
20、Nfilegroup|DEFAULTTEXTIMAGE_ONfilegroup|DEFAULT4.2创建表创建表:=column_namedata_typeCOLLATEDEFAULTconstant_expression|IDENTITY(seed,increment)NOTFORREPLICATIONROWGUIDCOL.n4.2创建表创建表:=CONSTRAINTconstraint_nameNULL|NOTNULL|PRIMARYKEY|UNIQUECLUSTERED|NONCLUSTEREDWITH FILLFACTOR=fillfactorONfilegroup|DEFAULT|F
21、OREIGNKEY(column,n)REFERENCESref_table(ref_column,n)NOTFORREPLICATION|CHECKNOTFORREPLICATION(logical_expression)本章首页本章首页 4.3 创建、删除和修改约束创建、删除和修改约束 约约束束是是SQLServer提提供供的的自自动动保保持持数数据库完整性的一种方法据库完整性的一种方法。n列列级级约约束束:列列级级约约束束是是行行定定义义的的一一部部分分,只能够应用在一列上。只能够应用在一列上。n表表级级约约束束:表表级级约约束束的的定定义义独独立立于于列列的的定义,可以应用在一个表中的
22、多列上。定义,可以应用在一个表中的多列上。4.3 创建、删除和修改约束创建、删除和修改约束4.3.1主键约束主键约束主键能够唯一地确定表中的每一条记录,主键不能主键能够唯一地确定表中的每一条记录,主键不能取空值。主键约束可以保证实体的完整性。取空值。主键约束可以保证实体的完整性。1 1通过企业管理器完成添加、删除和修改主键的操通过企业管理器完成添加、删除和修改主键的操作作 2 2使用使用Transact-SQLTransact-SQL语句设置主键约束语句设置主键约束 CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTERED (c
23、olumn_name,n)4.3 创建、删除和修改约束创建、删除和修改约束4.3.2 唯一性约束唯一性约束唯一性约束用于指定一个或多个列的组合值唯一性约束用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。具有唯一性,以防止在列中输入重复的值。n使用唯一性约束的字段允许为空值;使用唯一性约束的字段允许为空值;n一个表中可以允许有多个唯一性约束;一个表中可以允许有多个唯一性约束;n可以把唯一性约束定义在多个字段上;可以把唯一性约束定义在多个字段上;n唯唯一一性性约约束束用用于于强强制制在在指指定定字字段段上上创创建建一一个个唯一性索引;唯一性索引;n默认情况下,创建的索引类型为非聚
24、集索引。默认情况下,创建的索引类型为非聚集索引。4.3 创建、删除和修改约束创建、删除和修改约束1通过企业管理器完成创建和修改唯一性约通过企业管理器完成创建和修改唯一性约束的操作束的操作2使使用用Transact-SQL语语句句完完成成唯唯一一性性约约束束的操作的操作CONSTRAINTconstraint_nameUNIQUECLUSTERED|NONCLUSTERED(column_name,n)4.3 创建、删除和修改约束创建、删除和修改约束4.3.3检查约束检查约束保证数据库数据的完整性。保证数据库数据的完整性。n一一个个列列级级检检查查约约束束只只能能与与限限制制的的字字段段有有关关
25、;一一个个表级检查约束只能与限制的表中字段有关;表级检查约束只能与限制的表中字段有关;n一个表中可以定义多个检查约束;一个表中可以定义多个检查约束;n每每个个CREATETABLE语语句句中中每每个个字字段段只只能能定定义义一一个检查约束;个检查约束;n在在多多个个字字段段上上定定义义检检查查约约束束,则则必必须须将将检检查查约约束束定义为表级约束;定义为表级约束;n当当执执行行INSERT语语句句或或者者UPDATE语语句句时时,检检查查约束将验证数据;约束将验证数据;n检查约束中不能包含子查询。检查约束中不能包含子查询。4.3 创建、删除和修改约束创建、删除和修改约束1使用企业管理器创建检
26、查约束使用企业管理器创建检查约束2用用Transact-SQL语句创建检查约束。语句创建检查约束。CONSTRAINTconstraint_nameCHECKNOTFORREPLICATION(logical_expression)4.3 创建、删除和修改约束创建、删除和修改约束4.3.4默认约束默认约束n每个字段只能定义一个默认约束;每个字段只能定义一个默认约束;n如如果果定定义义的的默默认认值值长长于于其其对对应应字字段段的的允允许许长长度,那么输入到表中的默认值将被截断;度,那么输入到表中的默认值将被截断;n不不能能加加入入到到带带有有IDENTITY属属性性或或者者数数据据类类型为型为
27、timestamp的字段上;的字段上;n如果字段定义为用户定义的数据类型,而且如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。该字段有默认约束。4.3 创建、删除和修改约束创建、删除和修改约束1使用企业管理器创建默认约束使用企业管理器创建默认约束2使用使用Transact-SQL语句创建默认约束语句创建默认约束4.3 创建、删除和修改约束创建、删除和修改约束4.3.5外键约束外键约束外键约束主要用来维护两个表之间数据的一致性。外键约束主要用来维护两个表之间数据的一致性。n外键约束提供了字段参照完整性;外键约
28、束提供了字段参照完整性;n外外键键从从句句中中的的字字段段数数目目和和每每个个字字段段指指定定的的数数据据类类型型都必须和都必须和REFERENCES从句中的字段相匹配;从句中的字段相匹配;n外键约束不能自动创建索引,需要用户手动创建;外键约束不能自动创建索引,需要用户手动创建;n用用户户想想要要修修改改外外键键约约束束的的数数据据,必必须须有有对对外外键键约约束束所参考表的所参考表的SELECT权限或者权限或者REFERENCES权限;权限;n参参 考考 同同 一一 表表 中中 的的 字字 段段 时时,必必 须须 只只 使使 用用REFERENCES子句,不能使用外键子句;子句,不能使用外键
29、子句;4.3 创建、删除和修改约束创建、删除和修改约束n一个表中最多可以有一个表中最多可以有31个外键约束;个外键约束;n在临时表中,不能使用外键约束;在临时表中,不能使用外键约束;n主键和外键的数据类型必须严格匹配。主键和外键的数据类型必须严格匹配。1在企业管理器中添加外键约束在企业管理器中添加外键约束2使用使用Transact-SQL语句设置外键约束语句设置外键约束 CONSTRAINTconstraint_nameFOREIGNKEY(column_name,n)REFERENCESref_table(ref_column,n)本章首页本章首页4.4增加、删除和修改字段增加、删除和修改字
30、段4.4.1利利用用企企业业管管理理器器增增加加、删删除除和和修修改改字字段段4.4.2利利用用Transact-SQL语语言言增增加加、删删除除和修改字段和修改字段4.4增加、删除和修改字段增加、删除和修改字段ALTERTABLEtableALTERCOLUMNcolumn_namenew_data_type(precision,scale)COLLATENULL|NOTNULL|ADD|DROPROWGUIDCOL|ADD4.4增加、删除和修改字段增加、删除和修改字段|column_nameAScomputed_column_expression,.n|WITHCHECK|WITHNOCH
31、ECKADD,.n|DROPCONSTRAINTconstraint_name|COLUMNcolumn,.n|CHECK|NOCHECKCONSTRAINTALL|constraint_name,.n|ENABLE|DISABLETRIGGERALL|trigger_name,.n本章首页本章首页4.5查看表格查看表格4.5.1查看表格的定义查看表格的定义4.5.2查看表格中的数据查看表格中的数据4.5.3查查看看表表格格与与其其它它数数据据库库对对象象的的依依赖赖关关系系4.5.4利利用用系系统统存存储储过过程程Sp_help查查看看表表的的信息信息本章首页本章首页4.6删除表删除表4.6.1利用企业管理器删除表利用企业管理器删除表4.6.2利用利用Transact-SQL语言删除表语言删除表DROPTABLEtable_name本章首页本章首页