我想问个问题是SQL中,主键和外键 是什么意识有什么用。?

说实话,在处理数据库的时候,主键和外键确实让人很困惑。
当我刚开始学习时,我一直认为主键是一个“非常重要”的标志,但后来我发现它更像是给每条记录附加一个唯一的条形码。

以身份证为例。
我之前在HR系统中做过一个项目,他们将员工ID号设置为主键。
说实话,这招实在是太残忍了。
一旦有人想偷偷复制别人的数据,就直接卡在身份证号上。
然而,也存在问题。
例如,当ID号发生变化或需要脱敏时,主密钥的稳定性就成为一个大问题。

有趣的是外键,它就像数据表之间的“欠条”。
我面临着一个陷阱。
在连锁商店系统中,产品表和商店表之间使用外键关系。
这样一来,某个分支机构直接从总部复制产品ID并使用。
这样很不方便——当总公司更新某种产品的价格时,所有分公司都会相应改变,从而无法管理。
然后,他们通过使用自动升级ID和映射表解决了这个问题。

归根到底,关键是“独立”,靠自己就能做到独一无二;外键是“依赖的”,它们必须得到其他表的支持。
例如,如果工资单表没有相应的人员表 ID 作为外键,则该工资单记录可能是“匿名”工资单。
不过,也有例外。
有些数据库使用ON DELETE CASCADE,这意味着当有人退出时,相关的工资记录会自动删除。
这是否被视为一种“数据库恐怖主义”?

请问一下SQL中的主键和主外键的区别和联系是什么?

嗯,是的,主键和外键,这个问题应该了解清楚。
比如说2 02 2 年,我还在北京那家公司工作,做数据库的工作。
当时我拿了一个项目,用户表,用户表中的列叫ID,是自动添加的。
这是唯一标识用户的主键。
比如用户kaka,ID是1 ,对吧。

那么这个用户kaka属于哪个班级呢?你应该有另一个表,部门表,部门表。
该表有一个 ID,即主键。
例如,如果部门ID为1 ,则表示“开发部门”。

在用户表中,如果要链接部门,不能直接写“开发部门”,这样不行。
您只需输入外键表的 ID。
这个1 指的是Dept表中ID为1 的记录,该记录的名称是“开发部”。
克服它。
外键告诉你这个用户属于哪个部门,可以通过部门表ID找到。
1 kaka1 部门表iddeptName1 develop,你看,kaka dept是1 ,而部门表中id 1 是development,对吧。

当时我很困惑。
当我第一次开始这样做时,我将外键设置为“Delete Cascade”。
就因为这个,删除了一个版块,很多用户也随之被删除,这让我很震惊。
稍后我发现我需要将其添加到级联或将其设置为空。

外键保证数据联动且不可篡改。
没有卡卡你就不能上课。
Dept表中没有该ID对应的类,所以这样不行。
数据库会报错,或者设置为空的话数据库会为空。

就是这样。
你明白吗?

什么是主键和外键?

这是一个陷阱:不要使用一个属性作为主键。
2 02 3 年,公司系统因单一主键崩溃。