我是SQL新手。我对'attribute'和我们使用'ALTER'创建的自定义列感到困惑。 例如:
ALTER TABLE table_name
ADD column_name datatype
这个'column_name'不是我们表中的新属性吗?
答案 0 :(得分:8)
混淆是由于我们用于逻辑“模型”和数据库实现的术语不同。
在(逻辑)实体关系模型(ERM)中,“实体”具有“属性”。
当我们将模型实现到关系数据库中时,“实体”的“属性”将作为“列”存储在“表”中。
在(已实现的)关系数据库中,“表”包含“列”。
我们将属性添加到实体;我们将列添加到表格中。
(这与标准关系模型有关,并且忽略了在数据库中实现实体 - 属性 - 值(EAV)模型的任何讨论。)
例如:
ALTER TABLE order
ADD COLUMN date_received DATETIME ;
这是在date_received
表中添加列名称为order
的列。
我们添加列,因为在逻辑模型中,“Order”实体的属性为“date received”。
答案 1 :(得分:3)
实体 - 关系设计学科涵盖"实体"具有"属性。"物理层次的RDBMS设计学科涵盖了" table"和#34;列。"实体 - 一个人 - 可能具有"给定名称"的属性。相应的表在RDBMS中称为person
,它将有一个名为given_name
的列。
实体和专栏在略有不同的行话中是相同的。