SQL-92 用点运算符选择

SQL-92 Selecting with the dot operator

在它被标记为重复之前,我不是问如果我必须完全指定它,我是为什么指定它无关紧要。希望能解决这个问题。现在回答问题。

我是 SQL 的新手,所以我不确定是否有一些技术术语。

假设我有一个包含 table 的数据库:订单和客户。

订单有类别:OrderID、CustomerID 和 OrderDate

客户有类别:CustomerID、CustomerName、ContactName 和 Country

然后我有一个 SQL 查询:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

所以我 selecting Orders.OrderIDCustomers.CustomerNameOrders.OrderDate FROM Orders table。如果是来自订单table,为什么在select中的OrderIDOrderDate之前指定Orders.这个是一个网站的例子,并没有解释这个。我不确定它是否与连接(在示例中)有关,所以这就是为什么我也将它放在标签中的原因。

-谢谢

有时在两个 table 中都可以找到列名,您的 DBMS 将抛出一个错误,指出该列不明确。明确声明您希望商品来自哪个 table 通常是个好主意。

使用别名通常会使代码更易于阅读和编写:

SELECT ord.OrderID, cus.CustomerName, ord.OrderDate
FROM Orders ord
INNER JOIN Customers cus ON ord.CustomerID=cus.CustomerID;

这些 table 名称很短,但是当 table 名称变得更长更复杂时,您可以看到别名是多么有用。

显式声明 table 的一个好处是您一眼就能看出 table 数据来自哪里。一旦您拥有来自多个来源的数据,无论是否通过联接,如果您不在 [=19= 中显示 table,就很难准确判断某个字段来自哪个 table ] 语句。