一、主键
1.定义
主键(primary key) 一列(或一组列),其值能够唯一区分表中的每个行。
唯一标识表中每行的这个列(或这组列)称为主键。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只设计相关的行。
2.充当主键的条件
任何两行都不具有相同的主键值。
每个行都必须具有一个主键值(主键列不允许NULL值)。
3.创建、增加、删除主键
(1)新建表时直接创建主键
CREATE TABLE table_test(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
address VARCHAR(20),
PRIMARY KEY(id)
);
(2)新建表时创建复合键(主键字段不能包含NULL)。
CREATE TABLE table_test(
user_id INT NOT NULL,
user_name VARCHAR(20) NOT NULL,
user_address VARCHAR(20),
PRIMARY KEY (user_id, user_name)
);
(3)为已建好的表创建主键(主键列必须不能为NULL)
CREATE TABLE table_test(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
address VARCHAR(20)
);
ALTER TABLE table_test ADD PRIMARY KEY (id);
(4)为已建好的表创建复合键(主键字段不能包含NULL)
CREATE TABLE table_test(
user_id INT NOT NULL,
user_name VARCHAR(20) NOT NULL,
user_address VARCHAR(20)
);
ALTER TABLE table_test ADD CONSTRAINT id PRIMARY KEY (user_id, user_name);
或 alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)--
或 alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……) 添加非聚集索引的主键
(5)删除主键
ALTER TABLE table_test DROP PRIMARY KEY ;
或 alter table 表名 drop constraint 主键名