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

MySQL SQL 常用語句大全:DDL、DML、查詢、進階技巧

     編輯:MySQL 綜合教學

MySQL SQL 常用語句大全:DDL、DML、查詢、進階技巧

基礎 DDL/DML

操作語句範例
建立資料庫CREATE DATABASE db_name;
刪除資料庫DROP DATABASE db_name;
建立資料表CREATE TABLE t(col1 TYPE1 [NOT NULL] [PRIMARY KEY], col2 TYPE2...);
依現有表建表CREATE TABLE t_new LIKE t_old; 或 CREATE TABLE t_new AS SELECT col1,col2 FROM t_old;
刪除資料表DROP TABLE t_name;
新增欄位ALTER TABLE t ADD COLUMN col TYPE;(不可刪除欄位,型別通常不可變)
主鍵增刪ALTER TABLE t ADD PRIMARY KEY(col); / DROP PRIMARY KEY;
索引建立/刪除CREATE [UNIQUE] INDEX idx ON t(col...); / DROP INDEX idx ON t;
視圖建立/刪除CREATE VIEW v AS SELECT ...; / DROP VIEW v;

基本查詢與彙總

SELECT * FROM t WHERE 條件;
INSERT INTO t(col1,col2) VALUES(val1,val2);
DELETE FROM t WHERE 條件;
UPDATE t SET col1=val1 WHERE 條件;
SELECT * FROM t WHERE col1 LIKE '%val%';
SELECT * FROM t ORDER BY col1, col2 [DESC];
SELECT COUNT(*) AS total FROM t;
SELECT SUM(col1) AS sumv FROM t;
SELECT AVG(col1) AS avgv FROM t;
SELECT MAX(col1) AS maxv FROM t;
SELECT MIN(col1) AS minv FROM t;

進階集合運算

  • UNION:合併結果並去重;UNION ALL 保留重複
  • EXCEPT(MySQL 不支援,用 NOT IN 或 LEFT JOIN ... IS NULL 替代)
  • INTERSECT(MySQL 不支援,用 INNER JOIN 替代)

外部連接

-- LEFT JOIN
SELECT a.*, b.* FROM a LEFT JOIN b ON a.id = b.a_id;
-- RIGHT JOIN
SELECT a.*, b.* FROM a RIGHT JOIN b ON a.id = b.a_id;
-- FULL JOIN(MySQL 不支援,用 UNION 模擬)

分組與 Having

SELECT col, COUNT(*) FROM t GROUP BY col HAVING COUNT(*) > 1;

常用技巧

  • 分頁:SELECT * FROM t LIMIT offset, row_count;
  • 隨機取樣:SELECT * FROM t ORDER BY RAND() LIMIT 10;
  • 刪除重複:DELETE FROM t WHERE id NOT IN (SELECT MAX(id) FROM t GROUP BY col1,col2...);
  • 動態 SQL 組裝:WHERE 1=1 便於程式拼接條件
  • 收縮資料庫/日誌:DBCC SHRINKDATABASE、DBCC SHRINKFILE(SQL Server 語法,MySQL 需用 OPTIMIZE TABLE)

MySQL 特有管理指令

SHOW DATABASES;
SHOW TABLES;
SHOW COLUMNS FROM t;
SHOW INDEX FROM t;
SHOW CREATE TABLE t;
SHOW PROCESSLIST;
SHOW VARIABLES LIKE '...';
SET NAMES utf8;

更多進階用法(觸發器、存儲過程、分區、鎖機制等)請參考官方文件。

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