天天看點

Programmer列限制與表限制(SQL 語句)

表結構的建立與修改(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,其它的類型均不

需要指定寬度,如果指定了寬度反而會出錯.