前言
今天学习一下mysql
主键又称主码,是表中一列或多列的组合。主键约束要求主键的数据唯一,并且不允许为空。主键能够唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同×××和人间的关系,他们之间是一一对应的,主键分为两种类型:单字段主键和多字段联合主键。
1.单字段主键
单字段主键由一个字段组成,sql语句格式分为以下两种情况。
(1)在定义列的同时指定主键,语法规则如下:
 字段名  数据类型 PRIMARY KEY [默认值]

mysql 5.7 使用主键约束_第1张图片

2)在定义数据表tb_emp2,其主键为id,sql语句如下:
[constraint<约束名>] primary key [字段名]
例:定义数据表tb_emp3,其主键为id,sql语句如下:

mysql 5.7 使用主键约束_第2张图片

使用唯一性约束
唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
唯一性约束的语法规则如下:
(1)在定义完列之后直接指定一个约束,语法规则入下。
字段名  数据类型 unique

例:定义数据表tb_deptl,指定部门的名称唯一,sql语句如下:

使用默认约束
默认约束指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’。

默认规则入下
字段名  数据类型 default 默认值

例:定义数据表tb_temp7,指定员工的部门编号默认为1111,sql语句如下:

mysql 5.7 使用主键约束_第3张图片

以上语句执行成功后,表tb_temp7上的字段deotId拥有了一个默认的值1111,新插入的记录如果没有指定部门的编号,则默认都为1111.


设置表属性值自动增加
下数据库应该中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加auto_increment关键字来实现。默认的,在MySQL中auto_increment的初始值是1,每增加一条记录,字段值自动增加1.一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分。autoincrement约束的字段可以是任何整数类型(tinyint smallin int bigint等)。
设置表属性值自动增加语法规则如下:
字段名  数据类型  auto_increment
例:定义数据表tb_temp8,指定员工编号自动递增,sql语句如下:

mysql 5.7 使用主键约束_第4张图片

上述例子执行后,会创建名称为tb_emp8的数据表。表tb_temp8中的id字段的值在添加记录的时候会自动增加,再插入记录的时候,默认的自增加字段id的值从1开始,每次添加一条新记录,该值自动加1

例子:执行如下语句:

语句执行后,tb_emp8表中增加3条记录,在这里并没有输入id的值,但系统已经自动添加该值,使用select命令查看记录,如图所示。

mysql 5.7 使用主键约束_第5张图片

就到这里!