SQL - SELECT 查詢:初學者指南
你好,有志於學習SQL的熱情者!我很興奮能成為您進入SQL SELECT查詢世界的引路人。作為一個教學SQL超過十年的老師,我可以向您保證,精通SELECT語句就像是打開了數據可能性的寶藏箱。那麼,我們就來深入了解一下吧!
SQL SELECT 語句
SELECT語句是什麼?
SELECT語句是SQL的核心。我們用它從數據庫中檢索數據,相信我,你會經常使用它的!把它當作是一種禮貌的方式向數據庫請求,“嘿,你能給我顯示一些信息嗎?”
基本語法
這裡是最基本的SELECT語句形式:
SELECT column1, column2, ...
FROM table_name;
讓我們分解一下:
- SELECT:這是我們的魔法詞,告訴數據庫我們想要檢索數據。
- column1, column2, ...:這些是我們想要看到的特定列。
- FROM:這個關鍵字引出了我們正在查詢的表。
- table_name:這是我們數據所在的表的名稱。
範例1:選擇所有列
SELECT *
FROM employees;
這個查詢說,“從employees表中顯示一切。”星號(*)是一個萬用字符,表示“所有列”。
範例2:選擇特定列
SELECT first_name, last_name, email
FROM employees;
這個查詢客氣地請求所有員工的姓、名和電子郵件。
使用SELECT進行計算
現在,讓我們來點刺激的!SELECT不僅用於檢索原始數據;我們還可以用它來進行計算。
範例3:基本算術
SELECT
product_name,
unit_price,
units_in_stock,
unit_price * units_in_stock AS total_value
FROM products;
在這個查詢中,我們不僅選擇列,還在做一些數學計算!我們將單價乘以庫存數量來獲得每個產品的總價值。
範例4:使用內置函數
SQL提供了各種內置函數,讓我們的生活變得更加輕鬆。以下是一個使用UPPER函數的範例:
SELECT
UPPER(first_name) AS uppercase_first_name,
UPPER(last_name) AS uppercase_last_name
FROM employees;
這個查詢將所有名稱和姓氏轉換為大寫。就像請求數據庫對我們大喊名稱!
在SELECT語句中別名列
有時候,我們數據庫中的列名不太用戶友好,或者我們想要為我們計算的列給予有意義的名稱。這時別名就派上用場了!
別名是什麼?
別名就像給列起個綽號。它不會改變數據庫中實際的列名;它只是改變了查詢結果中的顯示方式。
範例5:基本別名
SELECT
first_name AS "First Name",
last_name AS "Last Name"
FROM employees;
在這個範例中,我們為我們的列給予了友好的別名。在我們的結果中,我們將看到“First Name”和“Last Name”,而不是“first_name”和“last_name”。
範例6:別名計算列
SELECT
product_name,
unit_price,
units_in_stock,
unit_price * units_in_stock AS "Total Inventory Value"
FROM products;
在這裡,我們為我們計算的列給予了一個描述性名稱。這讓我們的查詢結果更加易讀和自説明。
結合所有知識
讓我們把我們學到的所有知識結合成一個偉大的查詢:
SELECT
UPPER(p.product_name) AS "Product",
p.unit_price AS "Price",
p.units_in_stock AS "Stock",
p.unit_price * p.units_in_stock AS "Total Value",
c.category_name AS "Category"
FROM
products p
JOIN
categories c ON p.category_id = c.category_id
WHERE
p.units_in_stock > 0
ORDER BY
"Total Value" DESC;
這個查詢:
- 選擇產品信息
- 計算每個產品的總價值
- 使用別名以提高可讀性
- 連接產品表和分類表
- 過濾庫存中有的產品
- 按總價值降序排序結果
很酷吧?我們已經從簡單的SELECT語句走了很遠了!
結論
恭喜你!你剛剛邁出了進入SQL SELECT查詢奇妙世界的第一步。記住,熟練才能完美,所以不要害怕嘗試這些概念。
這裡是一個我們所學方法的快速參考表:
方法 | 描述 | 範例 |
---|---|---|
基本SELECT | 從表中檢索數據 | SELECT column FROM table; |
帶計算的SELECT | 在查詢中進行計算 | SELECT column1 * column2 AS result FROM table; |
帶函數的SELECT | 使用內置的SQL函數 | SELECT UPPER(column) FROM table; |
帶別名的SELECT | 在結果集中重命名列 | SELECT column AS "New Name" FROM table; |
愉快地查詢吧,願你的數據永遠乾淨,你的連接總是成功!
Credits: Image by storyset