sql 查詢指令:(查詢指令不分大小寫)
在進入某個資料庫後,可使用以下指令:
(1) select 欄位名稱 from 資料表名稱 //秀出該資料表中該欄位所有列的資料
(2) select* from 資料表名稱 //秀出該資料表中所有欄位所有列的資料( * 代表”全部”的意思)
(3) select 欄位名稱 from 資料表名稱 where 欄位條件 //欄位條件可為:
(a). 若某欄位的資料形態是數字,則欄位條件可為: 欄位名稱>2 ; 欄位名稱<7.3333 ; 欄位名稱=-50 ; 等等等…
(b). 若某欄位的資料形態是字串,則欄位條件可為: 欄位名稱=”李大同” ; // != 在 sql語言中被寫為 <> ,例:欄位名稱<>”李大同” ;
(c). 若想要找出字串欄位中,有某字的資料形態,則欄位條件可為: 欄位名稱 like ”李%” ; 欄位名稱 like =”%李%”;
// 前者是找出姓李的人,後者是找出名字裡有”李”字的人。 %代表任意長度的字串,_代表任意一個字元。
(d). 欄位條件可以是多個欄位條件的邏輯運算,如:欄位名稱>2 or 欄位名稱<- 4 ; 欄位名稱<2 and 欄位名稱>- 4;
- between -4 and 2 ;//就是”欄位名稱<2 and 欄位名稱>- 4”的意思
(4) 欄位的多重選擇:select 欄位名稱1, 欄位名稱2, 欄位名稱3 from 資料表名稱 //秀出該資料表中的欄位名稱1、欄位名稱2、欄位名稱3中所有列資料。
(5) 多重選擇的多重欄位篩選條件:select 欄位名稱1, 欄位名稱2, 欄位名稱3 from 資料表名稱 where 欄位條件 //欄位條件可以是所選擇之欄位的運算,如:欄位名稱1 + 欄位名稱2 +欄位名稱3>100 ; …等等。
(6) 多重篩選條件:select 欄位名稱1, 欄位名稱2, 欄位名稱3 from 資料表名稱 where欄位條件 //欄位條件可為:欄位名稱 in(“王小明”,”陳小華”)//意思等於:欄位名稱=”王小明” or 欄位名稱=”陳小華”
(7) 依照欄位資料來排序:select* from 資料表名稱 order by 欄位名稱1 // 依照欄位名稱1的大小(若此欄位資料形態為數字則可用,為字串則不知道)來排序資料列甚至是欄位列,由小排到大(置頂者為小)。
// 若要反向排序(至頂者為大):select* from 資料表名稱 order by 欄位名稱1 desc
(8) 限制筆數:該欄位由第一筆算起,不顯示所有列,只顯示特定前幾列。如:select 欄位名稱 from 資料表名稱 limit 5 //只顯示該欄位名稱的前五筆資料
(9) 反向查詢:使用not運算子,not運算子可以加在like、between、in之前,形成not like、not between、not in。如:
select* from 資料表名稱 where not in(“王小明”,”陳小華”)
(10) 聚合函式:可對欄位資料進行運算。
(a) count(欄位名稱) :若該欄位有n筆資料,則回傳n。使用方法例如:
select count(欄位名稱) from 資料表名稱;
(b) max(欄位名稱) :回傳該欄位中每筆資料之間的最大值(就算該欄位的資料形態非是數字也可傳回),使用方法例如:
select max(欄位名稱) from 資料表名稱;
(c) avg (欄位名稱) :回傳該欄位中每筆資料加總後的平均值(就算該欄位的資料形態非是數字也可傳回),使用方法例同上。
(d) min(欄位名稱) :回傳該欄位中每筆資料之間的最小值(就算該欄位的資料形態非是數字也可傳回),使用方法例同上。
(e) max(欄位名稱) :回傳該欄位中每筆資料的加總(就算該欄位的資料形態非是數字也可傳回),使用方法例同上。
(11) sql的子查詢(subquery):在where 後的欄位條件為另一個由select開頭的查詢指令。在欄位條件與資料庫中的其他資料表有關時適用。
例如,在資料表1和資料表2中都有一個欄位名稱,叫做欄位名稱1,而在資料表2中有個欄位叫欄位名稱2:
select* from 資料表1 where 欄位名稱1=(select 欄位名稱1 from 資料表2 where 欄位名稱2 = “10”);
//意思是,將資料表2中、欄位名稱2=10的資料找出來,並將其欄位名稱1對應到資料表1的欄位名稱1,查詢在資料表1中符合此條件的資料。