表结构的创建与修改(SQL 语句)<o:p></o:p>
一: 表结构定义语法格式<o:p></o:p>
CREATE TABLE <table_name>
(
<列名> <列类型> [<列属性>] [<列约束>],
……,<o:p></o:p>
[ <表约束> ]
)
[ ON {filegroup | DEFAULT}]
[ TEXTIMAGE_ON { filegroup | DEFAULT} ]
<o:p> </o:p>
<列类型> 就是SQL Server 支持的类型及相应的宽度.<o:p></o:p>
<列属性> 列属性中可以是如下几种属性:<o:p></o:p>
(1) 默认值 DEFAULT 常量表达式.<o:p></o:p>
(2) 标识 IDENTITY (标识种子,标识递增量)<o:p></o:p>
<列约束>:: = [ CONSTRAINT constraint_name ]
{
-- ------------------------------------ 空与非空约束 ---------------------------------
[ NULL | NOT NULL]
-- ------------------------------------ 主键与唯一性约束 ---------------------------------
| [ {PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = filltor ]
[ ON { filegroup | DEFAULT} ]
]
-- ------------------------------------ 外键约束 ---------------------------------
| [ [ FOREIGN KEY]
REFERENCES ref_table [ (ref_column) ]
[ ON DELETE { CASCADE | NO ACTION} ]
[ ON UPDATE] { CASCADE | NO ACTION} ]
[ NOT FOR REPLICATION ]
}
-- ------------------------------------ CHECK 约束 ---------------------------------
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
<o:p> </o:p>
< 表约束 > ::= [ CONSTRAINT constraint_name ]<o:p></o:p>
{<o:p></o:p>
-- ------------------------------------ 主键与唯一性 约束 ---------------------------------<o:p></o:p>
[ { PRIMARY KEY | UNIQUE }<o:p></o:p>
[ CLUSTERED | NONCLUSTERED ]<o:p></o:p>
{ ( column [ ASC | DESC ] [ ,...n ] ) }<o:p></o:p>
[ WITH FILLFACTOR = fillfactor ]<o:p></o:p>
[ ON { filegroup | DEFAULT } ]<o:p></o:p>
]<o:p></o:p>
-- ------------------------------------ 外键 约束 ---------------------------------<o:p></o:p>
| FOREIGN KEY<o:p></o:p>
[ ( column [ ,...n ] ) ]<o:p></o:p>
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]<o:p></o:p>
[ ON DELETE { CASCADE | NO ACTION } ]<o:p></o:p>
[ ON UPDATE { CASCADE | NO ACTION } ]<o:p></o:p>
[ NOT FOR REPLICATION ]<o:p></o:p>
-- ------------------------------------ CHECK 约束 ---------------------------------<o:p></o:p>
| CHECK [ NOT FOR REPLICATION ] ( search_conditions )<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
二: 在定义 Primary Key 的时候,我们可以有两种方式出现 :<o:p></o:p>
<o:p> </o:p>
列约束, 它只能给一列定义为主键,如果主键是多列的情况在此不适用。<o:p></o:p>
表约束: 主键列可以是一列,或者是多列.<o:p></o:p>
<o:p> </o:p>
三: 学习:
<o:p> </o:p>
1. 需要指定宽度的类型有:Char,Varchar,nChar,nVarchar,Binary,Varbinary,其它的类型均不<o:p></o:p>
需要指定宽度,如果指定了宽度反而会出错.<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>