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

MySQL SQL 語句大全:DDL、DML、DCL 核心語法與範例

     編輯:MySQL 資料庫相關知識

系統整理 MySQL 常用 SQL 語句,涵蓋資料定義 (DDL)、資料操作 (DML)、資料控制 (DCL) 三大類,附帶實用範例,適合開發與運維快速查閱。

一、資料定義語言 (DDL)

1. 資料庫操作

  • 建立:CREATE DATABASE db_name;
  • 刪除:DROP DATABASE db_name;

2. 資料表操作

  • 建表:CREATE TABLE tbl (col1 TYPE1 [NOT NULL] [PRIMARY KEY], col2 TYPE2 ...);
  • 複製表結構:CREATE TABLE new_tbl LIKE old_tbl;
  • 複製表結構與數據:CREATE TABLE new_tbl AS SELECT col1, col2 FROM old_tbl;
  • 刪除:DROP TABLE tbl_name;
  • 新增欄位:ALTER TABLE tbl_name ADD COLUMN col_name TYPE;
  • 新增主鍵:ALTER TABLE tbl_name ADD PRIMARY KEY (col);
  • 刪除主鍵:ALTER TABLE tbl_name DROP PRIMARY KEY;

3. 索引與視圖

  • 建立索引:CREATE [UNIQUE] INDEX idx_name ON tbl_name (col...);
  • 刪除索引:DROP INDEX idx_name ON tbl_name;(索引不可修改,需重建)
  • 建立視圖:CREATE VIEW view_name AS SELECT ...;

二、資料操作語言 (DML)

1. 查詢 (SELECT)

-- 模糊查詢
SELECT * FROM t WHERE field LIKE '%value%';

-- 排序
SELECT * FROM t ORDER BY field1, field2 [DESC];

-- 聚合函數
SELECT COUNT(*) AS total FROM t;
SELECT SUM(field) AS sum_val FROM t;
SELECT AVG(field) AS avg_val FROM t;
SELECT MAX(field) AS max_val FROM t;
SELECT MIN(field) AS min_val FROM t;

-- 左外連接
SELECT a.a, a.b, b.c FROM a LEFT JOIN b ON a.a = b.c;

2. 新增 (INSERT)

INSERT INTO t (field1, field2) VALUES (val1, val2);

3. 刪除 (DELETE)

DELETE FROM t WHERE condition;

4. 更新 (UPDATE)

UPDATE t SET field1=val1 WHERE condition;

三、資料控制語言 (DCL)

1. 授權 (GRANT)

GRANT privileges [(columns)] ON db.tbl TO 'user'@'host' IDENTIFIED BY 'pwd' [WITH GRANT OPTION];

常用權限:SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, ALL PRIVILEGES。

Host 值:localhost (本機)、192.168.1.% (IP 段)、% (任意 IP)。

範例

  • 超級管理員:GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'pwd' WITH GRANT OPTION;
  • 唯讀帳號:GRANT SELECT ON *.* TO 'readonly'@'%' IDENTIFIED BY 'pwd';

2. 撤權與刪除用戶 (REVOKE / DROP USER)

REVOKE privileges ON db.tbl FROM 'user'@'host';
-- 僅撤權,用戶記錄保留

-- 徹底刪除 (MySQL 5.7+)
DROP USER 'user'@'host';
-- 或舊版本
DELETE FROM mysql.user WHERE User='user' AND Host='host';
FLUSH PRIVILEGES;

3. 事務控制

  • COMMIT; 提交事務
  • ROLLBACK; 回滾事務

實用提示

  • 用戶名、密碼、資料庫/表名 大小寫敏感(取決於作業系統與 lower_case_table_names 設定),主機名、欄位名不敏感。
  • 修改權限後務必執行 FLUSH PRIVILEGES; 使其生效(GRANT/REVOKE 自動刷新,直接操作授權表則需手動)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved