目录
2.1 AUTO_INCREMENT配合PRIMARY KEY使用
1 MySQL自动编号
关键字:ANTO_INCREMENT
(1)自动编号,且必须与主键组合使用。
(2)默认情况下,起始值为1,每次增加量为1。
错误示例:
CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(20) NOT NULL
);
这里需要主键约束的知识。
2 MySQL 主键约束
2.1 AUTO_INCREMENT配合PRIMARY KEY使用
关键字:PRIMARY KEY;
(1)主键约束,每张表只能存在一个主键。
(2)主键保证记录的唯一性。
(3)主键自动为NOT NULL。
注意:AUTO_INCREMENT 必须和主键一块使用,但是主键不一定要和AUTO_INCREMENT一起使用。
继续tb3中AUTO_INCREMENT的创建
CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL
);
插入四条记录:
INSERT tb3(username) VALUES("Tom");
INSERT tb3(username) VALUES("John");
INSERT tb3(username) VALUES("Rose");
INSERT tb3(username) VALUES("Dilitar");
2.2 PRIMARY KEY单独使用
例子:创建一个不使用AUTO_INCREMENT主键约束的表
CREATE TABLE tb4(
id SMALLINT UNSIGNED PRIMARY KEY,
username VARCHAR(20) NOT NULL
);
对主键赋值,但不允许赋相同的值。
INSERT tb4 VALUES(4,"John");
INSERT tb4 VALUES(22,"Tom");
3 MySQL 唯一约束
关键字:UNIQUE KEY
(1)唯一约束可以保证记录的唯一性。
(2)唯一约束的字段可以为空值(NULL)。
(3)每张数据表可以存在多个唯一约束。
创建UNIQUE KEY字段。
CREATE TABLE tb5(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED
);
插入记录:
INSERT tb5(username,age) VALUES("Tom",22);
若插入两条“Tom”则会报错。
4 MySQL 默认约束
关键字:DEFAULT
默认值:当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
例子:创建一个默认约束的数据表
CREATE TABLE tb6(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3') DEFAULT '3'
);
SHOW COLUMNS FROM tb6;
插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
INSERT tb6(username) VALUES("Tom");
SELECT * FROM tb6;
整理自:MySQL 初始默认约束