属性和使用ALTER创建的列之间的区别?

时间:2015-02-01 18:02:43

标签: mysql sql oracle

我是SQL新手。我对'attribute'和我们使用'ALTER'创建的自定义列感到困惑。  例如:

ALTER TABLE table_name
ADD column_name datatype

这个'column_name'不是我们表中的新属性吗?

2 个答案:

答案 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的列。

实体和专栏在略有不同的行话中是相同的。