sql主键讨论SQL主键时,它是定义和解释每个不同类型键的良好起点。有主要,外国,独特,候选人,自然和代理钥匙。最合乎逻辑的起点是回答问题“什么是SQL中的关键?”

SQL的新手?成为Udemy.com的数据库表设计主人。

根据SQL标准,键是表中列的子集,它允许唯一标识一行。换句话说,包含一个值或一组值的一列或一组值,这些值对该表边界内的每一行都是唯一的。因此,键可以是标识表中任意一行的一个或多个列。

但是,如果一个键包含的键数超过了标识一行所需的最小键数,那么SQL标准将该键指定为超级键。另一方面,如果一个键包含标识表中单个行所需的最小列数,那么它就是一个最小超级键。

考虑下表:

标题 D.O.B. 电子邮件 位置
经理 罗伯特 棕色(的) 18:03:1968 (电子邮件保护) 伦敦
经理 杰奎琳 黑色的 22:06:1981 (电子邮件保护) 纽约
经理 斯科特 绿色 23:02:1978 (电子邮件保护) 罗马
经理 玛丽 白色 01:09:1980 (电子邮件保护) 巴黎
经理 罗伯特 红色的 05:05:1975 (电子邮件保护) 佛罗里达

在SQL中,超级键是一组列,这些列组合了单行中不同于其他行的值,也就是说,这个组合对于表中的每一行都是唯一的。

表管理器中可能的超级键有;

  1. 姓,
  2. 姓氏D.O.B
  3. 姓,出生日期,电子邮件
  4. 姓,出生日期,电子邮件,地点

在这个小表中,很容易找到惟一的组合,但是在一个有数百万条记录的表中,要找到只匹配一行的惟一的列组合要困难得多。

在上面的示例中,唯一标识一行的可能的最小键是:

最小关键字“电子邮件”是如果表的增长,唯一可能缩放的关键。

了解有关Udemy.com的数据库架构和设计。

什么是自然关键?

自然键由列在表中彼此具有逻辑关系的列组成。在上面的示例中,管理器,姓名,D.O.B,电子邮件和位置具有逻辑关系。因此,随着列已经存在的列,任何这些列的任何关键组成都是自然键。数据库设计器无需在代理键的情况下创建一个列以提供唯一的特征。

代理键是一种人工键,其中列值与表中的其他列没有关系。代理键通常只是设计器添加的一个自定义列,并将一个简单的顺序号作为值保存。当添加新行时,列的行值增加1。通过为表中的每一行提供一个唯一的数字作为标识符,设计者为表创建了一个人工键。表中的每一行都有一个唯一的标识符,无论策略、巧合或增长如何。

在添加代理键后考虑表管理器。

Companyid. 标题 D.O.B. 电子邮件 位置
101 经理 罗伯特 棕色(的) 18:03:1968 (电子邮件保护) 伦敦
102 经理 杰奎琳 黑色的 22:06:1981 (电子邮件保护) 纽约
103 经理 斯科特 绿色 23:02:1978 (电子邮件保护) 罗马
104 经理 玛丽 白色 01:09:1980 (电子邮件保护) 巴黎
105 经理 罗伯特 红色的 05:05:1975 (电子邮件保护) 佛罗里达

通过添加代理键公司ID,设计人员确保该表具有独特的最小密钥,公司ID,无论电子邮件策略还是共享相同的姓名或D.O.B的新员工。通过创建代理键,设计人员现在具有完美的候选者作为表的主要键,其中包含现在成为辅助密钥的其他候选密钥“电子邮件”。

什么是特定类型的键?

在SQL中,有唯一的键,竞争书键,外键和最重要的 - 主键。他们都有共同点的一件事是他们分享了相同的基本原则。它们可以是一个或多个列的构造。他们确实不同的一个区域是他们的目的,尤其是外键。

外键不同于其他关键类型。外部键真的是指向另一个表中唯一密钥的指针。表(a)中的外键引用另一个表(b)中的唯一密钥,该唯一密钥定义链接表的关系。

唯一键就是表中的唯一键。

有一些关于外键和唯一键的基本规则:

选择强大的主要密钥非常重要,因为即使在变化期间也仍然是独一无二的。主键唯一地标识数据库中的每个记录,都需要是唯一的。数据库设计器从现有的强稳定自然键或更常见的常规选手键中选择主键。可以有几个候选人的主键的角色,但只有一个主要选择。出于这个原因,您必须仔细选择右栏。

在Udemy.com了解更多关于SQL和表设计的信息。

SQL中的顶级课程

初学者的SQL与:( PostgreSQL,MySQL,SQL Server)
Bluelime学习解决方案
4.3 (125)
新的
SQL和PostgreSQL:完整的开发人员指南
斯蒂芬格莱德里
4.8 (1,693)
收视率最高
完整的SQL Bootcamp 2021:从零到英雄
何塞Portilla
4.7 (102501)
畅销书
终极MySQL训练营:从SQL初学者到专家
Colt Steele,Ian Schoonover
4.6 (55,946)
畅销书
SQL - 用于数据分析和商业智能的MySQL
365职业
4.6 (29,091)
畅销书
数据科学的主SQL
Imtiaz Ahmad.
4.7 (7816)
高级SQL:SQL Expert认证准备课程
Oracle Master Training•全球90,000多名学生,古典明星学院
4.4 (2,499)
完整的SQL和数据库Bootcamp:零掌握[2021]
Andrei Neagoie, Mo Binni
4.6 (1,665)
SQL for初学者:使用MySQL和数据库设计学习SQL
Tim Buchalka的学习编程学院,Jon Avis - SQL教练
4.5 (13133)
从头开始学习SQL +安全(笔)测试
拉胡尔谢蒂
4.5 (1,681)
畅销书
SQL & PostgreSQL初学者:成为一个SQL专家
Jon Avis - SQL教练
4.6 (3389)
畅销书
与Google大查询的数据科学SQL
克里斯·莱维
4.5 (1,329)

更多SQL课程

SQL学生还学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示