📜  DBMS中的部分,唯一,辅助,复合和代理键(1)

📅  最后修改于: 2023-12-03 14:40:40.129000             🧑  作者: Mango

DBMS中的部分,唯一,辅助,复合和代理键

在数据库管理系统(DBMS)中,键(Key)用于唯一标识一个关系表中的行(Row)。以下是DBMS中常用的键的详细介绍。

主键(Primary Key)

主键是一列或多列,用于唯一标识一个关系表中的每一行。主键的值必须是唯一的,不能为NULL(空值)。主键可以由一个或多个列组成。当一个表有多列组成主键时,这个组合主键又叫做复合主键。主键的值不能被更改和删除。

在建表时,可以如下设置主键:

CREATE TABLE table_name
(
    column1 datatype null/not null PRIMARY KEY,
    column2 datatype null/not null,
    ...
);

其中 column1 是主键列。在设置主键时,必须指定是 null 还是 not null

外键(Foreign Key)

外键是指在一个表中,用于关联另一个表中的一列(或多列)的列。外键是用来维系表与表之间的关系的,建立外键约束可以用来维护参照完整性。

在建表时,可以如下设置外键:

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 是被关联的表的列名。

唯一键(Unique Key)

唯一键是指在一个关系表中,对一列或多列数据进行唯一性约束。唯一键的值可以为空,但只能有一个空值。唯一键允许NULL(空值)的存在,但要求其中的非空值是唯一的。

在建表时,可以如下设置唯一键:

CREATE TABLE table_name
(
    column1 datatype null/not null UNIQUE,
    column2 datatype null/not null,
    ...
);
辅助键(Secondary Key)

辅助键是指在一个关系表中,可以为某些用于经常用于查询的列建立索引,以提高查询效率。辅助键可以是一个或多个列。与主键不同,辅助键没有唯一性约束。

在建表时,可以如下设置辅助键:

CREATE TABLE table_name
(
    column1 datatype null/not null,
    column2 datatype null/not null,
    ...
    INDEX (column1, column2)
);
代理键(Surrogate Key)

代理键是指在关系表中,用于替代自然关键字的虚构列。代理键是由DBMS自动生成的列,用于确保每行的唯一性。通常代理键是一个自增的整型数。

在建表时,可以如下设置代理键:

CREATE TABLE table_name
(
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    column1 datatype null/not null,
    column2 datatype null/not null,
    ...
);

以上就是DBMS中的部分,唯一,辅助,复合和代理键的详细介绍。根据实际需要,合理选择不同类型的键可以有效地优化查询性能和保证数据完整性。