MySQL 中的约束及相关操作

109 篇文章 155 订阅

微信公众号:IT邦德,更多资料,请多关注
在这里插入图片描述
1 约束类型
约束主要完成对数据的检验,保证数据库数据的完整性,如果有相互依赖数据,保证该数据不被删除

常用五类约束:

  1. not null:非空约束,指定某列不为空
  2. unique: 唯一约束,指定某列或几列组合的数据不能重复
  3. primary key:主键约束,指定某列或几列组合的数据非空且唯一
  4. foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
  5. check:检查,指定一个表达式,用于检验指定数据

根据约束数据列限制,约束可分为:
单列约束:每个约束只约束一列
多列约束:每个约束约束多列数据
NOT NULL和DEFAULT只存在列级约束

create table temp(
id int auto_increment,
name varchar(20),
age int,
primary key(id),
/*check 约束*/
check(age > 20)
);

上面 check 约束要求 age 必须大于 20,在 mysql 8.0 之前但没有任何作用。但是创建 table 的时候没有任何错误或警告,在 MySQL8.0.16 中,check 约束已经起作用了。

2.相关操作命令
2.1 添加单列

ALTER TABLE student ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;   // 添加到最后面    		 ALTER TABLE student ADD password VARCHAR(20) NOT NULL AFTER name;     //添加到name后
ALTER TABLE student ADD truename VARCHAR(20) NOT NULL FIRST;    //添加到最前面     
SHOW COLUMNS FROM student;

2,.2 添加多列

ALTER TABLE tbl_name ADD [COLUMN](col_name, col_definition,...)
不能指定位置,直接添加到所有字段最后

删除列

语法:ALTER TABLE tbl_name DROP [COLUMN] col_name;
ALTER TABLE users1 DROP truename;
ALTER TABLE users1 DROP password, DROP age, ADD ...; // 操作用逗号分开

添加唯一约束及删除

ALTER TABLE users2 ADD UNIQUE (username);
SHOW INDEXES FROM users2\G;   //查看唯一约束名字
ALTER TABLE users2 DROP INDEX username;

添加主键及删除

ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY(id); 
//添加约束并制定约束名为PK_users2_id
ALTER TABLE users2 DROP PRIMARY KEY;
// 执行后id的主键约束没有,username的唯一约束变为主键约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT邦德

客户部署资料,步骤超详细

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值