mysql检查约束怎么写
作者:Walter Garcia翻译:管长龙本文来源:https://www.percona.com/blog/2020/10/02/how-to-use-check-constraint-in-my...
2024.11.20今天来看看MySQL其中三种约束。
约束的作用: 对表中的数据进行限制,保证数据的正确性、有效性、完整性。违反约束的不正确数据,将无法插入到表中。今天先看三种:
1、主键 primary key
2、非空 not null
3、唯一 unique
1、主键约束
1)特点:不重复、唯一、非空
2)语法格式:3种方法添加主键约束
# 方式1CREATE TABLE emp2( eid INT PRIMARY KEY, -- 设置主键 唯一 非空ename VARCHAR(20), sex char(1) )# 方式2CREATE TABLE emp2( eid INT , ename VARCHAR(20), sex char(1), PRIMARY KEY(eid) -- 指定主键为 eid字段 );# 方式3CREATE TABLE emp2( eid INT , ename VARCHAR(20),sex char(1))# 创建的时候不指定主键,然后通过 DDL语句进行设置 ALTER TABLE emp2 ADD PRIMARY KEY(eid);3)主键的自增
自己添加主键很有可能重复。此时使用关键字: AUTO_INCREMENT 表示自动增长(字段类型必须是整数类型,默认值是 1 )。
# 例子,创建主键自增的表 CREATE TABLE emp2( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), sex char(1) );修改起始值,看下面的例子:
# 创建主键自增的表,自定义自增起始值 CREATE TABLE emp2( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), sex char(1) )AUTO_INCREMENT=100;2、非空约束
特点: 某一列不允许为空
语法格式:
# 例子,创建 emp2 表,添加非空约束 enameCREATE TABLE emp2( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20) NOT NULL, sex char(1) );3、唯一约束
特点: 某一列值不能重复,可为空
语法格式:
# 例子,创建emp3表,为 ename 字段添加唯一约束 CREATE TABLE emp3( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20) UNIQUE, sex char(1) );其中,主键约束与唯一约束的区别:
1. 主键约束:唯一且不能够为空。
2. 唯一约束:唯一但是可以为空。
3. 一个表中只能有一个主键,但是可以有多个唯一约束。
作者:Walter Garcia翻译:管长龙本文来源:https://www.percona.com/blog/2020/10/02/how-to-use-check-constraint-in-my...
2024.11.20导读:作为一个数据库的初学者,遇到数据库乱码问题,是一个比较头疼的问题,下面根据我的使用经验,给大家分享几种解决mysql数据库乱码问题的方式,希望对大家有帮助。一、我们需要将默认的字符集更改为utf...
2024.11.20删除约束:alter table 表名 drop constraint 约束名; 新增约束:alter table COUNTER_DATA add constraint TERM_NO_REP_...
2024.11.20IF(expr1,v1,v2)如果 expr1 是TRUE (expr1 0 and expr1 NULL),则 IF()的返回值为v1; 否则返回值则为 v2。IF() 的返回值为数字值或字符...
2024.11.21mysql删除修改记录报错:Cannot delete or update a parent row:a foreign key constraint fails. 外键约束失败mysql删除记录报错...
2024.11.20