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