:::

7-2 讀出資料庫

要讀出MySQL的資料,那您就要用select這指令。

SELECT 查詢內容 [FROM  `資料表名稱`  篩選條件]

「篩選條件」有以下幾個東西!注意喔!由上到下就是其語法的先後順序喔!您可不能把LIMIT拿到WHERE的前面,那是錯誤的喔!

[where 篩選條件]
[group by 欄位名稱][having group的篩選條件]
[order by {unsigned_integer | 欄位名稱 | formula} [asc | desc]
,...]
[limit [起點,] 筆數]

查詢範例

  1. select * from `money`;
    查詢money資料表中所有欄位的所有資料。則會把money資料表中的東西,通通列出來。
  2. select `name` , `salary` from `money`;
    查詢money資料表中name和salary欄位中的所有資料。則只會列出每人的姓名(name)以及薪水(salary)的資料,其餘的資料,如發薪 日是不會列出來的。
  3. select `salary` , `date` from `money` where `name` = 'tad' ;
    查詢money資料表中,「符合name欄位為tad」的salary和date欄位資料。也就是說,要找出資料庫中名字(name)為tad的薪水 (salary)和發薪日(date)的資料。
  4. select `salary` , `date` from `money` where `name` = 'tad' and `salary` = '1000';
    篩選條件可以不只是一個,您可以用and(和)、or(或)...設很多個。
  5. select `salary` from `money` group by `salary` ;
    查詢money資料表中,以相同的薪水為群組(group by salary),列出薪水欄位的資料。group by會把該欄位相同的值當作一個群組。
  6. select `salary` , count(`salary`) from `money` group by `salary` ;
    通常,我們用這種方式可以了解資料庫中,某種資料的分類情形,這是相當實用的,底下我們利用MySQL的count()函數, 配合group by更能求出該群組的數目,如此,您便能得知,哪一種群組,各有多少人,我們留言板中,幾月份有幾個人留言,亦可利用此種方式算出。
  7. select `name` , max(`salary`) from `money` group by `name` having max(`salary`) > 3500 ;
    這一行的意思就是,從各個name的群組(group by name)中,列出其中薪水最高max(salary)者的姓名以及其薪水。於是,首先資料庫會把姓名分四個群組,然後,根據having max(salary)>3500,他會把這四個群組中,最高薪有超過1500的人篩選出來
    請注意HAVING的角色和WHERE很像!只不過WHERE是給SELECT用來篩選,而HAVING則是專給GROUP BY做篩選用!也就是說,沒有GROUP BY就沒有HAVING!
  8. select `date` , `name` , `salary` from `money` order by `date` ;
    查詢money資料表中date,name,salary欄位的資料,並且以date欄位為準來排序(order by date)。
  9. select `date` , `name` , `salary` from `money` order by `date` desc;
    正常來說,若是您使用「order by欄位名稱」的時候,沒指定用asc(小至大)或desc(大至小)來排,那MySQL會將資料自動從小排到大,也就是asc的排法,若是想從大排到小 怎麼辦?很簡單,加入desc就行了。
  10. select `name` , `salary` from `money` limit 0,5;
    用 limit來限制列出資料的筆數是很常見的用法,尤其在做資料分頁的時候更是常用!limit後面有兩個數字,很多人會誤以為是「limit 起點,終點」,其實,這是錯的!第一個數字代表的是「筆數起點」沒錯,但第二個數字是「列出筆數」!也就是說limit 0,5就是從第0筆資料開始讀,一次讀5筆的意思!

常和GROUP BY搭配使用的MySQL函數

  1. COUNT(expr):計算數目,COUNT(*)非常快,可以算出所有的資料有幾筆
  2. AVG(expr):計算GROUP的平均值
  3. MIN(expr):找出最小值
  4. MAX(expr):找出最大值
  5. SUM(expr):總和

常和 select 一起用的PHP的函數

  1. $row=mysql_fetch_array() 從資料庫取得的陣列,索引值可以是數字或字串(即欄位名稱)。
    $row[0] 或 $row["title"]
  2. $row=mysql_fetch_assoc() 從資料庫取得的陣列,索引值只能是字串(關聯索引)。
    $row[0]
  3. $row=mysql_fetch_row() 從資料庫取得的陣列,索引值只能是數字(數字索引)。
    $row["title"]

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D19%26tbdsn%3D472

書籍目錄

展開 | 闔起

線上使用者

37人線上 (7人在瀏覽線上書籍)

會員: 0

訪客: 37

更多…