表結構的建立與修改(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,其它的類型均不
需要指定寬度,如果指定了寬度反而會出錯.