大家好我是程序员_蓝天, 本文是为了方便初学者能够快速学习MySQL,写的可能不是很好,希望大家多多包涵。 每个赞都是我前进的动力
约束
-
概念&分类
- 约束是作用于表中列上的规则,用于限制加入表的数据
- 约束的存在保证了数据库中数据的正确性、有效性和完整性
-
约束的分类
tips:MySQL 不支持检查约束
3. 非空约束
* 非空约束用于保证列中所有数据不能用 null 值
* 添加约束
```mysql
--创建表时添加非空约束
create table 表名(
列名 数据类型 NOT NULL,
……
);
```
```mysql
--建完表后添加非空约束
alter table 表名 modify 字段名 数据类型 not null;
```
* 删除约束
```mysql
alter table 表名 modify 字段名 数据类型;
```
案例:
```mysql
create table student(
id int PRIMARY KEY auto_increment, --主键自增长
name varchar(10) NOT NULL UNIQUE , --非空且唯一
sex char(1),
birthday date NOT NULL, --非空
score double(5,2) DEFAULT 0, --没有默认0
email varchar(64),
tel varchar(15),
status tinyint
);
```
4. 唯一约束
* 唯一约束用于保证列中所有数据各不相同
* 添加约束
```mysql
--创建表时添加唯一约束
create table 表名(
列名 数据类型 unique auto_increment,
--auto_increment:当不指定值时,自动增长
……
);
```
```mysql
--建完表后添加唯一约束
alter table 表名 modify 字段名 数据类型 unique;
```
* 删除约束
```mysql
alter table 表名 drop index 字段名;
```
5. 主键约束
* 主键是一行数据的唯一标识,要求非空且唯一
* 一张表只能有一个主键
* **auto\_increment : 自增长(数字类型并且唯一约束)**
* 添加约束
```mysql
--创建表时添加主键约束
create table 表名(
列名 数据类型 primary key auto_increment,
--auto_increment:当不指定值时,自动增长
……
);
```
```mysql
--建完表后添加主键约束
alter table 表名 add primary key;
```
* 删除约束
```mysql
alter table 表名 drop primary key;
```
6. 默认约束
* 保存数据时采用默认值
* 添加约束
```mysql
--创建表时添加默认约束
create table 表名(
列名 数据类型 default,
……
);
```
```mysql
--建完表后添加默认约束
alter table 表名 alter set default;
```
* 删除约束
```mysql
alter table 表名 alter 列名 drop default;
```
7. 检查约束
-
外键约束
-
外键用来让两个表之间建立链接,保证数据的一致性和完整性。
-
添加外键约束
--创建表时添外键认约束 create table 表名( 列名 数据类型 , …… [constraint] [外键名称] foreign key(外键列名) references 主表(主表列名) );--创建表后添外键认约束 alter table 表名 add constraint 外键名称 foreign key(外键字段名称) references 主键名称(主表列名称); -
删除外键约束
alter table 表名 drop foreign key 外键名称;案例:
建表时 1.添加sept表 create table emp( id int PRIMARY KEY auto_increment, --主键自增长 name varchar(10) NOT NULL UNIQUE , --非空且唯一 sex char(1), birthday date NOT NULL, --非空 score double(5,2) DEFAULT 0, --没有默认0 dep_id int, --添加外键,关联dept主键 CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id) );--创建表后添外键认约束 alter table emp add foreign key fk_emp_dept foreign key(dept_id) references dept(id);
-
原创-程序员_蓝天