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

SQL 常用語法速查手冊:DDL、DML、進階查詢與索引/視圖操作

     編輯:關於SqlServer

一、資料庫與資料表基本操作 (DDL)

操作語法範例
建立資料庫CREATE DATABASE db_name;
刪除資料庫DROP DATABASE db_name;
備份資料庫BACKUP DATABASE pubs TO DISK='c:\backup\pubs.bak';
建立資料表CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(50) NOT NULL);
依現有表建表CREATE TABLE new_t LIKE old_t; (MySQL) / SELECT * INTO new_t FROM old_t WHERE 1=0; (SQL Server)
刪除資料表DROP TABLE t;
新增欄位ALTER TABLE t ADD col VARCHAR(100);
新增/刪除主鍵ALTER TABLE t ADD PRIMARY KEY (id); / DROP PRIMARY KEY;
建立/刪除索引CREATE [UNIQUE] INDEX idx_name ON t(col); / DROP INDEX idx_name ON t;
建立/刪除視圖CREATE VIEW v AS SELECT ...; / DROP VIEW v;

二、基本資料操作 (DML)

-- 查詢
SELECT * FROM t WHERE col LIKE '%keyword%';
-- 新增
INSERT INTO t (col1, col2) VALUES (val1, val2);
-- 刪除
DELETE FROM t WHERE condition;
-- 更新
UPDATE t SET col1 = val1 WHERE condition;

三、彙總與排序

SELECT COUNT(*) AS total FROM t;
SELECT SUM(col) AS sum_val, AVG(col) AS avg_val, MAX(col) AS max_val, MIN(col) AS min_val FROM t;
SELECT * FROM t ORDER BY col1, col2 DESC;

四、進階集合運算

  • UNION:合併結果並去重;UNION ALL 保留重複。
  • EXCEPT (SQL Server) / MINUS (Oracle):第一個結果集減去第二個。
  • INTERSECT:取交集。
  • 參與運算的查詢欄位數、型別必須一致。

五、外部聯結

  • LEFT JOIN:保留左表所有列。
  • RIGHT JOIN:保留右表所有列。
  • FULL JOIN:保留雙方所有列。

六、子查詢與相關子查詢

-- 標量子查詢
SELECT * FROM t WHERE col = (SELECT MAX(col) FROM t);
-- EXISTS 相關子查詢
SELECT * FROM t1 WHERE EXISTS (SELECT 1 FROM t2 WHERE t2.id = t1.id);

七、常用系統函數 (SQL Server)

  • 字串:LEN, SUBSTRING, REPLACE, UPPER, LOWER, LTRIM, RTRIM, CHARINDEX, PATINDEX
  • 日期:GETDATE, DATEADD, DATEDIFF, DATEPART, DATENAME, CONVERT
  • 轉換:CAST, CONVERT
  • 系統:DB_NAME(), OBJECT_NAME(), COL_NAME(), SUSER_NAME()

八、交易控制

BEGIN TRAN;
    UPDATE ...; INSERT ...; DELETE ...;
    IF @@ERROR <> 0 ROLLBACK TRAN ELSE COMMIT TRAN;
-- 或使用 TRY/CATCH (SQL 2005+)
BEGIN TRY
    BEGIN TRAN; ... COMMIT TRAN;
END TRY
BEGIN CATCH
    ROLLBACK TRAN; THROW;
END CATCH
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved