SELECT column_name(s) FROM table_name;
SELECT * FROM Persons; -- 全欄位
SELECT LastName, FirstName FROM Persons; -- 指定欄位
完整語法架構:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SELECT * FROM Persons WHERE City = 'Sandnes';
-- 運算子: =, <>, !=, >, <, >=, <=, BETWEEN, LIKE, IN
SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson';
SELECT * FROM Persons WHERE FirstName='Tove' OR LastName='Svendson';
-- 優先級控制
SELECT * FROM Persons WHERE (FirstName='Tove' OR FirstName='Stephen') AND LastName='Svendson';
SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen';
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Hansen' AND 'Pettersen';
SELECT DISTINCT Company FROM Orders;
SELECT Company, OrderNumber FROM Orders ORDER BY Company; -- ASC (預設)
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC; -- 降序
SELECT Company, SUM(Amount) FROM Sales GROUP BY Company;
SELECT Company, SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount) > 10000;
SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders ON Employees.ID = Orders.ID;
SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders ON Employees.ID = Orders.ID;
-- 返回 Employees 所有行,Orders 無匹配則為 NULL
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders ON Employees.ID = Orders.ID;
-- 返回 Orders 所有行
-- 欄位別名
SELECT LastName AS Family, FirstName AS Name FROM Persons;
-- 表別名
SELECT LastName, FirstName FROM Persons AS Employees;
INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes');
INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67');
UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen';
UPDATE Person SET Address = 'StIEn 12', City = 'Stavanger' WHERE LastName = 'Rasmussen';
DELETE FROM Person WHERE LastName = 'Rasmussen';
CREATE TABLE Person (
LastName VARCHAR(30),
FirstName VARCHAR(30),
Address VARCHAR(120),
Age INT
);
常用資料型別:INT、DECIMAL(size,d)、CHAR(size)、VARCHAR(size)、DATE
ALTER TABLE Person ADD City VARCHAR(30);
ALTER TABLE Person DROP COLUMN Address; -- 部分資料庫不支援
DROP TABLE table_name;
DROP DATABASE database_name;
| 函數 | 說明 | 範例 |
|---|---|---|
| COUNT | 行數 | SELECT COUNT(Name) FROM Persons → 3 |
| SUM | 總和 | SELECT SUM(Age) FROM Persons → 98 |
| AVG | 平均 | SELECT AVG(Age) FROM Persons → 32.67 |
| MAX | 最大值 | SELECT MAX(Age) FROM Persons → 45 |
| MIN | 最小值 | SELECT MIN(Age) FROM Persons → 19 |
| 函數 | 用途 | 範例結果 |
|---|---|---|
| ABS | 絕對值 | ABS(-1) = 1 |
| CEILING | 向上取整 | CEILING(123.45) = 124 |
| FLOOR | 向下取整 | FLOOR(123.45) = 123 |
| POWER | 冪運算 | POWER(2, 6) = 64 |
| SQRT | 平方根 | SQRT(100) = 10 |
| ROUND | 四捨五入 | ROUND(123.456, 2) = 123.46 |
| SIN/COS/TAN | 三角函數(弧度) | SIN(PI()/2) = 1 |
| LOG/EXP | 對數/指數 | LOG(10) ≈ 2.302 |
| SIGN | 正負號 | SIGN(-5) = -1 |
LEN、SUBSTRING、REPLACE、UPPER/LOWER、LTRIM/RTRIMGETDATE()、DATEADD、DATEDIFF、CONVERT、FORMAT (SQL 2012+)