表的约束
约束的作用就是通过一定的手段限制别人不要向表中乱写入数据,数据类型就是约束条件的一种。比如往bit类型列插入字符串这种错误的行为就会被约束。
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。
常见的表的约束有,空属性,默认值,列描述,主键,唯一键,外键约束等等。
空属性
空属性有两个值:
null
允许为空not null
不允许为空- 数据库默认字段基本都是允许为空的,但在实际开发中我们要尽可能保证字段不为空,因为空值无法参与运算。
如果要让某个字段不允许为空,在创建表的时候就可以给对应字段设置not null属性。
使用示例
- 创建一个用户表,包含用户姓名和性别。
在正常的逻辑角度上,每个人都有姓名和性别,所以这里可以将他们设置为非空属性。
create table user_tb(
name varchar(20) not null,
sex set('男','女') not null
]);
插入数据时,必须插入姓名和性别,只插入一个就会错误。
默认值
和C++语言的缺省值是一样的。
- 如果某一个字段会经常性的出现某个值,那么就可以考虑将这个值设置成该字段的默认值。
- 向表中插入数据时如果不给带有默认值的字段赋值,那么就会使用默认值进行插入。
使用示例
创建一个用户表,性别默认是男,不指定插入就是不男的。
create table user_tb(
name varchar(20) not null,
sex char(2) default '男'
);
向表中添加数据