MySQL常见约束条件

本文详细介绍了MySQL数据库中的约束条件,包括非空约束、默认约束、唯一约束、检查约束、主键约束和外键约束,并提供了创建和修改表时添加或删除约束的示例。此外,还提到了自增列的使用及其修改方法。内容涵盖了列级和表级约束,以及如何通过ALTER TABLE语句进行约束的管理。
摘要由CSDN通过智能技术生成

MySQL常见约束条件

1、约束条件分类:

1)not null :非空约束,保证字段的值不能为空

     s_name VARCHAR(10) NOT NULL, #非空

2)default:默认约束,保证字段总会有值,即使没有插入值,都会有默认值!

     age INT DEFAULT 18, #默认约束

3)unique:唯一,保证唯一性但是可以为空,比如座位号

  	 s_seat INT UNIQUE,#唯一约束

4)check:检查性约束【MySQL不支持,语法不报错,但无效】

     s_sex CHAR(1) CHECK(s_sex='男' OR s_sex='女'),#检查约束(Mysql无效)

5)primary key :主建约束,同时保证唯一性和非空

     id INT PRIMARY KEY,#主建约束(唯一性,非空)

6)foreign key:外键约束,用于限制两个表的关系,保证从表该字段的值来自于主表相关联的字段的值!

     teacher_id INT REFERENCES teacher(id)   #这是外键,写在列级,Mysql无效

注意

  1. 列级约束
    上面6种约束都可以写,语法都支持,不报错,但外键约束写了mysql无效不起作用

  2. 表级约束
    非空、默认不支持,其他都可以!

    语法:

    其他: 【constraint 约束名】 约束类型(字段名称) ,

    外键: 【constraint 约束名】 约束类型(字段名称) foreign key(字段名称) references 关联表名(其字段名),

DROP TABLE IF EXISTS students;
CREATE TABLE students(
id INT ,
s_name VARCHAR(10) not null,# 非空约束
s_sex CHAR(1) default '男',  # 默认约束
s_seat INT,
age INT ,
teacher_id INT , 
 
#上面是列级约束,下面有表级约束
 
CONSTRAINT pk PRIMARY KEY(id), #主建约束,pk是起的名,后面一样
CONSTRAINT uq UNIQUE(s_seat),  #唯一约束
CONSTRAINT ck CHECK(s_sex='男' OR s_sex='女'), #检查约束
CONSTRAINT fk_students_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(id)  #外键约束
);

2、MySQL修改表时添加或删除约束

即修改表字段的数据类型或约束

外键删除约束: ALTER TABLE 表名 DROP CONSTRAINT 约束名称

  1. 非空约束
alter table students modify column s_name varchar(20) not null; # 添加 
alter table students modify column s_name varchar(20) ;         # 删除 不写约束条件
alter table students modify column age int default 18; #添加
alter table students modify column age;                #删除

2)默认约束

3)唯一键约束

alter table students modify column seat int unique; #添加
alter table students drop index seat;               #删除
show index from students;                           #查看唯一约束

4)主键约束

alter table students modify column id int primary key; #添加
alter table students drop primary key;                 #删除 约束名称

5)外键约束

alter table students add foreign key(major_id) references majors(id); #添加
alter table students drop foreign key fk_students_teacher;         #删除 约束名称

**3、自增长列 **auto_incrementid

id int primary key auto_increment,

一个表中有且只能有一个自增长列,自增长列一般和主键搭配

修改表的时候添加自增长列:

alter table t_indentity modify column id int primary key auto_increment;

删除自增长列:

alter table t_indentity modify column id int;

原文链接:https://blog.csdn.net/qq_42402854/article/details/84714934

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值