7 MySQL 约束 Constraint

约束条件,即对数据表的行数据/列数据的限定条件:

约束 关键字 说明
非空 not null 不能为空的数据
主键 primary key 非空+唯一; 易于快速查询
唯一 unique 唯一性,允许为空
默认 default 数据的默认值
外键 foreign key 与其它数据表的关联数据,确保数据完整性
自增 auto_increment 系统自动序列化的自增字段
* 唯一 unique 与主键 primary key 约束的区别

一个表可以有多个 unique 声明,但至多只能有1个 primary key 声明;
声明 primary key 的字段不允许为空;
声明 unique 的字段允许为空;

1 null 空/ not null 非空

1.1 创建数据表时添加 not null约束,语法
create table tab_name(		/* 创建 tab_name数据表 */
	col_name type not null 	/* 列名col_name; type类型; not null 非空 */
); 							/* 不写 null 或 not null, 则 默认null */

示例代码:创建 bookinfo表; 列book_name为 varchar(20)类型;非空

mysql> create table bookinfo(
	book_name varchar(20) not null
); 
1.2 为数据表修改 null/ not null 约束,语法
alter table tab_name modify col_name type not null;
/* 为 tab_name数据表的 列col_name 设置 type类型 not null 非空 */

alter table tab_name modify col_name type null;
/* 为 tab_name数据表的 列col_name 设置 type类型 null 空 */
alter table tab_name modify col_name type;
/* 为 tab_name数据表的 列col_name 设置 type类型, 省略时默认为 null 空 */

示例代码:为 bookinfo表的 列book_name 设置 varchar(20)类型;非空

mysql> alter table bookinfo modify book_name varchar(20) not null;

2 主键约束 primary key

特点:数据唯一; 不能为空; 能够唯一标识表中的一条记录
优点:每张表最多仅有1个主键约束; 主键可结合外界不同数据表间的关系,加快数据查询速度
单字段主键: 由一个字段/列定义;
多字段联合主键: 由多个字段/列定义

2.1 创建:在定义字段/列的同时,指定主键 SQL语法:
create table tab_name(			/* 创建 tab_name数据表; */
	col_name type primary key	/* 列名col_name; type类型; 指定为 primary key 主键 */
); 

示例代码: 创建bookinfo数据表, 字段名bid; int 类型; 指定为 primary key 主键

mysql> create table bookinfo(
	bid int primary key
); 
2.2 创建:在列定义的后边,指定主键 SQL语法:
create table tab_name(							/* 创建 tab_name数据表; */
	col_name type,								/* 列名col_name; type类型; */
	[constraint pk_name] primary key(col_name) 	/* 指定为 primary key 主键 */
); 	/* 若不指定约束名称 [constraint pk_name],系统会自动分配约束名称 */

示例代码: 创建bookinfo数据表, 字段名bid; int 类型; 指定为 primary key 主键

mysql> create table bookinfo(
	bid int,
	constraint pkid primary key(bid)
); 
2.3 创建: 创建多字段/列 primary key 主键 SQL语法:
create table tab_name(
	col_a type,
	col_b type, 
	[constraint pk_id] primary key(col_a, col_b)	/* 指定 col_a, col_b 为联合主键 */
); 

示例代码: 创建borrowinfo数据表, 由 bid/ card_id组成联合主键

mysql> create table borrowinfo(
	bid int,
	card_id char(18),
	primary key(bid, card_id)
); 
2.4 添加修改: 数据表内字段的 primary key 主键 SQL 语法:
alter table tab_name modify col_name type primary key;
alter table tab_name add primary key(col_name);
alter table tab_name
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值