ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL的约束

2021-02-17 20:57:59  阅读:236  来源: 互联网

标签:alter bookinfo book key MySQL table 约束 id


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有