一 非空约束 not null
null 字段值可以为空
not null 字段值禁止为空
create table bookinfo(
book_id int,
book_name varchar(20) not null
);
# 通过修改表为指定的列添加非空约束
alter table bookinfo modify book_name varchar(20) not null;
#删除非空约束
alter table bookinfo modify book_name varchar(20);
二 主键约束 primary key
主键是在一张表中是唯一的,同时也可以联合外键一起使用
# 方法一:
create table bookinfo(
book_id int primary key,
book_name varchar(20)
);
# 方法二:
create table bookinfo(
book_id int,
book_name varchar(20) not null,
constraint pk_id primary key(book_id)
);
# 多字段联合主键/复合主键:
create table bookinfo(
book_id int,
book_name varchar(20) not null,
primary key(book_id, card_id)
);
# 通过修改表为指定的列添加主键(3种方法):
alter table bookinfo modify book_id int primary key;
alter table bookinfo add primary key key(book_id);
alter table bookinfo add constraint pk_id primary key(book_id);
#删除主键
alter table bookinfo drop primary key;
三 唯一约束 unique
要求该列唯一,允许为空,唯一约束可以确保一列或者几列不出现重复值
#创建方法一:
create table bookinfo(
book_id int,
book_name varchar(20) unique
);
#创建方法二:
create table bookinfo(
book_id int,
book_name varchar(20),
constraint uk_bname unique(book_name)
);
#修改表(3种方法)
alter table bookinfo modify book_name varchar(20) unique;
alter table bookinfo add unique(book_name);
alter table bookinfo add constraint uk_bname unique(book_name);
#修改(2种方法)
alter table book_info drop index book_name;
alter table book_info drop key book_name
四 默认约束 default
当我们没有给该列值得时候,系统会默认给设定值
#创建
create table bookinfo(
book_id int primary key,
press varchar(20) default '机械工业出版社'
);
#修改表的时候添加约束(2种方法)
alter table bookinfo modify press varchar(10) default '机械工业出版社';
alter table bookinfo alter column press set default '机械工业出版社';
#删除(2种方法)
alter table bookinfo modify press varchar(20);
alter table bookinfo alter column press drop default;
五 外键约束 foreign key
用来在两个表之间建立链接,可以是一列或者是多列. 一个表可以有一个或多个外键.
外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值
#创建一个图书类别表
create table bookcategory(
category_id int primary key,
category varchar(20),
parent_id int
);
create table bookinfo(
book_id int primary key,
book_category_id int,
constraint fk_cid foreign key(book_category_id) references bookcategory(category_id)
);
#修改表的时候添加外键约束
alter table bookinfo add foreign key(book_category_id) references bookcategory(category_id);
#删除(注意删除的是fk_cid,而使用book_category_id可能会报错)
alter table bookinfo drop foreign key fk_cid;