sql - 主键

一、主键

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 主键名

4.SQL主键约束与唯一约束的区别

主键约束不可以为空,唯一约束可为空。但两者不允许出现重复值。

猜你喜欢

转载自www.cnblogs.com/aczy/p/10923812.html