標籤:建立 person blog 跨表 between 資訊 亂碼 無法 like
一:where
在上一篇,粗略的介紹了where,但是where後面可以跟其他的條件,現在我們來一一說明
1.between:在某兩個值之間
我建立一個名為person的表,裡面有id,name,age,post,再插入幾條資料,如所示:
然後我想讓age裡面18到35歲裡面的post改為‘菜鳥‘,那麼我應該運行這行代碼
則顯示的效果為:
2.in:一系列值當中
我想使名為fangming和lisi的POST改為“菜菜鳥”,這個時候我們需要用到了in,代碼如下
實現的效果如下:
3.is null 是否為空白
我們有時候需要對錶中資料為空白的數值進行一系列的操作,這個時候我們需要用到is null的操作,代碼如下:
實現的效果如下:
由於我對name沒有進行轉碼操作,所以出現了亂碼,但是效果是出現了
既然有了is null,那就有is not null的操作,為對不是空的數值進行操作,如下:
效果如下:
4.like:模糊查詢
我們有時候需要查詢以某一個欄位開頭或者結尾的資料,這個時候就用到了like,與%結合使用,
如我想查詢name中以‘ming‘結尾的欄位,代碼如下
效果如下:
二.套嵌查詢
我們有時候需要根據兩個表相同的列名進行跨表查詢,這個時候需要用到了巢狀查詢,
我有兩個表,一個是學生,一個是班級,如所示:
可以看出他們都有一個相同的列名cid,其實這個列名可以不相同,但是只要可以保證可以通過這個列名進行查詢,即有相同數值即可
現在我想查詢學生裡屬於班級人數為52的學生(稍微有點繞0.0),代碼如下:
可能有點繞,但是仔細捋捋還是可以明白的,好,那麼我們加大難度,如果我想將學生的班級資訊和學生資訊一起列印出來,該怎麼辦呢,很明顯,巢狀查詢已經無法滿足我們了,且看下面:
三:關聯查詢
我們需要用到關聯查詢了,它的文法是這樣的
select 別名1.列名,別名2.列名 from 表名1 別名1,表名2 別名2 where 別名1.相同列
名=別名2.相同列名;
我知道你已經暈了,好,我們直接上命令列:
效果如下:
是不是很神奇,還有更神奇的,這樣出來預設的是升序,我們可以給定他按照cid的降序進行排列,代碼如下
只需要在後面跟order by 列名 為升序,order by 列名 desc 為降序
我們在查詢標的時候,套嵌查詢和關聯查詢一起使用往往可以解決不少問題。
mySQL資料庫三:命令列附錄