資料表都已經創建起來了,假設我們已經插入了許多的數據,我們就可以用自己喜歡的方式對數據表裡面的信息進行檢索和顯示了,比如說:可以像下面這樣把整個數據表內的內容都顯示出來
select * from president;
也可選取某一個資料列中的某某資料列
select 你要的資訊
from 資料表(一個或多個)
where 滿足的條件
select語句有幾個子句,他們的各種搭配能幫你查出最簡單的資訊很複雜,看看作者是如何詳細講解的
要讓select語句只把滿足特定條件的記錄檢索出來,就必須為它加上where字句來檢索設定資料行的檢索條件。只有這樣,才能選擇性地把資料列的取值滿足特定要求的那些資料行挑選出來。可以針對任何類型的值進行查找,比如說,對數值進行搜尋
select * from score where score>95; //顯示所有分數在95分以上的信息
也可以針對字符串值進行查找
select last_name, first_name from president where last_name='Tom'; //找出所有姓tom的總統
也可以對不同類型的值進行組合查找
select last_name,first_name,birth,state from president
where birth //找出1950年前出生於VA州或BA州的總統
可見where子句中可以使用的是算術運算符(+- */%),比較運算子(=)以及邏輯運算符,我們應該熟練理解這些運算子的意思(都很簡單)
這是一種不屬於任何類型的值。它通常用來表示「沒有資料」「資料未知」「資料缺失」「資料超出取值範圍」「與本資料列無關」「與本資料列的其它值不同」等多種意義。在許多情況下,NULL 值是非常有用的。
我們的各種運算子是不能對NULL 值進行處理的,如果相對NULL 值進行查找,用的是is null 或is not null 來進行判斷,舉例如下:
select last_name,first_name,birth,state from president
where death is null; //找出所有沒死的總統
在某些情況下,NULL 值是很有用的類型,大家慢慢就會理解的。
以一般方式建立了一個資料表並在裡面插入了一些記錄,當發出一個select * from name指令的時候,資料記錄在順序通常與它們被插入時的先後順序一樣.這當然符合我們的思考習慣.但這只是一種"想當然"的假設而已,事實上,但記錄被刪除時,資料庫中會產生一些空的區域,MYSQL會用新的記錄來填補這些區域,也就是說,這個時候本假設就不正確了.因此我們必須記住一點,從伺服器傳回的記錄行的先後順序是沒有任何保證的!如果想要依照一定的順序,就必須使用order by 子句來設定這個順序.
select last_name,first_name,birth,state from president
order by last_name; //讓總統們的名字按字母順序排列
還可以設定排列的升序降序
select last_name,first_name fromnamesident ;
//先按照出生地的降序排列,同出生地的按照姓氏的升序排列
注意:如果結果中含有NULL 值,默認情況下他們總是出現在查詢結果的開頭。
4, 限制查詢結果中資料行數
select last_name,orderirst_name,b.,state fromsidentbirths,只想看前5個
order by birth limit 10,5; //返回從第11個記錄開始的5個記錄(跳過了10個)
小技巧:從president表中隨機找出一個總統來玩:
select last_name,first_name,birth,state from president
order by rand() limit 1; //這是用了表達式求值的方法,在哪裡都管用
5, 輸出列求值與命名
為了提高效率,MYSQL也可將表達式的計算結果當作輸出欄位的值。表達式可以很簡單,也可以很複雜。例如:下面這個查詢有兩個輸出列,前一個輸出
以上就是SELECT 的使用詳解的內容,更多相關文章請關注PHP中文網(m.sbmmt.com)!