PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
添加主键约束
CREATE TABLE persons
(
id_p int PRIMARY KEY,
lastname varchar(255),
firstname varchar(255),
address varchar(255),
city varchar(255),
-- CONSTRAINT PRIMARY KEY (id_p)
);
-- ALTER TABLE persons ADD PRIMARY KEY (id_p)
删除主键约束
ALTER TABLE persons DROP PRIMARY KEY
我们通常希望在每次插入新记录时,数据库自动生成字段的值。我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整形,自动增长列必须为键(一般是主键)。
下列 SQL 语句把 “persons” 表中的 “p_id” 列定义为 auto_increment 主键
CREATE TABLE persons
(
p_id int PRIMARY KEY AUTO_INCREMENT,
lastname varchar(255),
firstname varchar(255),
address varchar(255),
city varchar(255)
)
INSERT INTO persons (firstname,lastname) VALUES ('Bill','Gates')
INSERT INTO persons (p_id,firstname,lastname) VALUES (NULL,'Bill','Gates')
ALTER TABLE persons AUTO_INCREMENT=100
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
对列添加默认约束,若不写入该列值,则使用默认值。
CREATE TABLE persons11(
-- 主键
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20),
-- 城市
city VARCHAR(10) DEFAULT '北京'
);