题目:
在SQL语句中,设置别名可以增强代码的可读性,别名又分为表别名和列别名,其中列别名不能用于( )子句中。
A select
B where
C from
D join
答案: B
解析:
在SQL语句中,设置别名可以提高代码的可读性。别名分为表别名和列别名两种。表别名用于给表起一个简短的名称,以便在查询中引用该表时更加方便。
列别名用于给查询结果中的列起一个简短的名称,以便在后续的操作中引用该列时更加方便。
select 子句选取需要的列, 所以经常加列别名,from和join子句中经常加表别名 (例如select * from table1 t1 left join table2 t2 on t1.ID=t2.ID
"where"子句用于对from子句的表进行字段值筛选,根据指定的条件来过滤结果,应该使用原始列名而不是列别名来指定条件。)
因此,正确答案是B where。
情况补充:
where子句中一般不出现别名, 如果硬要在where子句中出现别名,也可以实现
下面的where子句就出现了表别名,并且执行不报错:
SELECT 员工编号 AS alias1, 姓名 AS alias2 FROM employees e1 WHERE e1.员工编号 = 1;
如下图所示:
from join 加了子查询表, 后面就可以有列别名 ,表别名, 不知道出题人是否这样想的, 如果不是这样, 那么from 不能出现列别名 同理join也不能出现
补充说明:
where在这种特殊情况下也能使用列别名:
外层查询可以在 WHERE 子句中使用内层查询(执行顺序先于外层查询)中生成的列别名
#例如下面的语句
#示例 SELECT * FROM ( SELECT column1 AS alias1, column2 AS alias2 FROM table1 ) AS subquery WHERE alias1 = 'some_value';
总结
对于考试, 先按照考题解析的答案来记忆,实际工作遇到特殊问题,自己再具体问题具体处理
所以建议把这个题目修改为:其中列别名多用于( )子句中。 这样答案选A select ,没有争议
暂无数据