mysql中的四种约束

mysql中的约束

概念:对表中的数据进行限定,保证数据的正确性、有效性、完整性。
分类:

1. 主键约束:primary key
2. 非空约束:not null
3. 唯一约束:unique
4. 外键约束:foreign key

*非空约束:not null 值不能为null

1.创建表时添加约束
CREATE table stu(
id INT,
name VARCHAR(20) not null-- NAME 为非空
);
2.-- 删除name的非空约束
alter table stu MODIFY NAME VARCHAR(20);
3.-- 创建表完后,添加非空约束
alter table stu MODIFY NAME VARCHAR(20) not NULL;
*唯一约束:unique,值不能重复

-添加唯一约束 UNIQUE

CREATE table stu( 
id INT,
phone_number INT UNIQUE-- 添加唯一约束
);
-- 注意mysql中唯一约束限定列的值可以有多个null
-- 删除唯一约束
 alter table stu drop INDEX phone_number; 
ALTER TABLE `tpd_river_djdh_d` DROP INDEX djdhuniqe
-- 在创建表后,添加唯一约束
alter table stu MODIFY phone_number UNIQUE;

*主键约束:primary key

1.注意:
	1.含义:非空且唯一
	2.一张表只能有一个字段为主键
	3.主键就是表中记录的唯一标识
2.在创建表时添加主键
Create table stu(
Id int primary key,
Name varchar(20)
);
3.-- 删除主键
alter table stu MODIFY PRIMARY KEY;
4.-- 创建完表后,添加主键
ALTER TABLE stu MODIFY id int PRIMARY key;
5.自动增长
	1.概念:如果某一列是数值类型,使用 auto_increment 可以来完成值得自动增长
	2.在创建表时添加主键,并且完成主键自增长
--Create table su(
Id int primary key  auto_increment, --给id添加主键并自动增长
Name varchar(20)
);
-- 删除自动增长
ALTER table su MODIFY id INT;
-- 添加自动增长
ALTER table su MODIFY id INT auto_increment;

*外键约束:foreign key ,让表与表产生关系

在创建表时,可以添加外键,从而保证数据的正确性
1.语法:
Create table 表名(..
外键列
Constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
举例:create table department( -- 部门表
id int PRIMARY KEY auto_increment,
dep_name VARCHAR(30),
dep_location VARCHAR(30)
);
CREATE table employee(  -- 员工表
id int PRIMARY KEY auto_increment,
name VARCHAR(20),
age INT,
dep_id INT,   -- 外键对应主表的主键
CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES department(id)
);
2.删除外键
ALTER table 表名 drop FOREIGN KEY 外键名称
3.创建表之后,添加外键
ALTER table 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) 		REFERENCES 主表名称(主表列名称);
4.级联
	1.-- 添加外键,并且设置级联更新
	ALTER table employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES department(id) on UPDATE CASCADE
--删除级联;
ALTER table employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) 	REFERENCES department(id) on delete CASCADE
	2.分类
		1.更新:on UPDATE CASCADE
		2.删除:on delete CASCADE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值