☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
sql 初學

SELECT 基礎查詢

SELECT — 查詢的起點

比喻:SELECT 就像在餐廳點菜 🍽️

你告訴服務員「我要看菜單上的主菜和甜點」—— SELECT 就是告訴資料庫「我要看哪些欄位的資料」。


查詢所有欄位

SELECT *             -- ← * 代表「所有欄位」
FROM Students;       -- ← 從 Students 這張表查

逐行解析:

SELECT *         -- 「我要全部欄位」——Id, Name, Age, Email 都給我
FROM Students;   -- 「從 Students 表裡面找」——指定資料來源

結果:

 Id | Name | Age | Email
----+------+-----+---------------
  1 | 小明 |  20 | ming@test.com
  2 | 小華 |  22 | hua@test.com
  3 | 小美 |  21 | mei@test.com

查詢特定欄位

SELECT Name, Age     -- ← 只要名字和年齡
FROM Students;       -- ← 從 Students 表查

逐行解析:

SELECT Name, Age  -- 「我只要 Name 跟 Age 這兩欄」——其他欄位不要
FROM Students;    -- 「來源是 Students」

結果只有兩欄:

 Name | Age
------+-----
 小明 |  20
 小華 |  22
 小美 |  21

💡 實務建議: 盡量不用 SELECT *,只選需要的欄位,效能更好。


欄位別名(AS)

SELECT Name AS 姓名,      -- ← 把 Name 顯示為「姓名」
       Age AS 年齡,        -- ← 把 Age 顯示為「年齡」
       Email AS 電子信箱   -- ← 把 Email 顯示為「電子信箱」
FROM Students;

逐行解析:

SELECT Name AS 姓名    -- Name 欄位改名叫「姓名」,只影響顯示,不影響資料庫
       Age AS 年齡      -- AS 是取別名的關鍵字
       Email AS 電子信箱 -- 別名可以用中文,讓報表更易讀
FROM Students;

去除重複(DISTINCT)

SELECT DISTINCT Age   -- ← 只取不重複的年齡
FROM Students;        -- ← 從 Students 表查

假設有 5 個學生,其中 2 人都是 20 歲:

-- 沒有 DISTINCT → 20 會出現兩次
-- 有 DISTINCT   → 20 只出現一次

 Age
-----
  20
  21
  22

計算欄位

SELECT Name,                    -- ← 學生姓名
       Age,                     -- ← 現在年齡
       Age + 1 AS 明年年齡,     -- ← 用運算產生新欄位
       Age * 2 AS 雙倍年齡      -- ← 可以做任何數學運算
FROM Students;

SQL 可以直接在 SELECT 裡做運算,結果會變成一個臨時欄位。


字串串接

-- PostgreSQL 用 || 串接字串
SELECT Name || ' (' || Age || '歲)' AS 簡介
FROM Students;
-- 結果:小明 (20歲)、小華 (22歲)...

-- SQL Server 用 + 串接
SELECT Name + ' (' + CAST(Age AS VARCHAR) + '歲)' AS 簡介
FROM Students;

小結

語法 用途
SELECT * 查全部欄位
SELECT 欄位1, 欄位2 查指定欄位
AS 別名 欄位重新命名
DISTINCT 去重複
運算式 產生計算欄位

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊