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