官术网_书友最值得收藏!

2.1.5 關(guān)于SQL語句的書寫規(guī)范

前面我們接觸到的SQL語句都非常簡單,但是在書寫規(guī)范上,依然有這樣幾點值得大家注意。

1.關(guān)于SQL語句的大小寫

首先大家要知道,SQL語句不區(qū)分大小寫,對于關(guān)鍵詞、列(名)和表(名)來說都是這樣的。所以在書寫正確的前提下,我們可以按照個人習慣來選擇大寫或小寫。

但是對于初學(xué)者來講,建議大家在書寫SQL語句時,能夠適當?shù)厍袚Q大小寫,用以區(qū)分關(guān)鍵詞、列名和表名。這樣做不僅便于分析語句的構(gòu)成,還方便后續(xù)的閱讀和檢查,而且適當?shù)卦诖笮戦g進行切換還有助于思路的引導(dǎo)。

正是出于這樣的目的,我們的例句對關(guān)鍵詞均使用大寫,列名使用小寫,表名僅首字母大寫。

2.關(guān)于SQL語句中的空格

其實當我們在書寫SQL語句時,只需保證各個關(guān)鍵詞、列名、表名之間存在一個基本單位的空格就可以了。不過使用多個空格并不影響語句的執(zhí)行。舉例來講,我們對例句(3)的書寫原本是這樣的:

但這并非MySQL接受的唯一書寫格式,還可以在其中插入更多的空格,甚至換行也不影響執(zhí)行結(jié)果:

因此,與使用大小寫一樣,我們可以本著方便閱讀和書寫的原則,按照個人習慣和審美使用空格。

3.關(guān)于SQL語句的結(jié)尾方式

我們都對“但故事的最后,你好像還是說了拜拜”這樣一句歌詞感到有些傷感,然而這樣的畫面在使用SQL時并不會出現(xiàn)。正如大家所見,在上述例句中,我們都使用了“;”作為結(jié)尾,不過如果每次執(zhí)行的只有單條SQL語句,那么分號是可以省略的,就像這樣:

可如果要一次性執(zhí)行多條SQL語句,那么語句之間就必須使用分號隔開,例如:

這是因為分號的實際含義是分隔符,它會將一眾語句分割成獨立的執(zhí)行單位,以供MySQL識別。這類似于在檢索語句中,我們會使用逗號將各個列名隔開一樣。事實上,當大家向樣例表中插入數(shù)據(jù)時,正是在批量執(zhí)行SQL語句(由INSERT引導(dǎo)的SQL語句),例如:

大家可以看到,我們在每條SQL語句的末尾都使用了分號(最后一條可以不用),這是因為插入一行數(shù)據(jù)要使用一條INSERT語句,而一條INSERT語句也是一個獨立的執(zhí)行單位。

如果我們不使用分號進行分隔,那么MySQL將無法識別單個執(zhí)行單位,批量的執(zhí)行操作也將無法展開,就像這樣:

這就像在朗讀一篇文章,當遇到逗號或者句號的時候,我們總要停頓一下表示斷句。可如果通篇文章都沒有標點符號,那么就很難朗讀。

需要補充說明的是:批量執(zhí)行并不是指所有語句同時執(zhí)行,而是指分步執(zhí)行每一條語句。當然,MySQL也將分步反饋執(zhí)行結(jié)果——執(zhí)行成功顯示為綠色,執(zhí)行失敗顯示為紅色。

以上就是本節(jié)的全部內(nèi)容,在此我們不妨做一番總結(jié)。

1.如果要查看整張表中含有的信息,就使用“*”,它是一個通配符,代指所有列。

2.如果想查看特定列中含有的信息,需要將“*”換成目標列的列名。不僅如此,還可以調(diào)整列在結(jié)果中的顯示順序。

3.列是比表更小一級的存儲單位,在縱向體現(xiàn)一組數(shù)據(jù)的分類和歸屬。

4.行是表中信息的動態(tài)輸出形式,在橫向體現(xiàn)一組數(shù)據(jù)的對應(yīng)關(guān)系。

5.SQL語句不區(qū)分大小寫,且語句中各成分之間的最小間距是一個空格。

6.若想批量執(zhí)行多條SQL語句,那么語句間的分號必不可少。分號可以體現(xiàn)SQL語句的完整性,所以即便是書寫單條語句,也建議加上它。

7.SQL語句的書寫要在英文格式下進行,否則可能會報錯。

8.正如本章導(dǎo)讀中所提到的:關(guān)鍵詞SELECT就像一只看不見的手,它隨時聽候我們的調(diào)遣,預(yù)備抓取信息。沒錯,但是想必同學(xué)們都很清楚,抓取這一行為的前提是告知從何處抓取,也就是事先告知這只手該伸向哪里。舉例來講,如果李喬丹想查看姑娘們的姓名信息,那么毫無疑問,Contact表中的name列就是被抓取的對象,而Contact表本身則是伸手操作的目標:

從這一點我們就可以推斷出,MySQL執(zhí)行關(guān)鍵詞FROM一定先于執(zhí)行關(guān)鍵詞SELECT。事實上,雖然在檢索語句中,由關(guān)鍵詞SELECT引導(dǎo)的部分(被藍色標注的部分)處在排頭兵的位置,但是它的執(zhí)行順序其實相當靠后。而被關(guān)鍵詞FROM引導(dǎo)的部分(被紅色標注的部分),在一般的檢索語句中幾乎是首批被執(zhí)行的對象。這其實也是SQL語言的一個特點:關(guān)鍵詞的執(zhí)行順序與書寫順序不一致。后續(xù)我們還將為大家介紹其他關(guān)鍵詞的執(zhí)行順序。

主站蜘蛛池模板: 嘉鱼县| 梁河县| 长岭县| 肃宁县| 晋中市| 常德市| 康马县| 抚宁县| 响水县| 蕲春县| 威海市| 开平市| 巨野县| 巨野县| 海南省| 剑川县| 宣汉县| 安岳县| 嘉鱼县| 河池市| 丹江口市| 扶沟县| 哈尔滨市| 沙湾县| 蒙山县| 宁海县| 玛纳斯县| 徐闻县| 大石桥市| 浪卡子县| 临漳县| 二连浩特市| 溧阳市| 吉木萨尔县| 饶河县| 望城县| 衡阳县| 阳春市| 四平市| 长宁县| 沙湾县|