数据库
首页 > 数据库> > MySQL的约束

MySQL的约束

作者:互联网

一 非空约束 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;

标签:alter,bookinfo,book,key,MySQL,table,约束,id
来源: https://blog.csdn.net/weixin_53766268/article/details/113833450