1、设置主键
1.1、什么是主键?
主键是在多条记录中用于确定一条记录时使用的标识符。
主键准备以下特征:
- 没有重复的值。
- 不允许输入空值(NULL)。
1.2、创建主键
格式:
CREATE TABLE 表名(列名 数据类型 PRIMARY KEY ...);
演示:
项目Key中显示PRI表示主键PRIMARY KEY。另外在项目NULL中,列a显示为NO,这表示不允许输入NULL,即不允许输入空值。
2、设置唯一值
格式:
CREATE TABLE 表名(列名 数据类型 UNIQUE ...);
演示:
项目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...);
演示:
在通过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('寅');
演示:
如果想把所有的记录都删除掉,并且让编号从1开始连续输入(初始化),就需要按照下面的方式对AUTO_INCREMENT的值进行初始化。
格式:
ALTER TABLE 表名 AUTO_INCREMENT=1;
3.4、其他RDBMS中自动连续编号功能的位置
Oracle中可以使用CREATE SEQUENCE等命令,通过创建能够自动生成等间隔的数值的序列(SEQUENCE)来实现自动连续编号功能。另外,PostgreSQL中有可以生成连续编号的数据类型SERIAL。但是在使用SERIAL的情况下,实际上是通过序列功能来生成连续编号的。
4、设置列的默认值
格式:
CREATE TABLE 表名 (列名 数据类型 DEFAULT 默认值..);
5、创建索引
格式:
CREATE INDEX 索引名 ON 表名 (列名);
演示:
6、显示索引
格式:
SHOW INDEX FROM 表名;
演示:
7、删除索引
格式:
DROP INDEX 索引名 ON 表名;
演示: