Indetifier
6.1 ?Identifier Syntax
? ?定義符肯能被unquoted或者quoted,如果unquoted,一個(gè)定義符必須遵循如下的規(guī)則:
? ? ?1.一個(gè)定義可能包含所有的字母字符,——和$
? ? ?2. 一個(gè)定義肯能是任何合法字符,even a digit。然而,他最好避免歧義。
? ? ?3.一個(gè)定義符不能完全有數(shù)字組成
對(duì)于引用的定義:
? ? 1.一般,任何字符可以被包含在一個(gè)引用定義符。一個(gè)定義符不能包含一個(gè)0或者255數(shù)值值的字節(jié)和表的名字不能包好‘.’,'/',或者‘\’
? ? 2. 一個(gè)引用可能有所有的數(shù)字組成
6.2 大小寫注意
? 1對(duì)于數(shù)據(jù)庫(kù)和表的定義符,大小寫取決于操作系統(tǒng)和服務(wù)器的文件系統(tǒng),和取決于設(shè)置lower_case_table_names系統(tǒng)變量。
? ?2 對(duì)于列,索引,被存儲(chǔ)的路徑和觸發(fā)器的定義符是大小寫敏感的
? ?3.列的別名不是大小寫敏感的
6.3 使用qualified names
? ? ?就是列和表的定義符被寫使用‘.’分隔符。例如Country表值word數(shù)據(jù)庫(kù)可能被引用world.Country,如果默認(rèn)的數(shù)據(jù)庫(kù)存在時(shí),下面的等同:
? ? select * from country;
? ?select ?* from ?world.Country;
對(duì)于列的名字肯能被qualified,使用Country.Name.
一個(gè)更進(jìn)一步的列的是可能因?yàn)橐粋€(gè)表的名字肯能是使用database名字。所以,另外的方式引用Namelie是world.Country.Name ?如果word是默認(rèn)數(shù)據(jù)庫(kù),接下的語(yǔ)句時(shí)等同。
select name from country;
select country.name from country;
select world.country.name from world.county;
一個(gè)觸發(fā)器可以附帶到一個(gè)表上,一個(gè)觸發(fā)器的定義符應(yīng)該有table_name.trigger_name
6.4 Using Reserved Words as Indentifiers
反轉(zhuǎn)單詞是特別的。例如,功能名字不能用作定義符例如表或列明,如果你試圖這樣做了將產(chǎn)生一個(gè)錯(cuò)誤。
create table t (order int not null unique, d date not null);
產(chǎn)生錯(cuò)誤。
為了使用reserved(預(yù)留)單詞作為數(shù)據(jù)庫(kù),表,列或者索引的定義符,將有一個(gè)或兩個(gè)運(yùn)行引用樣式,取決于服務(wù)器SQL模式。默認(rèn),引用預(yù)留的單詞在backtick(‘’)。
create table t('order' int not null unique, d date not null);
ok
如果ansi-quotes采用了
create table t("order" int not null unique, d date not null);
ok
為了使用預(yù)留關(guān)鍵字作為別名,引用它作為但引用號(hào)或者雙引號(hào)或者backticks。
總結(jié)
以上是生活随笔為你收集整理的Indetifier的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 处理丢失和无效的数据值
- 下一篇: cursoradpter自动更新