資料庫包含一或多個表,每個表有唯一名稱(如 Websites),由列與行組成。列定義欄位屬性,行存放實際記錄。
mysql> use RUNOOB; Database changed mysql> set names utf8; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM Websites; +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘寶 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鳥教程 | https://www.runoob.com/ | 4689 | CN | | 4 | 微博 | https://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+ 5 rows in set (0.01 sec)
use RUNOOB; 選擇資料庫。set names utf8; 設定連線字元集。SELECT * FROM Websites; 讀取表資料。SQL 指令大致分為四大類:
| 類別 | 全稱 | 核心指令 | 用途 |
|---|---|---|---|
| DDL | Data Definition Language | CREATE、ALTER、DROP、TRUNCATE | 定義/修改資料庫物件結構 |
| DML | Data Manipulation Language | SELECT、INSERT、UPDATE、DELETE | 操作資料內容 |
| DCL | Data Control Language | GRANT、REVOKE | 權限控制 |
| TCL | Transaction Control Language | COMMIT、ROLLBACK、SAVEPOINT | 交易控制 |
SQL 關鍵字不分大小寫:SELECT = select = Select。慣例:關鍵字大寫、表欄位小寫,提升可讀性。
| 指令 | 用途 | 屬性 |
|---|---|---|
SELECT | 查詢資料 | DML |
UPDATE | 更新資料 | DML |
DELETE | 刪除資料 | DML |
INSERT INTO | 插入新資料 | DML |
CREATE DATABASE | 建立資料庫 | DDL |
ALTER DATABASE | 修改資料庫屬性 | DDL |
CREATE TABLE | 建立資料表 | DDL |
ALTER TABLE | 修改表結構 | DDL |
DROP TABLE | 刪除資料表 | DDL |
CREATE INDEX | 建立索引 | DDL |
DROP INDEX | 刪除索引 | DDL |
SELECT、WHERE、ORDER BY、LIMIT 基礎查詢。JOIN 多表關聯、GROUP BY 彙總。INSERT/UPDATE/DELETE 資料操作。