利用select檢索數據
沒錯這就是DQL,數據查詢語言。來看看怎麽用。
select語句按照復雜程度來說分為簡單查詢、where查詢、多表查詢、子查詢等。
先來看看select的語法
1.select 2.[distince|all] //描述列表字段中的數據是否去除重復記錄 3. select_list 需要查詢的字段列表,也可以說是占位符。可以是一個字段,也可以多個字段 4.from table_list 5.[where_clause] //查詢條件 6.[group_by_clause] // group by子句部分 7.[having condition]//havint子句部分 8.[order_by_clause]//排序
方便研究,先來創建一個表pro。
productid | productname | productprice | quantity | category | origin |
1 | 夏普 | 1000 | 22 | 1 | 日本 |
2 | 海爾 | 2000 | 33 | 2 | 中國 |
3 | 三星 | 3000 | 44 | 3 | 韓國 |
4 | 華為 | 4000 | 55 | 4 | 中國 |
1.簡單查詢
簡單查詢用到上面查詢語句的前四行。
1.獲取productname 和 origin的數據
2.獲取所有字段的數據
3.使用別名替代表中的字段名。 指定別名可以使用as關鍵字。
4.使用表達式操作查詢的字段
可以針對某個列使用表達式,這樣查詢出來的結果就是修改後的數據,但是數據庫表裏面的數據不會改變
不用的時候
那麽想要讓他都變成1.25倍呢?可以使用
這裏面 || 是用來連接字符串的。
5.使用函數操作查詢的數據
查詢過程中允許檢索的列使用函數對其操作,如果僅僅是查詢,那麽更多的是利用函數對數據進行類型轉換。
利用函數 subStr,對字符串進行截取。
截取前兩位字符串。
6.去除檢索數據中的重復記錄
使用distince(column_name)來去重復數據
2.檢索出來的數據排序
1.使用升序或者降序排序
按照productname進行排序,先來看看未排序之前默認是升序的
按照升序,關鍵字是desc
按照降序,關鍵字是asc
2.排序時對null值進行處理
修改一下表
productid | productname | productprice | quantity | category | origin |
1 | 夏普 | 1000 | 22 | 1 | 日本 |
2 | 海爾 | 2000 | 33 | 2 | 中國 |
3 | 三星 | 3000 | 44 | 韓國 | |
4 | 華為 | 4000 | 55 | 4 | 中國 |
對於null值來說默認排序的時候是最大的。
但是我們可以指定null值在前面還是後面
3.使用別名作為排序字段
4.使用表達式作為排序字段
5.使用字段的位置作為排序字段
排序時允許使用查詢列表中字段的位置來作為排序字段
6.使用多個字段排序
也就是說當第一個字段都一樣時,再用第二個,依次類推。
3.where子句設置檢索條件
where條件子句中可以使用的操作符主要有關系操作符、比較操作符和邏輯操作符
關系操作符:< 、 <= 、 > 、 >=、 =、!=、<>
比較操作符:
is null:如果操作數為Null返回true
like:模糊比較字符串值
between...and...驗證值是否在範圍之內
in:驗證操作數在設定的一系列值中
邏輯操作符
and:且
or:或
not:取反
1.查詢中使用單一條件限制
主要針對關系操作符來說,也可以使用函數
2.查詢中使用多個條件限制
3.模糊查詢數據
模糊查詢使用like,它和兩個通配符一起使用,才能使用模糊查詢的功能,用這兩個通配符可以替代模糊的地方
_:代替一個字符
%:代替多個字符
4.查找條件限制在某個列表範圍內
5.專門針對null值得查詢
4.group by 和 having的使用
用於組的查詢,使用分組查詢可以統計數據。
1.根據某一個字段分組查詢
2.根據多個字段分組
3.having用來限制組的搜索條件
5.使用子查詢
什麽時候要使用子查詢呢
catagoryid | catagoryname |
1 | 電腦 |
2 | 冰箱 |
3 | 手機 |
4 | 通信設備 |
利用select檢索數據