1.定义基本表语句
语法:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
……);
注:绿色循环是可以简洁的。
例:CREATE TABLE S (SNO char(2), SNAME char(8), AGE Decimal(2), SEX char(2) DEFAULT'男', DEPT char(2));
创建了一个五列的表,其中第四列的默认为'男'。
-------------------------------------------------- ------------------------------------------
2.定义界限
语法:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
……);
注:(1) 绿色番茄是可以省事的。
(2) 一个列可以有多个约束。
合同条款:
(1)空 | NOT NULL 用于定义列的空值约束。(定义列) (下面的蓝色自定义是单选其中之一)
语法:CONSTRAINT 约束名 NULL |非空
注意:
一个。 NOT NULL 约束强制列不接受NULL 值。
b. NOT NULL约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
例:
下面的SQL语句强制“Id_P”列和“LastName”列不接受NULL值:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255)
)
(2)UNIQUE约束唯一标识数据库表中的每条记录。(即可以定义列也可以定义表)
语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);
说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一。定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统让这些列建立唯一索引,从而保证在表中的任意两个行记录在指定的列或列组合上不能取相同的值。
注意:
一个。 UNIQUE唯一约束标识数据库表中的每条记录。
b. UNIQUE 和 PRIMARY KEY 约束列或列集合提供了唯一性的保证。
c. PRIMARY KEY 拥有自动定义的唯一约束。
d.请注意,每个表可以有多个 UNIQUE 约束,但每个表只能有一个 PRIMARY KEY 约束。
例:
下面的SQL在“Persons”表创建时在“Id_P”列创建UNIQUE约束:
MySQL:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
唯一 (Id_P)
)
SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL UNIQUE,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255)
)
如果需要命名UNIQUE约束,以及为多个列定义UNIQUE约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
约束 uc_PersonID 唯一(Id_P,姓氏)
)
(3)PRIMARY KEY唯一约束标识数据库表中的每条记录。(即可以定义列也可以定义表)
语法:CONSTRAINT 约束名 PRIMARY KEY (列名, 列名, ... ...);
说明:用于定义基本表的主键。与UNIQUE约束类似,PRIMARY KEY约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性。之间也存在很大差别:在一个基本表中只能定义一个 PRIMARY KEY 约束,却可以定义多个UNIQUE约束。如果为基本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中任何一个列中都不能出现空值;而UNIQUE约束允许出现空值。
注意:
一个。 主键必须包含唯一的值。
b. 主键列不能包含NULL值。
c. 每个表都应该有一个主键,并且每个表只能有一个主键。
例:
下面的SQL在“Persons”表创建时在“Id_P”列创建PRIMARY KEY约束:
MySQL:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
主键 (Id_P)
)
SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL 主键,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255)
)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
约束 uc_PersonID 主键(Id_P、姓氏)
)
(4)FOREIGN KEY 外键(即可以定义列也可以定义表)
语法:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;
说明:指定某个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了 FOREIGN KEY 约束,系统将保证从表在外部键上的取值或者是主表中的某一个主键值或唯一键值,或取空值。
注意:
a.在REFERENCES中引用的列必须和FOREIGN KEY的外部键列一一对应,即列数目一致且对应列的数据类型相同。
例:
下面的SQL在“Orders”表创建时为“Id_P”列创建FOREIGN KEY:
MySQL:
创建表订单
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
主键(O_Id),
外键 (Id_P) 参考资料 人员 (Id_P)
)
SQL Server / Oracle / MS 访问:
创建表订单
(
O_Id int NOT NULL 主键,
OrderNo int NOT NULL,
Id_P int 外键引用人员(Id_P)
)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS 访问:
创建表订单
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
主键(O_Id),
约束 fk_PerOrders 外键 (Id_P) 参考人员 (Id_P)
)
(5)检查约束列中的值的范围。(即可以定义列也可以定义表)
语法:CONSTRAINT 约束名 CHECK (约束条件);
说明:对于指定基本表中的每一条记录必须满足的条件,可以对基本表中各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。
注意:
一个。 如果对单个列定义 CHECK 约束,则该列只允许特定的值。
b. 如果对一个表定义了 CHECK 约束,则此约束会在特定的列中对值进行限制。
例:
下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须包含大于 0 的整数。
我的SQL:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
检查(Id_P>0)
)
SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL 检查 (Id_P>0),
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255)
)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS 访问:
创建表人员
(
Id_P int NOT NULL,
姓氏 varchar(255) NOT NULL,
名字 varchar(255),
地址 varchar(255),
城市 varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
-------------------------------------------------- ------------------------------------------
例:使用lijintao CREATE TABLE S2
(SNO CHAR(2) 约束 S_PRIM 主键,
SN CHAR(8) 约束 SN_CONS NOT NULL,
年龄 NUMERIC(2) 约束 AGE_CONS NOT NULL 约束 AGE_CHK CHECK(年龄在 15 岁到 45 岁之间),
SEX CHAR(2) 默认 '男' CONSTRAINT SEX_CHK CHECK(SEX = '男' OR SEX = '女'),
DEPT CHAR(2) 约束 DEPT_CONS NOT NULL);
本文来自CSDN博客,转载请标明出处:http: //blog.csdn.net/Qingqinglanghua/archive/2009/12/21/5051563.aspx
-