標籤:
1.引言
T-SQL(Transact Structured Query Language)是標準的SQL的擴充,是程式和SQL Server溝通的主要語言。
T-SQL語言主要由以下幾部分組成:
- 資料定義語言 (Data Definition Language)(DDL):用來建立資料庫、資料庫物件等,如CREATE TABLE、DROP TABLE等。
- 資料控制語言(DCL):控制資料庫的存取許可、許可權等,如GRANT等。
- 資料操縱語言(DML):用於插入、修改、刪除和查詢資料庫中資料,如SELECT、INSERT、UPDATE、DELETE等。
資料定義語言 (Data Definition Language)和資料控制語言實現的操作通常通過Micosoft SQL Server Management Studio可視化操作。程式中使用最多的是資料操縱語言,這裡主要介紹資料操縱語言中SELECT、INSERT、UPDATE、DELETE的最常見,最基本的用法。
2. 常用概念
在介紹資料操縱語言之前,先來瞭解一些SQL Server中常用的規範和格式,以及在T-SQL語句中可能用到的概念。
2.1標識符
伺服器、資料庫和資料庫物件(如表、視圖、列、索引、約束等)都有標識符,資料庫物件的名稱被看作為該對象的標識符。
- 首字母必須以字母(UNICODE 2.0中定義)、底線_、符號@、或者數字記號#開頭,後續可是字母、數字、_、@、$、#。
- 以@開頭的標識符表示局部變數或參數,以#開頭表示暫存資料表或變數,以##開頭表示全域臨時對象,某些Transact SQL 函數以@@開頭。
- 常規標識符:符合標識符格式規格,如age123,_we
- 分隔識別碼:包含在“”或者[]內的標識符,標識符中間可以有空格,如[hong kong]
2.2對象命名規則
完整的對象名由伺服器名、資料庫名、schema、和對象名組成,其間使用.號串連;可以省略中間一部分用.表示
Server.database.schema.object
Server..schema.object
schema.object
Object
2.3常量、變數、運算子和萬用字元
- 數值常量包含整數常量、小數常量和浮點數常量,如12,12.56,12.5e7
- 字串常量,在單引號內,包含字母數字以及特殊字元,如!、@、#;如果包含嵌入的引號,可以使用兩個單引號表示嵌入的單引號。如’student’。
- 日期和時間,日期、時間和時間間隔的常量值被指定為日期和時間常量。例如‘1989-09-34‘,‘04/04/1998‘,時間和日期根據國家不同書寫方式也不同。
- 符號常量,特殊的常量符號代表不同的常量資料值,CURRENT_DATE等。
- 局部變數以@開頭。
- 全域變數以@@開頭,內部定義了很多全域變數,如@@CONNECTIONS表示,伺服器啟動後的串連次數。
- 運算子包含算數運算子+、-、*、/、%;賦值運算子=;比較子>、<、=、>=、<=、<>;邏輯運算子ALL、AND、ANY、BETWEEN、EXISTS、IN、LIKE、NOT、OR、SOME;位元運算符&、|、^、~;串連運算子+。
- 萬用字元,%:包含零個或更多字元;_:任何單個字元;[]:指定範圍或集合中任意單個字元;[^]:不屬於指定範圍或集合中的單個字元。
3.DML資料操作語言
DML資料操作語言,包含SELECT、INSERT、UPDATE、DELETE這四種T-SQL語句,下面通過例子,具體介紹這四個語句的基本使用。
假設現有如下的一張表格,表名稱為Student:
3.1 SELECT語句
SELECT語句用來查詢資料表格或視圖,是使用最多的一條語句,由於其文法複雜,子句較多,在後面有專門的一章來說明它的用法。
3.2 INSERT語句
INSERT語句向表中添加新紀錄,該語句可以向表中插入一條新紀錄或者插入一個結果集。文法如下(以下所有文法的格式如下,大寫表示關鍵字,[]表示可選內容,[,…]表示可重複前項):
INSERT [INTO] table_or_view_name (column_name[,…]) VALUES (expression)[,…]
向表中插入資料:
結果如下:
3.3 UPDATE語句
修改資料庫中資料。文法如下:
UPDATE table_or_view_name [FROM {<table_source>}[,…]]
SET column_name = expression | DEFAULT | NULL [,…]
WHERE search_condition
修改表格中姓名為王莉的年齡為19:
結果如下:
3.4 DELETE語句
刪除表格中記錄,文法如下:
DELETE [FROM <table_source>[,…]]
WHERE search_condition
刪除表格中姓名為王莉的記錄:
結果如下:
4 結論
資料操縱語言個數不多,結構簡單,但是使用頻繁,其中的SELECT語句使用最多,也最複雜,詳細介紹請看後一章,SQL Server SELECT查詢語句基本用法。
SQL Server DML(UPDATE、INSERT、DELETE)常見用法(一)