1. 约束的基本介绍
约束用于确保数据库的数据满足特定的商业规则。 在mysql中,约束包括:not null、unique、primary key 、 foreign key 和 check 5种
2. primary key 主键的基本使用
用于唯一的标示表行的数据,当定义主键约束后,该列不能重复。 主键使用的细节讨论:
-
primary key 不能重复而且不能为null -
一张表最多只能有一个主键,但可以是复合主键 -
主键的指定方式有两种:1. 直接在字段名后指定:字段名 primary key / 2. 在表定义最后写 primary key(列名); -
使用 desc 表名,可以看到 primary key 的情况。
!!!在实际开发中每个表往往都有一个主键
3. not null(非空)
如果在列上定义了 not null ,那么当插入数据时,必须为列提供数据。
4. unique(唯一)
当定义了唯一约束后,该列值是不能重复的。
- 如果没有指定 not null ,则 unique 字段可以有多个 null
- 一张表可以有多个 unique 字段
5. foreign key(外键)
用于定义主表和从表之间的关系:外键约束要定义在从表上, 主表则必须具有主键约束或是 unique 约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为 null 细节说明:
- 外键指向的表的字段,要求是 primary key 或者是 unique
- 表的类型是 innodb,这样的表才支持外键
- 外键字段的值,必须在主键字段中出现过,或者为 null 【前提是外键字段允许为 null】
- 一旦建立主外键的关系,数据不能随意删除了。
check
用于强制行数据必须满足的条件,假定在 sal 列上定义了 check 约束,并且要求 sal 列值在 1000-2000 之间如果不在1000-2000 之间就会提示出错。
1.自增长基本介绍
在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长。
示例说明
1.创建表 2. 测试自增长的使用
自增长使用细节:
- 一般来说自增长是和 primary key 配合使用的
- 自增长也可以单独使用【但是需要配合一个 unique】
- 自增长修饰的字段为整数型的(虽然小数也可以但是非常非常少这样使用)
- 自增长默认从 1 开始,你也可以通过如下命令修改 alter table 表名 auto_increment = xxx;
- 如果你添加数据时,给自增长字段(列)指定的有值,则以指定的值为准,后面插入的值在你指定的值以后自增。
- 如果指定了自增长,一般来说,就按照自增长的规则来添加数据,而不自己手动指定。
|