一、建表的基本格式
语法:create table 表名(
字段一 类型,
字段二 类型,
······
)
eg:create table a(
intx int,
charx char,
)
二、常用约束条件:not null、unique、primary key、foregin key、check
1、Not null(非空约束)
--非空约束,被此关键词约束的列不能是null
2、Unique(唯一约束)
--唯一约束,被此关键词修饰的列不能有重复数据,但可以有null,但是null也最多只能有一个
3、Primary key(主键约束)
--主键约束,被此关键词修饰的列不能重复也不可以为null
语法:
create table 表名(
字段名1 类型 Not null,
字段名2 类型 Unique,
字段名3 类型 Primary key,
)
eg:
create table a(
intx int Not null,
charx char Unique,
sno char Primary key,
)
4、Foregin key(外键约束)
--外键约束,被此关键词修饰的列不能随意输入,取值只能从references后面跟的另一张表的括号里的那一列中取,且括号里面只能填表的唯一约束列。
--eg中a表就是另一张表,sno就是a表中有唯一约束的那一列
语法:
create table 表名(
字段名 char foreign key references
另一张表名(另一张表中的有唯一约束的字段)
--唯一约束:primary key、unique
)
eg:
create table b(
sno char foreign key references a(sno)
)
5、check(条件约束)
--条件约束,被此关键词修饰的列只能输入符合约束条件的值
语法:
create table 表名(
字段名 char check (约束条件),
)
eg:
create table b(
sno char check (sno='a'),
--sno这列只能取值a,其他字符不能取
)
三、表级约束和行级约束
--直接跟在行后面的就是行级约束(上面都是),所有字段定义完成之后才进行约束就是表级约束
表级约束:
Eg:create table b(
sno char,
Primary key (sno),
--也是定义了sno是主键,在作用上和行级约束没有区别
)