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

SQL 增刪改查 (CRUD) 基礎語法大全:從入門到進階技巧

     編輯:MySQL 資料庫相關知識

核心 CRUD 語法速查

查詢 (SELECT)

-- 基礎查詢
SELECT * FROM table WHERE col = val ORDER BY col [DESC];
SELECT * FROM table WHERE col LIKE '%val%' ORDER BY col [DESC];
SELECT TOP 10 * FROM table WHERE col ORDER BY col [DESC];
SELECT * FROM table WHERE col IN ('v1','v2','v3');
SELECT * FROM table WHERE col BETWEEN v1 AND v2;

-- 多表/跨庫
SELECT * FROM db1.dbo.table1 t1, db2.dbo.table2 t2 WHERE t1.id = t2.id;

-- 統計函數
SELECT SUM(col) AS alias FROM table WHERE cond;
SELECT COUNT(*), AVG(col), MAX(col), MIN(col) FROM table;

新增 (INSERT)

-- 指定欄位
INSERT INTO table (col1, col2, col3) VALUES (v1, v2, v3);

-- 全欄位按順序
INSERT INTO table VALUES (v1, v2, v3);

-- 從另一表複製
INSERT INTO target_table SELECT * FROM source_table;

修改 (UPDATE)

UPDATE table SET col = val WHERE condition;
UPDATE table SET col1=v1, col2=v2, col3=v3 WHERE condition;
-- 無 WHERE 更新全表(危險!)

刪除 (DELETE)

DELETE FROM table WHERE condition;
DELETE FROM table;  -- 清空全表(危險!建議用 TRUNCATE TABLE)

進階實用技巧

隨機抽樣

SELECT TOP N * FROM table ORDER BY NEWID();

建表與刪表

CREATE TABLE tab01 (name VARCHAR(50), dt DATETIME DEFAULT GETDATE());
DROP TABLE tab01;

記錄集操作 (ADO/ASP 經典)

方法說明
MoveNext / MovePrevious移動指標
MoveFirst / MoveLast首/尾記錄
AbsolutePosition = N跳到第 N 行
PageSize = N / PageCount分頁屬性
RecordCount總行數(需游標支援)
BOF / EOF超出首/尾標記
AddNew / Update / Delete新增/修改/刪除當前行

LIKE 萬用字元對照

符號含義
%任意長度字串(含 0 字元)
_單一字元
[abc]a/b/c 中任一字元
[^abc]非 a/b/c 的任一字元

常見陷阱提醒

  • UPDATE/DELETE 必加 WHERE,生產環境建議先跑 SELECT 驗證影響範圍
  • 字串拼接 SQL 注入風險,務必用參數化查詢
  • TRUNCATE TABLE 非交易、不觸發觸發器、重置身分種子,清空大表首選
  • TOP N 配合 ORDER BY 才有確定意義,否則結果不可預期
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved