表的约束
- 1. 约束的基本概念
- 2. 空属性
1. 约束的基本概念
约束是什么?——本质上是MySQL通过限制用户操作的方式来达到维护数据本身的权限,完整性的一套方案。约束可能会有很多种方式。在数据库管理系统中,约束是指对数据库中表和字段数据进行约束和限制的规则。它们是为了确保数据的完整性、正确性以及合规性,避免出现不符合预期的错误或异常数据。
为什么要有约束?——本质上MySQL是一套数据存储解决方案,除了解决基本的数据存储功能外,还要保证数据尽可能的安全,减少用户的误操作可能性。就像日常生活中的规则和规范一样,约束帮助我们防止做错事,确保事物按照一定的规则正常运作。
假设你在一个公司负责管理文件资料。在这个过程中,你需要为每个文件设置一些规则来确保它们正确存放和使用,避免文件损坏或丢失。类似于数据库中的约束,文件管理的规则可以包括:
1、文件只能存放在特定的文件夹内:就像数据库中的 NOT NULL 约束,确保每个文件都有存放位置(不为空)。
2、某个文件夹下的文件名不能重复:就像数据库中的 UNIQUE 约束,确保每个文件都有唯一的标识符。
3、文件格式需要符合特定标准:类似于数据库中的 CHECK 约束,确保文件类型符合要求(如只允许某些格式)。
4、每个文件都有创建时间:就像数据库中的 DEFAULT 约束,自动为每个文件设置创建日期。
5、某个文件夹内的文件一定要有特定的访问权限:类似于数据库中的 PRIMARY KEY,文件有严格的权限验证,不能随便修改或删除。
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。
表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。
2. 空属性
两个值:null(默认的)和not null(不为空)
数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。
MySQL中的关键字大小写不敏感。
mysql> select null;
+------+
| NULL |
+------+
| NULL |
+------+
1 row in set (0.00 sec)mysql> select 1+null;
+--------+
| 1+null |
+--------+
| NULL |
+--------+
1 row in set (0.00 sec)