Sql 简明教程

SQL - Alternate Key

The SQL Alternate Key

数据库表中的 SQL Alternate Keys 是目前未选作主键的候选键。它们可用于唯一识别表中的元组(或记录)。

没有特定的查询或语法用于在表中设置备用键。它只是一个接近的二级候选键,可以选作主键。因此,它们也称为次要候选键。

让我们通过一个例子理解备用键的概念。假设我们有一个名为 CUSTOMERS 的表,其中包含 ID、NAME、AGE、AADHAAR_ID、MOBILE_NO 和 SALARY 等不同字段,如下所示:

alternate 1

像客户的 id、手机号码和 aadhaar 号码之类的详细信息是唯一的,我们可以使用其各自的字段(ID、AADHAAR_ID 和 MOBILE_NO)唯一识别 CUSTOMERS 表中的记录。因此,这三个字段可以被视为备选键。

在这些字段中,如果有一个被声明为 CUSTOMERS 表的主键,那么剩下的两个将是备用键。

Features of Alternate Keys

以下是备用键的一些重要性质/特征 −

  1. 备用键不允许重复的值。

  2. 一个表可以有多个备用键。

  3. 备用键可以包含 NULL 值,除非明确设置 NOT NULL 约束。

  4. 所有备用键都可以是候选键,但并非所有候选键都是备用键。

  5. 主键(也是候选键)不能被视为备用键。

Example

为了更好地理解,让我们创建上述讨论的表,演示各种键的使用并说明可被视为备用键的字段。

CREATE TABLE CUSTOMERS(
   ID INT,
   NAME VARCHAR (20),
   AGE INT,
   AADHAAR_ID BIGINT,
   MOBILE_NO BIGINT,
   SALARY DECIMAL (18, 2),
   PRIMARY KEY(ID)
);

现在,使用 INSERT 语句向 CUSTOMERS 表中插入一些记录,如下所示 −

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 90123498456, 9023456789, 22000.00 ),
(2, 'Khilan', 25, 91123249545, 9032456578, 24500.34 ),
(3, 'Kaushik', 23, 91223242546, 9012436789, 20000.12 );

该表将被创建为:

ID

NAME

AGE

AADHAAR_ID

MOBILE_NO

SALARY

1

Ramesh

32

90123498456

9023456789

22000.00

2

Khilan

25

91123249545

9032456578

24500.34

3

Kaushik

23

91223242546

9012436789

20000.12

Keys in a table

总结一下,让我们重新审视一下数据库表中的所有键 −

Candidate Key

Candidate key 是超级键的子集,用于唯一标识表中的记录。它可以是单个字段或多个字段。表中的主键、备用键和外键都是候选键的类型。

Primary Key

Primary Key 是用于从表中检索记录的主键。它是一个表中的单个列或字段,可唯一标识数据库表中的每条记录。

在使用 CREATE TABLE 语句创建表时可以使用 PRIMARY KEY 关键字进行设置。以下是针对表中的列创建主键约束的基本语法 −

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY(column_name)
);

Foreign Key

一个表的主键是另一个表中的 Foreign key 。在向这些表中插入值时,主键字段中的值必须与外键字段中的值匹配;否则,外键列不会接受 INSERT 查询并抛出错误。

在 SQL 服务器中,在表中设置外键字段的语法是 −

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    CONSTRAINT fk_name
	FOREIGN KEY (column_name)
	REFERENCES referenced_table(referenced_column)
);

Alternate Key

Alternate key 是可以作为主键但实际上不是主键的候选键。与主键相同,它还可以唯一标识表中的字段中的记录,以便从所述表中检索行元组。在一个表中,可以有一个或多个字段标识为备用键。