本文為 MySQL 初學者設計的快速入門教學,涵蓋核心 SQL 語法、客戶端互動操作、資料庫/資料表建立與資料匯入,透過實際指令示範帶您在 30 分鐘內建立第一個資料庫應用。
CREATE TABLE table_name (
column_name datatype {IDENTITY | NULL | NOT NULL},
...
);
PRIMARY KEY、INDEX 等約束。CREATE INDEX index_name ON table_name (col_name[(length)], ...);
例:CREATE INDEX part_of_name ON customer (name(10));(前綴索引,節省空間)。
ALTER TABLE table_name alter_spec [, alter_spec ...];
例:ALTER TABLE t1 CHANGE a b INTEGER;(重命名欄位 a 為 b 並改型態)。
DROP TABLE tb1;
DROP INDEX index_name ON table_name;
SELECT [DISTINCT] select_expr, ...
FROM table_references
[WHERE where_definition]
[GROUP BY col_name ...]
[HAVING where_definition]
[ORDER BY {col_name | formula} [ASC | DESC] ...]
[LIMIT [offset,] rows];
WHERE 條件運算子: =, !=, >, >=, <, <=, BETWEEN, IN, LIKE, IS [NOT] NULL。
通配符: _(單字元)、%(任意字串)。
邏輯運算: AND, OR, NOT。
-- 新增
INSERT [INTO] table_name [(col_list)] VALUES (expr_list);
-- 刪除
DELETE FROM table_name WHERE condition;
-- 修改
UPDATE table_name SET col1=expr1, col2=expr2 ... WHERE condition;
USE database_name;
SUM(expr)、AVG(expr)、COUNT(expr)、COUNT(*)MAX(expr)、MIN(expr)$ mysqladmin create database01
Database "database01" created.
$ mysql
Welcome to the MySQL monitor. ...
mysql>
mysql> USE database01;
Database changed.
mysql> CREATE TABLE table01 (field01 INTEGER, field02 CHAR(10));
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW TABLES;
+-----------------+
| Tables_in_db01 |
+-----------------+
| table01 |
+-----------------+
mysql> SHOW COLUMNS FROM table01;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| field01 | int(11) | YES | | NULL | |
| field02 | char(10) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
mysql> INSERT INTO table01 (field01, field02) VALUES (1, 'first');
Query OK, 1 row affected (0.00 sec)
mysql> ALTER TABLE table01 ADD COLUMN field03 CHAR(20);
Query OK, 1 row affected (0.04 sec)
mysql> ALTER TABLE table01 ADD COLUMN field04 DATE, ADD COLUMN field05 TIME;
Query OK, 1 row affected (0.04 sec)
注意: 每個新欄位皆需以 ADD COLUMN 開頭。
MySQL 支援多行輸入,提示符變為 ->,直到輸入分號結束:
mysql> CREATE TABLE table33
-> (field01 INTEGER,
-> field02 CHAR(30));
Query OK, 0 rows affected (0.00 sec)
陷阱: 字串常數**不可**跨行(硬換行會存入資料),僅 SQL 結構可跨行。
'YYYY-MM-DD', 'HH:MM:SS'(需引號)YYYYMMDD, HHMMSS(無引號)mysql> INSERT INTO table01 VALUES (2, 'second', 'another', '1999-10-23', '10:30:00');
mysql> INSERT INTO table01 VALUES (3, 'third', 'more', 19991024, 103004);
上下鍵調取歷史指令,修改值後重新執行,大幅減少重複輸入。
-- 單欄
UPDATE table01 SET field03='new info' WHERE field01=1;
-- 多欄
UPDATE table01 SET field04=19991022, field05=062218 WHERE field01=1;
-- 批次
UPDATE table01 SET field05=152901 WHERE field04>19990101;
DELETE FROM table01 WHERE field01=3;
mysql> QUIT;
Bye
INNER/LEFT/RIGHT JOIN、子查詢、UNION。START TRANSACTION, COMMIT, ROLLBACK。EXPLAIN、緩衝區配置、查詢重寫。/docs/manual/mysql 目錄,瀏覽器開啟即可離線查閱。MySQL 以簡易安裝、標準 SQL 相容、豐富生態系統成為入門首選。完成本指南操作,您已掌握資料庫建立、結構定義、資料增刪改查核心技能。下一步請深入學習聯結查詢、交易與索引優化,逐步邁向資料庫工程師之路。