1、设置主键

1.1、什么是主键?

主键是在多条记录中用于确定一条记录时使用的标识符。

主键准备以下特征:

  1. 没有重复的值。
  2. 不允许输入空值(NULL)。

1.2、创建主键

格式:

CREATE TABLE 表名(列名 数据类型 PRIMARY KEY ...);

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_mysql 创建表的主键自增sql

项目Key中显示PRI表示主键PRIMARY KEY。另外在项目NULL中,列a显示为NO,这表示不允许输入NULL,即不允许输入空值。

2、设置唯一值

格式:

CREATE TABLE 表名(列名 数据类型 UNIQUE ...);

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_mysql_02

项目NULL显示为YES,即允许在列中输入空值但不允许重复。

唯一键虽然不允许列中有重复值,但允许输入NULL。

3、使列具有自动连续编号功能

3.1、具有自动连续编号功能的列的定义

要使列具有自动连续编号功能,就得在定义列的时候进行以下3项设置。

(1)数据类型为INT等整数类型

具有自动连续编号功能的列必须为INT、TINYINY和SMALLINT等整数类型。既然是连续编号,自然为整数。

(2)加上AUTO_INCREMENT

要给数据类型INT加上关键字AUTO_INCREMENT。它用于声明连续编号。

(3)设置PRIMARY KEY,使列具有唯一性

具有自动连续编号功能的列需要具有唯一性,我们可以设置PRIMARY KEY使其变成主键。

另外,设置为AUTO_INCREMENT的列自然是不允许重复的(唯一的状态)。这样的列非常适合作为主键使用。

3.2、创建具有自动连续编号功能的列

格式:

CREATE TABLE 表名 (列名 数据类型 AUTO_INCREMENT PRIMARY KEY...);

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_mysql 创建表的主键自增sql_03

在通过DESC命令显示的内容中,项目Key显示为PRI,它表示主键PRIMARY KEY。另外,项目Extra显示为auto_increment,它表示设置了自动连续编号功能。 

3.3、使用自动连续编号功能插入数据

执行下面的命令。

INSERT INTO t_series (b) VALUES('子');
INSERT INTO t_series (b) VALUES('丑');
INSERT INTO t_series (b) VALUES('寅');

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_关系型数据库_04

如果想把所有的记录都删除掉,并且让编号从1开始连续输入(初始化),就需要按照下面的方式对AUTO_INCREMENT的值进行初始化。

格式:

ALTER TABLE 表名 AUTO_INCREMENT=1;

3.4、其他RDBMS中自动连续编号功能的位置

Oracle中可以使用CREATE SEQUENCE等命令,通过创建能够自动生成等间隔的数值的序列(SEQUENCE)来实现自动连续编号功能。另外,PostgreSQL中有可以生成连续编号的数据类型SERIAL。但是在使用SERIAL的情况下,实际上是通过序列功能来生成连续编号的。

4、设置列的默认值

格式:

CREATE TABLE 表名 (列名 数据类型 DEFAULT 默认值..);

mysql 创建表的主键自增sql mysql创建表设置主键_sql_05

5、创建索引

格式:

CREATE INDEX 索引名 ON 表名 (列名);

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_sql_06

6、显示索引

格式:

SHOW INDEX FROM 表名;

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_关系型数据库_07

7、删除索引

格式:

DROP INDEX 索引名 ON 表名;

演示:

mysql 创建表的主键自增sql mysql创建表设置主键_数据库_08