承接前文建表與插入數據,本文詳細講解從單表檢索數據的核心語法與技巧,含條件查詢、欄位選擇、排序、行計數與分組統計。
SELECT 查詢欄位 FROM 表名 [WHERE 條件];
* 代表所有欄位WHERE 子句為可選,用於過濾行+----------+------+------------+-----------+ | name | sex | birth | birthaddr | +----------+------+------------+-----------+ | abccs | f | 1977-07-07 | china | | mary | f | 1978-12-12 | usa | | tom | m | 1970-09-02 | usa | +----------+------+------------+-----------+
SELECT * FROM mytable;
UPDATE mytable SET birth = '1973-09-02' WHERE name = 'tom';
SELECT * FROM mytable WHERE name = 'tom'; SELECT * FROM mytable WHERE sex = 'f' AND birthaddr = 'china';
SELECT name FROM mytable; SELECT name, birth FROM mytable;
-- 升序(預設) SELECT name, birth FROM mytable ORDER BY birth; -- 降序 SELECT name, birth FROM mytable ORDER BY birth DESC;
-- 總行數 SELECT COUNT(*) FROM mytable; -- 返回 3 -- 按性別分組計數 SELECT sex, COUNT(*) FROM mytable GROUP BY sex; -- 返回: f=2, m=1
| 子句/函數 | 用途 | 關鍵點 |
|---|---|---|
| WHERE | 行過濾 | 支援 AND/OR/IN/LIKE 等組合條件 |
| ORDER BY | 排序 | 預設 ASC,可用 DESC 降序;可多欄位排序 |
| COUNT(*) | 行計數 | 統計非 NULL 行;配合 GROUP BY 分組統計 |
| GROUP BY | 分組 | 常與聚合函數(COUNT/SUM/AVG/MIN/MAX)搭配 |
SELECT *,明確列出所需欄位LIMIT 並建立適當索引COUNT(column) 僅統計非 NULL 值,與 COUNT(*) 有別