我們並不一定每一次都要將表格內的資料都完全抓出。在許多時候,我們需要選擇性地抓資料,這時就得設定查詢條件。SQL語法內可使用WHERE指令設定各種條件。這個指令的語法如下:
select 欄位名稱1,欄位名稱2 from 資料表格名稱 where 查詢條件 order by排序欄位 limit限制筆數
只有符合where條件的紀錄,才會被選取。條件的內容,通常是以欄位來比對某特定的值。請您注意如果比對的值,其資料型態不是數值時,請您要在前後加上單引號。
+Read more
我們並不一定每一次都要將表格內的資料都完全抓出。在許多時候,我們需要選擇性地抓資料,這時就得設定查詢條件。SQL語法內可使用WHERE指令設定各種條件。這個指令的語法如下:
select 欄位名稱1,欄位名稱2 from 資料表格名稱 where 查詢條件 order by排序欄位 limit限制筆數
只有符合where條件的紀錄,才會被選取。條件的內容,通常是以欄位來比對某特定的值。請您注意如果比對的值,其資料型態不是數值時,請您要在前後加上單引號。
+Read more如果您希望檢索出來的欄位名稱不同,請在檢索時在欄位名稱後面加上「as 檢索時的欄位名稱」,例如我們希望查詢「employees」資料表內「firstname」、「lastname」這兩個欄位的內容,但「firstname」顯示為「f」,而「lastname」顯示為「l」,請您於「SQL」選項輸入「select firstname as f, lastname as l from employees;」,查詢結果的欄位名稱就會變成「f」與「l」。
【圖5、select查詢後另外命名】
若我們查詢「products」資料表內「productname」、「unitprice」與「unitsinstock」這三個欄位的內容,但希望每一個產品能計算出總價,也就是「unitprice」乘以「unitsinstock」,該怎麼處理呢?您可檢索出「unitprice」與「unitsinstock」欄位,後於PHP內做乘法計算,但現在MySQL內可直接計算後以「as」語法替欄位命名,以此為例,我們可以增加一個欄位「unitprice * unitsinstock as total」,完整的SQL語法為「select productname, unitprice ,unitsinstock ,unitprice * unitsinstock as total from products;」,您可看到查詢時就可顯示出總價,PHP語法內就不需要再做計算,這樣是不是很方便呢?
【圖6、select查詢時可加入計算式】
當我們想利用查詢、新增、刪除、更新mysql裡的資料,使用的語法就是SQL語法。SQL是「Structured Query Language」 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,
它是1970年由當時在IBM工作的 E.F. Codd針對關聯式模型 ( relational model )所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的 SQL語法沒有統一,對於使用者產生很大的困擾,後來才慢慢制定出SQL的標準化。
SQL語法可以分為三類。第一類稱之為「資料定義語言(Data Definition Language,DDL)」,DDL用於建立、更改或刪除 table、schema、domain、index 與 view 。主要指令為CREATE、ALTER 與 DROP。第二類稱之為「資料操作語言(Data Manipulation Language,DML)」,DML用於資料的操作。主要指令為SELECT、INSERT、UPDATE 和 DELETE。第三類稱之為「資料控制語言(Data Control Language,DCL)」,DCL 提供資料庫的安全性。主要指令為COMMIT、ROLLBACK、GRANT 和 REVOKE。
雖然現在每一個資料庫的SQL語法仍有差異,例如access與mysql在查詢時使用的萬用字元符號,access使用的是*,而mysql使用的是%,但大致上每一個資料庫都會依循標準的SQL語法作業。本章我們主要瞭解DML的使用,當PHP與MySQL連線成功後就可以做新增、刪除、更新、查詢的動作。在操作查詢語法之前,請您先建立「pcschool」資料庫並點選後,再請將「13」資料夾內的「sql.sql」載入到資料庫,如對於資料載入操作不熟悉,請參考上一章的說明。接著請開啟phpMyAdmin網頁,點選「pcschool」資料庫,再請點選右上角的「SQL」選項就可看見一個可輸入SQL語法的畫面。本章介紹的查詢語法,將於phpMyAdmin的SQL畫面內操作。
當我們建立好資料庫,並且輸入若干資料後,「查詢」會是經常操作的動作,所以一開始我們就來瞭解查詢語法。而查詢語法也是SQL中最複雜的語法。查詢語法規則如下:
select [distinct] column_list from table_list where [conditions] group by grouping_columns having secondary_constraint order by sorting_columns-list [asc | desc ] limit offset, rows
語法內使用粗體字代表這是查詢語法內的關鍵字;而中括弧[ ]代表選擇性的選項,若不寫則依照原有設定;斜體字代表這裡將輸入字串。
上述語法的說明如下:
+Read more