📜  SQL – 备用键

📅  最后修改于: 2022-05-13 01:54:41.652000             🧑  作者: Mango

SQL – 备用键

是任何关系数据库的重要组成部分。有各种类型的键,其中之一是备用键。包含成为候选键所需的所有属性的键称为备用键。这些基本上是辅助候选键,可以唯一标识表中的一行。因此,备用键有时也称为“辅助键”。

换句话说,我们可以将备用键定义为除主键之外的一组候选键。一个给定的表可以有许多候选键,数据库管理员从所有这些候选键中只选择一个作为主键。因此,其他不用作主键的候选键是“备用键”。

关于备用键的一些要点如下:

  1. 主键不能是备用键。对于具有必须是主键的单个候选键的表,将不包含任何备用键。
  2. 外键不能是备用键,因为它仅用于引用另一个表。
  3. 备用 Key 应该是唯一的。
  4. 备用键可以是一组单个属性或多个属性。
  5. 它也可以为 NULL。

在本文中,我们将了解如何使用示例表在 SQL 中创建 ALTERNATE 键,如图所示。

示例输入:考虑客户信息表,其中包含有关从电子商务站点购买产品的客户的数据。此表参考产品信息表以了解客户购买的产品的详细信息。用于引用的通用属性是“产品 ID”,也称为外键



         Product Information 
Product IDProduct NamePrice
1001Washing Soap25
1020Shampoo150
1030Notebook200
1045Headphone1000
                                                                  Customer Information
Customer IDCustomer NameEmail AddressShipping AddressPan NumberProduct ID
1Madhulikaabc@gmail.comXYZ-Colony, PatnaXXABX100111030
2Tanmoytdq@gmail.comABC-Colony, GuwahatiDDABX100341001
3Ritikdef@gmail.comXYZ_Street, ChennaiACQBX105551045
4Satadrusm11@gmail.comPark_Street, KolkataZZABX200351045

在客户信息表中,客户 ID、泛号、电子邮件地址是唯一的,因为它可以唯一标识给定表中的一行。 PAN 号码对每个人都是唯一的,客户 ID 也是电子商务网站提供的唯一号码,用于区分在其购物网站上注册的大量客户。

用户只需使用一个电子邮件地址即可在购物网站上注册。如果他/她想使用相同的电子邮件创建另一个帐户,则会显示一条消息, “该电子邮件地址的帐户已存在,请登录”。因此,每个消费者都将拥有一个唯一的电子邮件地址。因此,所有这些属性都可以唯一标识表中的一行。

例如,该电子商务站点的数据库管理员选择客户 ID 作为主键。因此,PAN 号码和电子邮件地址将是备用密钥或辅助密钥。备用键具有成为主键的所有属性,因此是备用选项。

SQL 中的 ALTERNATE 键是使用 SQL 约束UNIQUE定义的。

UNIQUE(col_name(s))

col_name(s): The name of the column(s) in the table which need to be unique.

基本 SQL 查询:

1. 创建数据库

CREATE DATABASE database_name

2. 创建表

CREATE TABLE Table_name(
col_1 TYPE col_1_constraint,
col_2 TYPE col_2 constraint,
col_3 TYPE UNIQUE,
col_4 TYPE REFERENCES Table_Name(col_name),
.....
)

col: The name of the columns.
TYPE: Data type whether an integer, variable character, etc
col_constraint: Constraints in SQL like PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES, etc.
col_3: Definining an ALTERNATE KEY using constraint UNIQUE
col_4: Definining an FOREIGN KEY using constraint REFERENCES

3. 插入表格

INSERT INTO Table_name
VALUES(val_1, val_2, val_3, ..........)

val: Values in particular column

4. 查看表格

SELECT * FROM Table_name

输出 :

产品表

客户表

下表显示了所有键的图示:

钥匙