MySQL----约束
Posted 夏洛蒂的手稿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL----约束相关的知识,希望对你有一定的参考价值。
##约束
* 概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。
* 分类:
1、主键约束:primary key
2、非空约束:not null
3、唯一约束:unique
4、外键约束:foreign key
* 非空约束:not null,值不能为null
1、创建表时,添加约束。
2、创建完之后添加非空约束。
3、删除非空约束。
create table lxy.stu( id int, name varchar(20) not null ); /*删除name的非空约束*/ alter table lxy.stu modify name varchar(20); /*创建完表之后添加非空约束*/ alter table lxy.stu modify name varchar(20) not null ;
*唯一约束:unique,值不能重复
/*创建表时,添加唯一约束*/ create table stu( id int, phone_number varchar(20) unique ); /*注意nysql中,唯一约束限定的列的值可以有多个null*/ /*删除唯一约束*/ alter table stu drop index phone_number; /*在创建表之后添加唯一约束*/ alter table stu modify phone_number varchar(20) unique;
*主键约束:primary key
1、注意:
1、含义:非空且唯一
2、一张表只能有一个字段为主键
3、主键就是表中记录的唯一标识
2、在创建表时,添加主键约束
create table stu( id int primary key, /*--给id添加主键约束*/ name varchar(32) ); /*删除主键*/ alter table stu drop primary key; /*创建完表之后,添加主键*/ alter table stu modify id int primary key ;
3、自动增长
1、 概念:如果某一列实数值类型的,使用auto_increment 可以来完成值的自动增长
2、在创建表时,添加主键约束,并且完成主键自动增长
/*创建表时,设置主键的自动增长*/ create table stu( id int primary key auto_increment, phone_number varchar(20) unique );
/*创建表之后添加*/ alter table stu modify id int auto_increment;
3、删除自动增长
/*删除自动增长*/ alter table stu modify id int;
*外键约束:foreign key,让表与表产生关系,从而保证数据的正确性。
1、在创建表时,可以添加外键
* 语法:create table 表名(
...
外键列,
constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称)
);
create table employee( id int primary key auto_increment, name varchar(32), age int, dep_id int, constraint emp_dept_fk foreign key (dep_id) references department (id) );
2、删除外键
/*删除外键*/ alter table employee drop foreign key emp_dept_fk;
3、创建表之后添加外键
/*添加外键*/ alter table employee add constraint emp_dept_fk foreign key (dep_id) references department (id);
4、级联操作
1、添加级联操作
语法:
/*添加外键,设置级联更新*/ alter table employee add constraint emp_dept_fk foreign key(dep_id) references department(id) on update cascade on delete cascade;
2、分类:
1、级联更新:on update cascade
2、级联删除:on delete cascade
以上是关于MySQL----约束的主要内容,如果未能解决你的问题,请参考以下文章
mysql 错误代码1217 MYSQL外键约束检查失败,删除或修改主表记录失败 怎么解决啊
NestedScrollView、LinearLayout 超出约束过度滚动
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段