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

6

我刚开始学SQL。我对“属性”和我们使用“ALTER”创建的自定义列感到困惑。 例如:

ALTER TABLE table_name
ADD column_name datatype

这个“column_name”难道不应该成为我们表格中的新属性吗?

1
你认为“属性”是什么?表格由列组成,无论该列是如何创建的。 - user330315
我没听懂你的意思...我的意思是column_name是表的属性吗? - Abhilash Murali
2
column_name 是列的名称。 - user330315
现在我明白了..谢谢 :) - Abhilash Murali
通过以两个不同的层次思考来消除混淆:1“逻辑”模型,描述实体(人、地点、事件、概念和要存储信息的物品),独立于实现细节,以及 2 物理实现将逻辑模型转换为关系数据库表。 - spencer7593
2个回答

9
混淆是由于我们在逻辑“模型”和数据库实现中使用术语的差异所致。
在(逻辑)实体关系模型(ERM)中,“实体”具有“属性”。
当我们将模型实现到关系数据库中时,“实体”的“属性”被存储为“表格”中的“列”。
在(已实现的)关系数据库中,一个“表格”包含“列”。
我们向实体添加“属性”;我们向表格添加“列”。
(这涉及标准关系模型,并忽略在数据库中实现实体-属性-值(EAV)模型的任何讨论。)
例如:
ALTER TABLE order
  ADD COLUMN date_received DATETIME ;  

这是向order表添加一列,列名为date_received

我们添加该列,因为在逻辑模型中,“订单”实体具有“接收日期”的属性。


3
实体-关系设计学科涵盖了具有属性的“实体”。物理层RDBMS设计学科则涵盖“表”和“列”。一个实体——一个人——可能有一个“名字”的属性。在RDBMS中,相应的表将被称为person,它将有一个名为given_name的列。实体和列是略微不同的术语,但指的是同一件事。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接