若要從表格中檢索資料,則查詢表格。 使用SQL SELECT
敘述來執行此動作。 該敘述分為選取列表 (列出要傳回的欄位的部分)、表格列表 (列出要從中檢索資料的表格的部分) 和可選的條件 (指定任何限制的部分)。 例如,若要檢索表格 weather
的所有列,請輸入
SELECT * FROM weather;
此處 *
是 「所有欄位」的簡寫。 [2] 因此,使用下列指令會得到相同結果
SELECT city, temp_lo, temp_hi, prcp, date FROM weather;
輸出應為
city | temp_lo | temp_hi | prcp | date ---------------+---------+---------+------+------------ San Francisco | 46 | 50 | 0.25 | 1994-11-27 San Francisco | 43 | 57 | 0 | 1994-11-29 Hayward | 37 | 54 | | 1994-11-29 (3 rows)
您可以在選取列表中撰寫運算式,而不僅僅是簡單的欄位參照。 例如,您可以執行
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
這應該會給出
city | temp_avg | date ---------------+----------+------------ San Francisco | 48 | 1994-11-27 San Francisco | 50 | 1994-11-29 Hayward | 45 | 1994-11-29 (3 rows)
請注意如何使用 AS
子句重新標記輸出欄位。(AS
子句是可選的。)
可以透過新增 WHERE
子句來 「限定」查詢,該子句指定需要的列。WHERE
子句包含布林值(真值)運算式,並且僅傳回布林值運算式為 true 的列。 在條件中允許使用常用的布林運算子(AND
、OR
和 NOT
)。 例如,以下指令檢索舊金山在下雨天的天氣
SELECT * FROM weather WHERE city = 'San Francisco' AND prcp > 0.0;
結果
city | temp_lo | temp_hi | prcp | date ---------------+---------+---------+------+------------ San Francisco | 46 | 50 | 0.25 | 1994-11-27 (1 row)
SELECT * FROM weather ORDER BY city;
city | temp_lo | temp_hi | prcp | date ---------------+---------+---------+------+------------ Hayward | 37 | 54 | | 1994-11-29 San Francisco | 43 | 57 | 0 | 1994-11-29 San Francisco | 46 | 50 | 0.25 | 1994-11-27
在此範例中,排序順序未完全指定,因此您可能會以任何順序取得舊金山的列。 但如果您執行以下指令,您將始終獲得上面顯示的結果
SELECT * FROM weather ORDER BY city, temp_lo;
SELECT DISTINCT city FROM weather;
city --------------- Hayward San Francisco (2 rows)
同樣地,此處的結果列排序可能會有所不同。 您可以使用 DISTINCT
和 ORDER BY
一起使用來確保一致的結果:[3]
SELECT DISTINCT city FROM weather ORDER BY city;
如果您在文件中發現任何不正確之處、與您使用特定功能的經驗不符,或需要進一步澄清,請使用此表單報告文件問題。