sql语句创建表

sql语句创建表

ID:33959152

大小:41.50 KB

页数:9页

时间:2019-03-02

上传者:U-25949
sql语句创建表_第1页
sql语句创建表_第2页
sql语句创建表_第3页
sql语句创建表_第4页
sql语句创建表_第5页
资源描述:

《sql语句创建表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1.定义基本表语句    语法:    USE 数据库名CREATETABLE表名(列名类型(大小)DEFAULT'默认值',                                                          列名类型(大小)DEFAULT'默认值',                                                            列名类型(大小)DEFAULT'默认值',                                                          ......);    注:绿色部份是可以省略的。    例:CREATETABLES(SNOchar(2),SNAMEchar(8),AGEdecimal(2),SEXchar(2)DEFAULT'男',DEPTchar(2)); 创建了一个五列的表,其中第四列的默认值为‘男’。2.定义完整性约束    语法: USE 数据库名CREATETABLE表名(列名类型(大小)DEFAULT'默认值'CONSTRAINT约束名约束定义, 列名类型(大小)DEFAULT'默认值'CONSTRAINT约束名约束定义,   列名类型(大小)DEFAULT'默认值'CONSTRAINT约束名约束定义, ......); 注:(1)绿色部份是可以省略的。          (2)一个列是可以有多个约束的。    约束定义:    (1)NULL|NOTNULL  用于定义列的空值约束。(定义列)  (下面的蓝色部份是单选其中之一)             语法:CONSTRAINT约束名NULL|NOTNULL             注意:                    a.NOTNULL约束强制列不接受NULL值。                    b.NOTNULL约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。         例:下面的SQL语句强制"Id_P"列和"LastName"列不接受NULL值:                     CREATETABLEPersons                     (                     Id_PintNOTNULL,                     LastNamevarchar(255)NOTNULL,                     FirstNamevarchar(255),                     Addressvarchar(255),                     Cityvarchar(255)                     )    (2)UNIQUE  约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)            语法:CONSTRAINT约束名UNIQUE(列名,列名,......);            说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一。定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统将为这些列建立唯一索引,从而保证在表中的任意两行记录在指定的列或列组合上不能取同样的值。            注意:                     a.UNIQUE约束唯一标识数据库表中的每条记录。                    b.UNIQUE和 PRIMARYKEY约束均为列或列集合提供了唯一性的保证。                    c.PRIMARYKEY拥有自动定义的UNIQUE约束。                    d.请注意,每个表可以有多个UNIQUE约束,但是每个表只能有一个PRIMARYKEY约束。      例:下面的SQL在"Persons"表创建时在"Id_P"列创建UNIQUE约束:                            SQLServer/ Oracle /MS access:                 CREATETABLEPersons                 (                 Id_PintNOTNULLUNIQUE,                 LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255)                  )如果需要命名UNIQUE约束,以及为多个列定义UNIQUE约束,请使用下面的SQL语法:              MySQL/SQLServer/Oracle/MSAccess:                 CREATETABLEPersons                 (                 Id_PintNOTNULL,                  LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255),                 CONSTRAINTuc_PersonIDUNIQUE(Id_P,LastName)                 )    (3)PRIMARYKEY约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)            语法:CONSTRAINT约束名PRIMARYKEY(列名,列名,......);            说明:用于定义基本表的主键。与UNIQUE约束类似,PRIMARYKEY约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性。然而它们之间也存在着很大差别:在一个基本表中只能定义一个PRIMARYKEY约束,却能定义多个UNIQUE约束。如果为基本表的某一个列或多个列的组合指定了PRIMARYKEY约束,那么其中在任何一个列都不能出现空值;而UNIQUE约束允许出现空值。            注意:                    a.主键必须包含唯一的值。                    b.主键列不能包含NULL值。                    c.每个表应该都一个主键,并且每个表只能有一个主键。       例:下面的SQL在"Persons"表创建时在"Id_P"列创建PRIMARYKEY约束:                        SQLServer/Oracle/MSAccess:                  CREATETABLEPersons                 (                 Id_PintNOTNULLPRIMARYKEY,                 LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255)                 )                 如果需要命名PRIMARYKEY约束,以及为多个列定义PRIMARYKEY约束,请使用下面的SQL语法:              MySQL/SQLServer/Oracle/MSAccess:                 CREATETABLEPersons                 (                 Id_PintNOTNULL,                 LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255),                 CONSTRAINTuc_PersonIDPRIMARYKEY(Id_P,LastName)                 ) (4)FOREIGNKEY外键(即可以定义列也可能定义表)            语法:CONSTRAINT约束名FOREIGNKEY(列名,列名,......) REFERENCES(列名,列名,......);            说明:指定某一个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了FOREIGNKEY约束,系统将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。            注意:                    a.在REFERENCES中引用的列必须和FOREIGNKEY的外部键列一一对应,即列数目相等并且相应列的数据类型相同。            例:             下面的SQL在"Orders"表创建时为"Id_P"列创建FOREIGNKEY:                                 SQLServer/Oracle/MSAccess:                 CREATETABLEOrders                 (                 O_IdintNOTNULLPRIMARYKEY,                 OrderNointNOTNULL,                 Id_PintFOREIGNKEYREFERENCESPersons(Id_P)                 )                 如果需要命名FOREIGNKEY约束,以及为多个列定义FOREIGNKEY约束,请使用下面的SQL语法:                 MySQL/SQLServer/Oracle/MSAccess:                 CREATETABLEOrders                  (                 O_IdintNOTNULL,                 OrderNointNOTNULL,                 Id_Pint,                 PRIMARYKEY(O_Id),                 CONSTRAINTfk_PerOrdersFOREIGNKEY(Id_P)REFERENCESPersons(Id_P)                 )     (5)CHECK约束用于限制列中的值的范围。(即可以定义列也可能定义表)            语法:CONSTRAINT约束名CHECK(约束条件);            说明:用于指定基本表中的每一条记录必须满足的条件,可以对基本表在各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。            注意:                    a.如果对单个列定义CHECK约束,那么该列只允许特定的值。                    b.如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。            例:          下面的SQL在"Persons"表创建时为"Id_P"列创建CHECK约束。CHECK约束规定"Id_P"列必须只包含大于0的整数。                             SQLServer/Oracle/MSAccess:                 CREATETABLEPersons                  (                 Id_PintNOTNULLCHECK(Id_P>0),                 LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255)                 )         如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:                 MySQL/SQLServer/Oracle/MSAccess:                 CREATETABLEPersons                 (                 Id_PintNOTNULL,                 LastNamevarchar(255)NOTNULL,                 FirstNamevarchar(255),                 Addressvarchar(255),                 Cityvarchar(255),                 CONSTRAINTchk_PersonCHECK(Id_P>0ANDCity='Sandnes')                 )    例:USElijintaoCREATETABLES2          (SNOCHAR(2)CONSTRAINTS_PRIMPRIMARYKEY,          SNCHAR(8)CONSTRAINTSN_CONSNOTNULL,           AGENUMERIC(2)CONSTRAINTAGE_CONSNOTNULLCONSTRAINTAGE_CHKCHECK(AGEBETWEEN15AND45),          SEXCHAR(2)DEFAULT'男'CONSTRAINTSEX_CHKCHECK(SEX='男'ORSEX='女'),          DEPTCHAR(2)CONSTRAINTDEPT_CONSNOTNULL);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭