操作MySQL表的约束
1,MySQL 支持的完整性约束
所谓的 完整性是指数据的准确性和一致性,而完整性检查是指检查数据的准确性和一致性,MySQL数据库管理系统提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。
完整性 约束
完整性约束关键字 | 含义 |
---|---|
NOT NULL | 约束字段的值不能为空 |
DEFALT | 设置字段的默认值 |
UNIQUE KEY (UK) | 约束字段的值是唯一 |
PRIMARY KEY(PK) | 约束字段为表的主键,可以作为该表记录的唯一标识 |
AUTO_INCREMENT | 约束字段的值为自动增加 |
FOREIN KEY(FK) | 约束字段为表的外键 |
在上表 显示的完整性约束中,MySQL 数据库管理系统不支持check约束,即可以使用check约束但是却没有任何效果。根据约束数据列限制,约束可分为:单列约束,即每个约束只约束一列数据;多列约束,即每个约束可以约束多列数据。
2,设置非空约束(NOT NULL,NK)
当数据库表中的某个字段上的内容不希望设置为NULL时,则可以使用NK约束进行设置。即NK约束在创建数据库表时为某些字段加上“NOT NULL”约束条件,保证所有记录中该字段都有值。如果用户插入的记录中,该字段为空值,则数据管理系统会报错。
设置表中某字段的NK约束非常简单,查看帮助文档可以发现,在MySQL数据库管理系统中通过SQL语句NOT NULL 来实现,其语法形式如下:
# 设置 非空约束
create table table_name(
属性名 数据类型 NOT NULL,
... ...
);
在上述语句中,属性名参数表示所要设置非空约束的字段名字。
实际案例: 执行SQL 语句 NOT NULL ,在数据库company 中创建表t_dept时,设置deptno字段为 NK 约束。具体步骤如下:
(1)执行SQL语句 **create database **,创建数据库 company,具体SQL语句如下:
create database company;
use company;
执行上述 代码 运行结果如下:
(2)执行SQL语句create table,创建表t_dept,具体SQL语句如下:
create table t_dept(
deptno int(20) NOT NULL,
dname varchar(20),
loc varchar(40)
);
代码说明上述语句中创建表t_dept时,通过SQL语句 NOT NULL 设置字段deptno为NK约束。
(3)为检验数据库company中t_dept表中字段deptno是否被设置为NK约束,执行SQL语句DESC ,具体SQL语句如下:
desc t_dept
根据查看的显示结果,t_dept中字段deptno已经被设置为NOT NULL约束,如果用户插入的记录中,该字段为空值,则数据库管理系统会报如下的错误。
在查看具体内容前先插入一组数据
insert into t_dept
values (1,'kaifa','4f');
** 插入正常数据显示**
注意 :数据库在起初设计的时候对数据的类型和长度有明确的要求,因此当我们在 插入新数据的时候一定要提前处理好 不然的话就会报错!
有人说 那我 如果在 非空限制中 插入一个0 报错吗?答案是:不会
请看演示:
学完 非空限制接下来我们继续学习下一个限制!!!
主键约束(PRIMARY KEY ,PK)
学完 非空限制接下来我们继续学习下一个限制!!!