📅  最后修改于: 2023-12-03 14:40:40.129000             🧑  作者: Mango
在数据库管理系统(DBMS)中,键(Key)用于唯一标识一个关系表中的行(Row)。以下是DBMS中常用的键的详细介绍。
主键是一列或多列,用于唯一标识一个关系表中的每一行。主键的值必须是唯一的,不能为NULL(空值)。主键可以由一个或多个列组成。当一个表有多列组成主键时,这个组合主键又叫做复合主键。主键的值不能被更改和删除。
在建表时,可以如下设置主键:
CREATE TABLE table_name
(
column1 datatype null/not null PRIMARY KEY,
column2 datatype null/not null,
...
);
其中 column1
是主键列。在设置主键时,必须指定是 null
还是 not null
。
外键是指在一个表中,用于关联另一个表中的一列(或多列)的列。外键是用来维系表与表之间的关系的,建立外键约束可以用来维护参照完整性。
在建表时,可以如下设置外键:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
FOREIGN KEY (column1) REFERENCES other_table (column)
);
其中,column1
是外键,other_table
是被关联的表,column
是被关联的表的列名。
唯一键是指在一个关系表中,对一列或多列数据进行唯一性约束。唯一键的值可以为空,但只能有一个空值。唯一键允许NULL(空值)的存在,但要求其中的非空值是唯一的。
在建表时,可以如下设置唯一键:
CREATE TABLE table_name
(
column1 datatype null/not null UNIQUE,
column2 datatype null/not null,
...
);
辅助键是指在一个关系表中,可以为某些用于经常用于查询的列建立索引,以提高查询效率。辅助键可以是一个或多个列。与主键不同,辅助键没有唯一性约束。
在建表时,可以如下设置辅助键:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
INDEX (column1, column2)
);
代理键是指在关系表中,用于替代自然关键字的虚构列。代理键是由DBMS自动生成的列,用于确保每行的唯一性。通常代理键是一个自增的整型数。
在建表时,可以如下设置代理键:
CREATE TABLE table_name
(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
column1 datatype null/not null,
column2 datatype null/not null,
...
);
以上就是DBMS中的部分,唯一,辅助,复合和代理键的详细介绍。根据实际需要,合理选择不同类型的键可以有效地优化查询性能和保证数据完整性。