首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL SQL 語法完整參考指南:DDL、DML 與資料型態速查

     編輯:MySQL 資料庫相關知識

本文整理 MySQL 核心 SQL 語法,涵蓋資料定義 (DDL)、資料操作 (DML)、資料型態、查詢進階與日期比較差異,供開發與維護人員快速查閱。

一、資料定義語言 (DDL)

1. 建立資料表

CREATE TABLE table_name (
    column1 datatype [NOT NULL] [PRIMARY KEY],
    column2 datatype [NOT NULL],
    ...
);
  • datatype:資料型態(見下表)
  • NOT NULL:禁止空值
  • PRIMARY KEY:指定主鍵

2. 修改資料表

-- 新增欄位
ALTER TABLE table_name ADD COLUMN column_name datatype;

-- 設定/移除主鍵
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
ALTER TABLE table_name DROP PRIMARY KEY;

注意: MySQL 不支援 DROP COLUMN 語法(舊版本),需重建表或使用工具。

3. 索引管理

CREATE INDEX index_name ON table_name (column_name);
DROP INDEX index_name ON table_name;

4. 刪除物件

DROP TABLE table_name;
DROP INDEX index_name;

二、MySQL 核心資料型態

型態說明範圍/限制
SMALLINT16 位元整數-32768 ~ 32767
INTEGER32 位元整數-2147483648 ~ 2147483647
DECIMAL(p,s)定點數p=總位數, s=小數位;預設 p=5,s=0
FLOAT32 位元浮點數約 7 位有效數字
DOUBLE64 位元浮點數約 15 位有效數字
CHAR(n)固定長度字串n ≤ 254
VARCHAR(n)可變長度字串n ≤ 4000
GRAPHIC(n)雙位元組字串n ≤ 127(適合中文)
VARGRAPHIC(n)可變雙位元組字串n ≤ 2000
DATE日期YYYY-MM-DD
TIME時間HH:MM:SS
TIMESTAMP日期時間YYYY-MM-DD HH:MM:SS.fff

三、資料操作語言 (DML)

1. 新增資料

-- 指定欄位
INSERT INTO table_name (col1, col2) VALUES (val1, val2);

-- 子查詢新增
INSERT INTO table_name (col1, col2)
SELECT colx, coly FROM another_table;

2. 查詢資料

-- 基本查詢
SELECT col1, col2 FROM table_name;
SELECT * FROM table_name WHERE col1 = 'xxx' [AND col2 > 'yyy'];

-- 排序
SELECT col1, col2 FROM table_name ORDER BY col2 [DESC];

-- 多表聯結
SELECT * FROM table1, table2 WHERE table1.col1 = table2.col1;

-- 聚合查詢
SELECT COUNT(*) FROM table_name WHERE col = 'xxx';
SELECT SUM(col1) FROM table_name;
SELECT col1, AVG(col2) FROM table_name GROUP BY col1 HAVING AVG(col2) > 'xxx';

-- 子查詢 / EXISTS / IN
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE conditions);
SELECT * FROM table1 WHERE col1 IN (SELECT col1 FROM table2 WHERE conditions);

-- 模糊 / 範圍 / 集合
SELECT * FROM table1 WHERE col1 LIKE 'x%';
SELECT * FROM table1 WHERE col1 IN ('a','b');
SELECT * FROM table1 WHERE col1 BETWEEN xx AND yy;

3. 更新資料

UPDATE table_name SET col1='xxx' WHERE conditions;

4. 刪除資料

DELETE FROM table_name WHERE conditions;

四、跨資料庫日期比較語法差異

資料庫日期比較語法
AccessWHERE mydate > #2000-01-01#
OracleWHERE mydate > CAST('2000-01-01' AS DATE)
WHERE mydate > TO_DATE('2000-01-01','YYYY-MM-DD')
MySQL / SQL ServerWHERE mydate > '2000-01-01' (標準 ANSI 格式)

日期時間比較 (Oracle): TO_DATE('2000-01-01 10:00:01','YYYY-MM-DD HH24:MI:SS')

五、常用聚合函數速查

  • SUM(expr):總和
  • AVG(expr):平均
  • COUNT(expr):非空計數
  • COUNT(*):總行數(含 NULL)
  • MAX(expr) / MIN(expr):極值

結語

掌握標準 SQL 與 MySQL 方言差異,能顯著降低移植與維護成本。建議搭配官方手冊深入學習交易控制、預存程序、觸發器等進階特性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved