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

經典 SQL 語句大全:基礎、進階與分頁優化

     編輯:MySQL 資料庫相關知識

彙總高頻 SQL 模式,涵蓋 DDL、DML、進階查詢、分頁、去重、隨機抽樣等實戰場景。

一、基礎 DDL/DML

-- 建庫/刪庫
CREATE DATABASE dbname;
DROP DATABASE dbname;

-- 建表/刪表
CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(50));
DROP TABLE t;

-- 備份/還原(SQL Server)
BACKUP DATABASE pubs TO DISK='c:\bak\pubs.bak';
RESTORE DATABASE pubs FROM DISK='c:\bak\pubs.bak';

-- 增刪改查
INSERT INTO t (id,name) VALUES (1,'a');
DELETE FROM t WHERE id=1;
UPDATE t SET name='b' WHERE id=1;
SELECT * FROM t WHERE name LIKE '%a%';

二、進階查詢運算符

運算符效果
UNION合併結果集,去重
UNION ALL合併結果集,保留重複
EXCEPT差集(在表1不在表2)
INTERSECT交集

三、外連接模式

-- 左連接
SELECT a.*, b.col FROM a LEFT JOIN b ON a.id=b.a_id;
-- 右連接
SELECT a.*, b.col FROM a RIGHT JOIN b ON a.id=b.a_id;
-- 全連接
SELECT a.*, b.col FROM a FULL JOIN b ON a.id=b.a_id;

四、分頁查詢(SQL Server 經典三層嵌套)

DECLARE @start INT=11, @end INT=20;
SELECT TOP (@end-@start+1) * FROM (
    SELECT TOP @end * FROM T ORDER BY id DESC
) AS t1 ORDER BY id ASC;

注意:TOP 後不可直接跟變量,需動態 SQL 或參數化。

五、實用技巧集錦

場景SQL 模式
前 10 行SELECT TOP 10 * FROM t WHERE ...
每組最大值行SELECT * FROM t ta WHERE val=(SELECT MAX(val) FROM t tb WHERE tb.grp=ta.grp)
隨機 10 行SELECT TOP 10 * FROM t ORDER BY NEWID()
刪除重複(保留最大 ID)DELETE FROM t WHERE id NOT IN (SELECT MAX(id) FROM t GROUP BY col1,col2...)
列出所有用戶表SELECT name FROM sysobjects WHERE type='U'
列出表所有列SELECT name FROM syscolumns WHERE id=OBJECT_ID('t')
行轉列(CASE 聚合)SELECT type, SUM(CASE vender WHEN 'A' THEN pcs ELSE 0 END) AS A_pcs FROM t GROUP BY type
清空表(保留結構)TRUNCATE TABLE t
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved