首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 基礎 SQL 語句速查手冊(DDL/DML/DCL)

     編輯:MySQL 綜合教學

MySQL 基礎 SQL 語句速查手冊(DDL/DML/DCL)

整理 MySQL 核心 SQL 分類與常用語法,涵蓋數據定義 (DDL)、數據操縱 (DML)、數據控制 (DCL)、進階查詢、視圖、元數據等,適合開發與面試快速查閱。

一、DDL:數據定義語言

數據庫操作

CREATE DATABASE db_name;
DROP DATABASE db_name;

表操作

-- 建表
CREATE TABLE tbl_name (
  id INT(5) AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL
);

-- 刪表
DROP TABLE tbl_name;

-- 修改表
ALTER TABLE tbl_name RENAME new_tbl_name;           -- 改表名
ALTER TABLE tbl_name MODIFY name VARCHAR(10);       -- 改欄位屬性
ALTER TABLE tbl_name ADD col_name VARCHAR(20) FIRST; -- 加欄位(首位)
ALTER TABLE tbl_name ADD col_name VARCHAR(20) AFTER name; -- 加欄位(指定後)
ALTER TABLE tbl_name DROP col_name;                 -- 刪欄位
ALTER TABLE tbl_name CHANGE old_name new_name VARCHAR(20); -- 改欄位名

CHANGE vs MODIFY:CHANGE 可改名(需寫兩次名),MODIFY 僅改屬性。

二、DML:數據操縱語言

-- 增
INSERT INTO tbl_name (col1, col2) VALUES (val1, val2);

-- 刪
DELETE FROM tbl_name [WHERE condition];

-- 查
SELECT * FROM tbl_name;

-- 改
UPDATE tbl_name SET col_name = 'val' WHERE id = 1;

三、進階查詢語法

1. 聚合分組

SELECT dept, COUNT(*) 
FROM tbl_name 
GROUP BY dept 
HAVING COUNT(*) >= 2;

2. 分頁排序

SELECT * 
FROM tbl_name 
WHERE col_name = 'abc' 
LIMIT 0, 2  -- 從第 0 條起取 2 條
ORDER BY col_name DESC;

3. 子查詢

SELECT * 
FROM tbl_name 
WHERE dept IN (
  SELECT dept FROM tbl_name_1
);
-- 子查詢單值時可用 = 代替 IN

4. 集合操作

SELECT dept FROM tbl_name
UNION          -- 去重
SELECT dept FROM tbl_name_2;

SELECT dept FROM tbl_name
UNION ALL      -- 不去重,效能更好
SELECT dept FROM tbl_name_2;

5. 視圖

CREATE VIEW view_name AS SELECT ...;
SELECT * FROM view_name;
DROP VIEW view_name;
CREATE OR REPLACE VIEW view_name AS SELECT ...; -- 存在則替換

6. WITH ROLLUP

SELECT dept, COUNT(*) FROM tbl_name GROUP BY dept WITH ROLLUP;
-- 最後一行顯示總計

四、關鍵差異對比

對比項差異說明
WHERE vs HAVINGWHERE 聚合前過濾,HAVING 聚合後過濾。能用 WHERE 優先用(可用索引)
UNION vs UNION ALLUNION = UNION ALL + DISTINCT 去重。無去重需求必用 UNION ALL
IN vs =子查詢返回單值可用 =,多值必用 IN

五、DCL:數據控制語言

-- 授權
GRANT SELECT, INSERT ON tbl_name.* TO 'user'@'host' IDENTIFIED BY 'pass';

-- 回收
REVOKE INSERT ON tbl_name.* FROM 'user'@'host';

六、元數據與 information_schema

虛擬庫,無物理文件,全部為視圖。

視圖名內容
SCHEMATA所有數據庫信息
TABLES表信息
COLUMNS欄位信息
STATISTICS索引信息
VIEWS視圖信息
ROUTINES存儲過程/函數
TRIGGERS觸發器
USER_PRIVILEGES用戶權限

常用元數據查詢

-- 查所有表
SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'dbname';

-- 查表結構
SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'tbl_name';

-- 查索引
SELECT * FROM information_schema.STATISTICS WHERE TABLE_NAME = 'tbl_name';

建議收藏此手冊,開發時快速查閱語法細節,減少翻文檔時間。

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