天天看點

《PHP和MySQL Web開發從新手到高手(第5版)》一2.7 檢視存儲的資料

本節書摘來自異步社群《php和mysql web開發從新手到高手(第5版)》一書中的第2章,第2.7節,作者【澳】kevin yank,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

php和mysql web開發從新手到高手(第5版)

select指令用來檢視資料庫表中存儲的資料,這是sql語言中最複雜的一條指令。這條語句之是以複雜,原因在于資料庫的主要強大之處就是資料通路的靈活性。現在,我們對資料庫的體驗還處在一個早期階段。這時候,隻需要關注相對簡單的結果清單。是以,讓我們考慮select指令較為簡單的形式。

以下這條指令,将會列出joke表中存儲的所有内容:

如果讀出來,這條指令應該讀作“select everything from joke”。如果你嘗試運作這條指令,将會看到如圖2.13所示的結果。

《PHP和MySQL Web開發從新手到高手(第5版)》一2.7 檢視存儲的資料

假設要對這樣一個資料庫做一些較為正式的操作。此時,你可能要嘗試避免從資料庫讀取所有可笑的笑話。為了不讓自己分心,你可能想要告訴mysql忽略joketext列。實作這一點的指令如下所示:

此時,我們确切地告知資料庫想要看到哪些列,而不是告訴它“選擇所有的内容”。結果如圖2.14所示。

《PHP和MySQL Web開發從新手到高手(第5版)》一2.7 檢視存儲的資料

如果想要看到一些笑話文本怎麼辦呢?除了能夠通過select指令指定想要顯示的列,我們還可以使用函數來修改每一列的顯示。有一個名為left的函數,可以用來通知mysql顯示一列的内容,直到達到一定數目的字元為止。例如,假設隻想看到joketext列的前20個字元。應該使用如下的指令:

結果如圖2.15所示。

《PHP和MySQL Web開發從新手到高手(第5版)》一2.7 檢視存儲的資料

來看看這是如何工作的?另一個有用的函數是count,它允許我們計算傳回的結果的數目。例如,如果想要弄清楚表中存儲了多少個笑話,我們可以使用以下的指令:

如圖2.16所示,表中隻有一個笑話。

《PHP和MySQL Web開發從新手到高手(第5版)》一2.7 檢視存儲的資料

目前為止,我們已經見到了如何擷取表中所有的條目的示例。不過,還可以将結果限制為:隻擁有我們想要的特定屬性的那些資料庫條目。通過給select指令添加一條所謂的where子句(where clause),我們可以設定這些限制。考慮以下的例子:

這條查詢将會統計日期大于或等于2012年1月1日的笑話。就日期而言,“大于或等于”意味着“剛好在那天或在那天之後”。關于這一主題的另一種形式是,讓你搜尋包含了一段特定文本的條目。留意以下這條查詢:

這條查詢顯示了joketext列中包含了文本“chicken”的所有笑話的完整文本。like關鍵字告訴mysql,指定的列必須比對給定的模式。1在這個例子中,我們使用的模式是"%chicken%"。%符号表示文本“chicken”可能位于任何文本之前或之後,又或者前後都有。

也可以在where子句中組合條件,以進一步限制結果。例如,要顯示僅僅在2012年4月添加的knock-knock笑話,可以使用如下的查詢:

在表中再多輸入幾條笑話(例如,前面提到的“knock-knock”笑話),并且試驗一下select查詢(要了解更多思路,請查閱第4章内容)。

你可以使用select指令做很多事情,是以,我鼓勵你去熟悉它。在随後需要用到一些select的更進階的功能的時候,我們将會介紹。

1你可能會感到好奇。注意,like是區分大小寫的。是以,這個模式也會比對包含“chicken”的一個笑話,甚至會比對包含“funkychicken”的一個笑話