CREATE TABLE 表名
(
列名1 数据类型和长度1 列说明1,
列名1 数据类型和长度1 列说明1,
......
列名1 数据类型和长度1 列说明1,
)
表约束
- 主键(PRIMARY KEY)约束
- 语法:primary key(列名1,列名2,列名3…)
- 例
create table Student
(
StuID char(10),
StuName varchar(50) not null,
StuSex char(2),
StuClass varchar(50) not null,
StuScore float,
PostCode char(6),
DepID int not null,
primary key(StuID),
)
- 唯一性(UNIQUE例)约束 :唯一性约束可以保证除主键外的其他一个或多个列的数据唯一性,以防止在列中输入重复的值。唯一性约束允许一个空值
语法:constratnt 约束名 unioue(列名)
例: 为姓名创建唯一性约束
constraint uqeStuName unique(StuName),
- 检查(CHECK)约束:检查约束指定表中一列或多了可以接受的数据值或格式。例如,表“Student”中的“StuScore”列的值应该大于或等于0
语法:constraint 约束名 check (逻辑表达式) | (字段名in | between | like)
例:“StuScore”列的值大于等于0:
constraint chkStuScore check(StuScore>=0),
- in和between
例:定义"StuSex"列的值只能是“男”和“女”,"StuScore"列为0-100之间
constraint chkStuSex check(StuSex in('男','女')),
constraint chkStuScore check(StuScore between 0 and 100),
- like:[]表示取值范围
如:[0-9]表示数字
[a,b,z]只能取值a,b,或z
如:定义列PostCode的值是由6位数字组成的字符串
同时StuID列由A、B、Z打头,后面跟五位数字
constraint chkPostCode check(PostCode like '[0-9][0-9][0-9][0-9][0-09][0-9]'),
constraint chkStuID check(StuID like '[A,B,Z][0-9][0-9][0-9][0-9][0-9]'),
- 默认(DEFAULT)约束:指定一个列定义一个默认值,如果没有输入该列的值,则将该列的值设置为默认值(注意:这个约束需要写在当前字段上,不能写在后面)
语法:
列名 数据类型 DEFAULT 约束表达式
如:定义StuSex的默认值为“男”
StuSex char(2) default '男',
- 外部键(FOREIGN KEY)约束:外键约束是用于建立两个表之间的联系。通过将当前表中的某一列关联到另一个表的主键列,两个表之间的连接。当前表中的列就成为外键。(两表中的名字可以不相同),被参照的必须是主键
- 语法:
CONSTRAINT 约束名 FOREIGN KEY(列名) REFERENCES 关联表(关联列名)
例:已存在表“Department”,其主键列“DepID”,创建“Student”表的外键“DepID”,使其参照主键列
constraint fkDepID foreign key(DepID) references Department (DepID),