Programmer列约束与表约束(SQL 语句)

来源:互联网 发布:mac版梦幻西游 编辑:程序博客网 时间:2024/05/01 00:30

表结构的创建与修改(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,其它的类型均不

需要指定宽度,如果指定了宽度反而会出错.