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

MS SQL Server T-SQL 快速參考:DML/DDL/DCL/TCL/程序化/函數/系統函數完整分類

     編輯:關於SqlServer

MS SQL Server 常用 T-SQL 指令與函數分類速查表,涵蓋資料操作、定義、控制、交易、程序化、統計/日期/系統函數,適合開發/維運快速查閱。

資料操作 (DML)

  • `SELECT` / `INSERT` / `DELETE` / `UPDATE`

資料定義 (DDL)

  • `CREATE/DROP/ALTER TABLE`、`CREATE/DROP VIEW`、`CREATE/DROP INDEX`
  • `CREATE/DROP PROCEDURE`、`CREATE/DROP TRIGGER`
  • `CREATE/DROP SCHEMA`、`CREATE/ALTER/DROP DOMAIN`

資料控制 (DCL)

  • `GRANT` / `DENY` / `REVOKE`

交易控制 (TCL)

  • `COMMIT` / `ROLLBACK` / `SET TRANSACTION`

程序化 SQL

  • 游標:`DECLARE` / `OPEN` / `FETCH` / `CLOSE` / `DEALLOCATE`
  • 動態 SQL:`PREPARE` / `EXECUTE` / `DESCRIBE`
  • 計畫:`EXPLAIN`

變數宣告


-- 局部變數
DECLARE @id CHAR(10); SET @id = '10010001'; -- 或 SELECT @id = '10010001';
-- 全域變數(@@ 開頭,系統預定義)
SELECT @@VERSION, @@ROWCOUNT, @@IDENTITY, @@ERROR, @@TRANCOUNT;

流程控制


-- IF ELSE
IF @x > @y PRINT 'x > y' ELSE IF @y > @z PRINT 'y > z' ELSE PRINT 'z >= y';

-- CASE
UPDATE employee SET e_wage = CASE
    WHEN job_level = '1' THEN e_wage * 1.08
    WHEN job_level = '2' THEN e_wage * 1.07
    WHEN job_level = '3' THEN e_wage * 1.06
    ELSE e_wage * 1.05 END;

-- WHILE CONTINUE BREAK
WHILE @x < 3 BEGIN ... END;

-- WAITFOR
WAITFOR DELAY '01:02:03'; -- 等待 1時2分3秒
WAITFOR TIME '23:08:00';  -- 等待至 23:08

SELECT 進階語法


SELECT * FROM table WHERE col LIKE '[a-z]%' OR col LIKE '[^F-M]%';
SELECT * FROM t1 LEFT JOIN t2 ON t1.id *= t2.id; -- 舊式外部聯接(不建議)
SELECT * FROM t1 UNION ALL SELECT * FROM t2;

統計函數

  • `AVG`、`COUNT`、`MAX`、`MIN`、`SUM`

日期函數

  • `DAY()`、`MONTH()`、`YEAR()`、`GETDATE()`
  • `DATEADD(interval, number, date)`、`DATEDIFF(interval, start, end)`
  • `DATENAME(interval, date)`、`DATEPART(interval, date)`

系統函數精選

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數用途
APP_NAME()目前應用程式名稱
COALESCE(val1, val2, ...)回傳第一個非 NULL 值
COL_LENGTH('table','col')欄位定義長度
COL_NAME(table_id, col_id)欄位名稱
DATALENGTH(expr)資料實際位元組長度
DB_ID(['db_name'])資料庫 ID
DB_NAME(db_id)資料庫名稱
HOST_ID() / HOST_NAME()用戶端機器 ID/名稱
IDENTITY(型別, seed, incr)SELECT INTO 產生身分欄
ISDATE(expr)判斷是否合法日期
ISNULL(expr, replacement)NULL 替換
ISNUMERIC(expr)判斷是否合法數值
NEWID()產生 UNIQUEIDENTIFIER
NULLIF(expr1, expr2)相等回傳 NULL,否則 expr1