題目:
在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 ,沒有爭議








暫無數據