6.1创建表
创建方式:Transact-SQL的CREATTABLE或者SQL Enterprise Manager
每个数据苦中最多可以创建200万个表
6.1.1用Transact-SQL创建表
语法:略
一个数据库对象的名称最多可以使用128个字符,例如表名,列名…
数据库中的内容够作为一个对象存储。一个数据库对象都在系统表中保留了了它的相关信息:表明,数据类型和其它特性。
6.2理解数据类型
一个表必须定义一列,最多不能超过1024列,行的长度对多为8060个字节
可以用image、ntext和text数据类型来避免长度8060个字节的极限。。用image和text数据类型是定义在表外的,text最多可以存储2兆字节,ntext最多可以存储1兆多。
表的计量单位是extent。创建表时它的初始值是一个extent,他表示的是8页,每页8kb。当最初的空间被占满时,会自动追加新的extent单位,直到占满整个数据库空间。
用sp_spaceused来获得有关表所分配到的空间或者SQL Enterprise Manager显示的报告。
6.2.1 理解Unicode是一种16位的字符编码标准
6.2.2 创建临时表
这是一种有用的技术
创建局部临时表表名必须以#开始
创建任何会话都能存取的临时表叫全局临时表,表名必须以##开始
会话上下文信息可用于存储每个用户或应用程序当前状态所特有的信息,这些信息随后可用于控制 Transact-SQL 语句中的逻辑。会话的建立取决于你如何访问服务器。会话与服务器之间有一种活动连接。
6.3选择数据类型:
1)整数类型:int smallint tinyint
2)浮点数数据类型:real float[(n)] decimal[(p[,s])] numeric[(p[,s)]
3)字符数据类型:
Char Nchar Varchar Nvarchar
4)datetime和smalldatatime类型
5)特定类型
●Bit存储那种只用来表示两种状态的数据类型,不能为空值。
关于用bit数据类型定义列的信息,不能定义一个使用一个定义为bit数据类型列的索引。
Timestamp在此列中无论插入一新的行还是更新一存在的行,一个记数值将自动添加到这个列。不能输入一个确切 的值到此列。输入的值用一个varbinary(8)格式。缺省状态下允许使用 null值。它是行识别符保持唯一的最好的sql-server维护方法。如果用列名Timestamp定义一个列,并且没指定数据类型,那么着行使用Timestamp类型。可以用@@abts显示用于下一个被更新的行或者一个新添加的Timestamp列的当前值。:select @@dbts
●Uniqueidentifier:是一个16字节全局性唯一识别符。主要用途是在从许多不同的数据库的许多不同的表中收集数据时保持唯一性。允许对它进行的操作是比较操作(=,<,>)、isnot,null,isnull.所限制的列限制和属性除identity外均可用语此数据类型。
●Binary(n)
Varbinary(n)
●Text Ntext iamge:显示的字节被变量@@textsize限制,缺省为64k.使用限制:除非是一个union all,否则也不能在union中使用ext或image列。;不能使用一个从text或image数据类型返回数据值的子查询;不能在where或haing子句中使用text或iamge列,除非使用处理棵比较操作符;不能在定义为text或image数据类型的表列前指定distinct;不能使用一定义为text或image数据类型的表列创建索引、主关键字或外部关键字。
●Money和smallmoney必须在最前面加美圆符号$
●Sysname是用户定义数据类型
6.4null和not null:使用下面的命令可以导致表列或者用户定义的数据类型自动的允许null:
SET ANST_null_DELT_ON或者sp_dboption database_name,’ANST null default’,ture;可以使用下面命令设置回缺省方式:
SET ANST_NULL_DFLT_OFF或者sp_dboption database_name,’ANST null default’,false
Null操作:如果使用包含它的列和其他数据结构计算则结果为null;不能使用null和 not null比较;数据类型integet的列不允许null.也不能和null比较
使用系统函数isnull(expression,value)来使当在表列中遇到一个null值时,它返回代替null的字符串或者数字。Espression代表的是一个包含null值的列名,value则指定在发现一个null值时应返回的数字或字符串。
6.5Identity不允许空值,可以有两个参数,表示开始的数值和增量。可以用关键词identitycol来引用一个表用特性identity定义的列。