首页 > 解决方案 > 为什么 SQL 中的标识符可以在赋值前被引用?

问题描述

在 SQL 查询中,您可以在声明名称之前引用该名称。

SELECT A.id FROM table_a A;

这种行为的历史是什么?它与需要您在引用变量之前分配给变量的编程语言有什么关系?

标签: sqllanguage-design

解决方案


您误解了 SQL 语言的性质。它不是一种程序语言,而是一种声明性语言。该语句描述了结果应该是什么样子,并且数据库相应地构建了实际的查询计划——默认情况下,您看不到。

一些数据库提供了某种程序子语言,可以用来编写程序——例如Oracle中的PL/SQL。但是,您在此处显示的是标准 SQLSELECT语句。那里没有变量声明的概念。AFROM子句中是 的别名table_a,也就是标识符,您可以使用 . 之类的表达式来引用表的列<table identifier>.<column name>


推荐阅读