第1章 Transact-SQL基礎
1.1 標識符一、常規標識符1. 命名規則:
l 第一個字母必須是Unicode2.0標准定義的字母、下劃線、at符號(@)和數字符號(#);
l 後續字符可以是Unicode2.0標准定義的字母、來自基本拉丁字母或其他國家/地區腳本的十進制數字、at符號(@)、美元符號($)、數字符號(#)或下劃線;
l 標識符不能是Transact-SQL的保留字;
l 不允許嵌入空格或其他特殊字符;
l 標識符長度不大於128字符,本地臨時表標識符不大於116字符。
注:SQL Server2000中,常規標識符的格式規則取決於數據庫的兼容級別,兼容級別可以用系統存儲過程sp_dbcmptlevel來設置。以上是兼容級別為80時的規則。
2. 特殊字符說明
以下字符位於標識符開始位置時具有特殊意義:
l 以@符號開始的標識符表示局部變量或參數;
l 以@@符號開始的標識符表示全局變量;
l 以#符號開始的標識符表示臨時表或過程;
l 以##符號開始的標識符表示全局臨時對象;
l --單行注釋;
l /*…*/多行注釋。(多行注釋不能跨越批處理)
二、分隔標識符1. 命名規則:
l 標識符長度不大於128字符(不包括分隔符字符),本地臨時表標識符不大於116字符;
l 標識符的主體可以是包含當前代碼頁內字母(分隔符本身除外)的任意組合。
2. 分隔標識符類型:
l 被引用的標識符用雙引號分隔開,例如SELECT * FROM “My Table”;
l 括在括號中的標識符用方括號分隔,例如SELECT * FROM [My Table]。
三、使用標識符在SQL Server2000中,一個對象的全稱語法格式為:
server.database.owner.object其中,server為服務器名,database為數據庫名,owner為所有者,object為對象名。默認情況下,server為本地服務器,database為當前數據庫,owner為在指定的數據庫中與當前連接會話的登陸標識相對應的數據庫用戶或者數據庫所有者。
四、通配符1.
%—包含零個或更多字符的任意字符串
例如:查找姓名中包含有“華”字的所有學生
WHERE sname LIKE ‘%華%’
2.
_—任何單個字符
例如:查找姓王,名字包含3個字的學生
WHERE sname LIKE ‘王__’
3.
[] —指定范圍或集合中的任何單個字符
例如:查找姓劉和姓王,名字包含3個字的學生
WHERE sname LIKE ‘[劉,王]__’
4.
[^]—不屬於指定范圍或集合的任何單個字符
例如:查找除姓劉和姓王以外,名字包含3個字的學生其他學生
WHERE sname LIKE ‘[^劉,王]__’