- SQL Server從入門到精通(第5版)
- 明日科技編著
- 1387字
- 2024-12-27 21:41:47
3.2 SQL Server的命名規(guī)則
SQL Server為了完善數(shù)據(jù)庫的管理機(jī)制,設(shè)計(jì)了嚴(yán)格的命名規(guī)則。用戶在創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)庫對象時(shí)必須嚴(yán)格遵守SQL Server的命名規(guī)則。本節(jié)將對標(biāo)識符、對象和實(shí)例的命名規(guī)則進(jìn)行詳細(xì)的介紹。
3.2.1 標(biāo)識符命名規(guī)則
在SQL Server中,服務(wù)器、數(shù)據(jù)庫和數(shù)據(jù)庫對象(如表、視圖、列、索引、觸發(fā)器、過程、約束和規(guī)則等)都有標(biāo)識符,數(shù)據(jù)庫對象的名稱被看成該對象的標(biāo)識符。大多數(shù)對象要求帶有標(biāo)識符,但有些對象(如約束)中標(biāo)識符是可選項(xiàng)。
對象標(biāo)識符是在定義對象時(shí)創(chuàng)建的,標(biāo)識符隨后用于引用該對象,下面分別對標(biāo)識符格式及標(biāo)識符分類進(jìn)行介紹。
1.標(biāo)識符格式
在定義標(biāo)識符時(shí)必須遵守以下規(guī)定。
(1)標(biāo)識符的首字符必須是下列字符之一。
統(tǒng)一碼(Unicode)2.0標(biāo)準(zhǔn)中定義的字母,包括拉丁字母a~z和A~Z,以及來自其他語言的字符。
下畫線“_”、符號“@”或者數(shù)字符號“#”。
在SQL Server中,某些處于標(biāo)識符開始位置的符號具有特殊意義。以“@”符號開始的標(biāo)識符表示局部變量或參數(shù);以一個(gè)數(shù)字符號“#”開始的標(biāo)識符表示臨時(shí)表或過程,如表“#gzb”就是一張臨時(shí)表;以雙數(shù)字符號“##”開始的標(biāo)識符表示全局臨時(shí)對象,如表“##gzb”則是全局臨時(shí)表。
誤區(qū)警示
某些SQL函數(shù)的名稱以@@符號開始,為避免混淆這些函數(shù),建議不要使用以@@開始的名稱。
(2)標(biāo)識符的后續(xù)字符可以是以下3種。
統(tǒng)一碼2.0標(biāo)準(zhǔn)中定義的字母。
來自拉丁字母或其他國家/地區(qū)腳本的十進(jìn)制數(shù)字。
“@”符號、美元符號“$”、數(shù)字符號“#”或下畫線“_”。
(3)標(biāo)識符不允許是SQL的保留字。
(4)不允許嵌入空格或其他特殊字符。
例如,要為明日科技公司創(chuàng)建一個(gè)工資管理系統(tǒng),則可以將其數(shù)據(jù)庫命名為MR_Salary。名字除了要遵守命名規(guī)則以外,最好還能準(zhǔn)確表達(dá)數(shù)據(jù)庫的內(nèi)容,本例中的數(shù)據(jù)庫名稱是以每個(gè)字的大寫字母命名的,其中還使用了下畫線“_”。
2.標(biāo)識符分類
SQL Server將標(biāo)識符分為以下兩種類型。
常規(guī)標(biāo)識符:符合標(biāo)識符的格式規(guī)則。
分隔標(biāo)識符:包含在雙引號(" ")或者方括號([ ])內(nèi)的標(biāo)識符。該標(biāo)識符可以不符合標(biāo)識符的格式規(guī)則,如[MR GZGLXT],MR和GZGLXT之間含有空格,但因?yàn)槭褂昧朔嚼ㄌ枺砸暈榉指魳?biāo)識符。
注意
常規(guī)標(biāo)識符和分隔標(biāo)識符包含的字符數(shù)必須在1~128,對于本地臨時(shí)表,標(biāo)識符最多可以有116個(gè)字符。
3.2.2 對象命名規(guī)則
SQL Server數(shù)據(jù)庫對象的名字由1~128個(gè)字符組成,不區(qū)分大小寫。使用標(biāo)識符也可以作為對象的名稱。
在一個(gè)數(shù)據(jù)庫中創(chuàng)建了一個(gè)數(shù)據(jù)庫對象后,數(shù)據(jù)庫對象的完整名稱應(yīng)該由服務(wù)器名、數(shù)據(jù)庫名、擁有者名和對象名4個(gè)部分組成,其語法格式如下:
[ [ [ server. ] [ database ] .] [ owner_name ] .] object_name
服務(wù)器、數(shù)據(jù)庫和所有者的名稱即所謂的對象名限定符。當(dāng)引用一個(gè)對象時(shí),不需要指定服務(wù)器、數(shù)據(jù)庫和所有者,可以利用句號標(biāo)出它們的位置,從而省略限定符。
對象名的有效格式如下:
server.database.owner_name.object_name
server.database..object_name
server..owner_name.object_name
server...object_name
database.owner_name.object_name
database..object_name
owner_name.object_name
object_name
指定了所有4個(gè)部分的對象名被稱為完全合法名稱。
誤區(qū)警示
不允許存在4個(gè)部分名稱完全相同的數(shù)據(jù)庫對象。在同一個(gè)數(shù)據(jù)庫中可以存在兩個(gè)名為EXAMPLE的表格,但前提必須是這兩個(gè)表的擁有者不同。
3.2.3 實(shí)例命名規(guī)則
SQL Server數(shù)據(jù)庫提供了以下兩種類型的實(shí)例。
默認(rèn)實(shí)例:此實(shí)例由運(yùn)行它的計(jì)算機(jī)的網(wǎng)絡(luò)名稱標(biāo)識。使用以前版本SQL Server客戶端軟件的應(yīng)用程序可以連接到默認(rèn)實(shí)例。但是,一臺(tái)計(jì)算機(jī)上每次只能有一個(gè)版本作為默認(rèn)實(shí)例運(yùn)行。
命名實(shí)例:計(jì)算機(jī)可以同時(shí)運(yùn)行任意一個(gè)SQL Server命名實(shí)例。實(shí)例通過計(jì)算機(jī)的網(wǎng)絡(luò)名加上實(shí)例名以<計(jì)算機(jī)名>\<實(shí)例名>格式進(jìn)行標(biāo)識,即computer_name\instance_name,但該實(shí)例名不能超過16個(gè)字符。
- Google Visualization API Essentials
- 算法競賽入門經(jīng)典:習(xí)題與解答
- 劍破冰山:Oracle開發(fā)藝術(shù)
- 云計(jì)算環(huán)境下的信息資源集成與服務(wù)
- 數(shù)據(jù)革命:大數(shù)據(jù)價(jià)值實(shí)現(xiàn)方法、技術(shù)與案例
- Remote Usability Testing
- 數(shù)據(jù)庫原理與設(shè)計(jì)(第2版)
- Apache Kylin權(quán)威指南
- gnuplot Cookbook
- INSTANT Android Fragmentation Management How-to
- MySQL技術(shù)內(nèi)幕:SQL編程
- Oracle高性能SQL引擎剖析:SQL優(yōu)化與調(diào)優(yōu)機(jī)制詳解
- Spring Boot 2.0 Cookbook(Second Edition)
- 大數(shù)據(jù)分析:R基礎(chǔ)及應(yīng)用
- 數(shù)據(jù)庫原理與設(shè)計(jì)實(shí)驗(yàn)教程(MySQL版)