[SQL]常用語法彙整: 基本指令 [SQL-001]
本篇整理學到的SQL語法,為簡單難度。
入門SQL操作指令
- Select
- Where
- Order By
- Insert
- Update
- Delete
Select
萬物從 select 起頭,當我們要撈取資料時,都是從select來選擇"欄位",並標示從哪一張表(from)。指令大小寫通常並無影響,但欄位名稱則需要特別注意是否正確。
SELECT column1, column2, …
FROM table_name;
選擇所有欄位則用 * 代替全部。
SELECT * FROM table_name;
剔除重複資料進行撈取。因為資料儲存或重複註冊的原因,我們經常在資料庫中會發現兩筆資料完全相同的資料。此時可以透過Distinct過篩。
SELECT DISTINCT column1, column2, …
FROM table_name;
驗證是否有重複資料,也可以透過 Count來確認。
SELECT COUNT(column1) FROM table_name;
SELECT COUNT(DISTINCT column1) FROM table_name;
可以Select中再Select嗎? 可以。
舉例來說,我們可以將Count的值另存成DistinctCountries,那Count要計算的就要從 From 中帶入。
SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT column1 FROM table_name);
Select + Where (加入條件)
condition 就如不等式方式撰寫,在選出的欄位中,依據其中某幾欄來設定條件,進一步篩選出我們需要的資料。
SELECT column1, column2, …
FROM table_name
WHERE condition;
條件也可以一次設定多個,透過AND
, OR
, NOT
來進行設定。
例如,選擇… WHERE 非條件1 且非條件2 或條件3符合。
SELECT column1, column2, …
FROM table_name
WHERE NOT condition1 AND NOT condition2 OR condition3 …;
排序 Order by
資料排序是整理資料中,常用的功能,也包含升序(default)與降序排列。
SELECT * FROM Customers
ORDER BY Country DESC;
插入資料 Insert Into
根據row來插入新的data/records進表格中。
INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
IS NULL, IS NOT NULL
當我們更新資料表或插入值未齊全時,沒有值的欄位就會以NULL儲存。
但這些NULL無法透過一般的opeartor進行判斷,因此需要IS NULL判斷。
SELECT column_names
FROM table_name
WHERE column_name IS NULL;#或替代以 WHERE column_name IS NOT NULL;
更新資料/資料表 Update
用來修改已經存在於資料表中的資料。
特別注意Where條件要設好,不然整張表更新下去就GG了。
- Where條件通常會透過 ID (identifier) 來進行少量資料的修改。
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
刪除資料/資料表 Delete
如同Update功能,要注意條件設定,不然彙整張表的資料都刪除!
DELETE FROM table_name WHERE condition; # 有條件設定
DELETE FROM table_name; # 整張表資料都刪除!
搜尋顯示條件
包含要顯示前幾大,要顯示幾筆,要如何排序等等。
- SELECT TOP
用於SQL Server / MS Access
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
- LIMIT
用於MySQL
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
- ORDER BY + FETCH
用於Oracle 12
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
以上彙整了目前學到的SQL常見操作指令,
下篇再整理SQL運算指令。
感謝收看~