1. 程式人生 > 其它 >Mysql資料庫—高價語句一(各種判斷/函式)

Mysql資料庫—高價語句一(各種判斷/函式)

目錄

一、查詢要求欄位的記錄-select

select 欄位 from 表名;

二、查詢不重複記錄-distinct

select distinct 欄位 from 表名;

三、有條件查詢-where

select 欄位 from 表名 where 條件;

四、且/或的運用

select 欄位 from 表名 where 條件1 and/or 條件2;

五、顯示已知的值的記錄-in

select 欄位 from 表名 where 欄位 in(值1,值2);

六、顯示兩個值範圍內的記錄-between

select 欄位 from 表名 where 欄位 between 值1 and 值2;

七、萬用字元

1.萬用字元主要用於替換字串中的部分字元,通過部分字元的匹配將相關結果查詢出來
2.通常萬用字元都是和 like(模糊查詢)一起使用的,並協同 where子句共同來完成查詢任務
3.常用的萬用字元有兩個:
%:百分號表示任意個數的任意字元
_:下劃線表示單個字元

八、按關鍵字排序-order by

select 欄位 from 表名 order by 欄位 ASC|DESC
預設不寫/ASC:升序
DESC:降序

九、函式

9.1 數學函式

1.abs(x)          返回x的絕對值 
2.rand()          返回0到1的隨機數
3.mod(x,y)        返回x除以y以後的餘數
4.power(x, y)     返回x的y次方 
5.round(x)        返回離x最近的整數
6.round(x, y)     保留x的y位小數四捨五入後的值
7.sqrt(x)         返回x的平方根 
8.truncate(x, y)  返回數字x截斷為y位小數的值
9.ceil(x)         返回大於或等於x的最小整數
10.floor(x)       返回小於或等於x的最大整數
11.greatest(x1, x2...) 返回集合中最大的值 
12.least(x1, x2...)    返回集合中最小的值

9.2 聚合函式

1.avg()  返回指定列的平均值
2.count () 返回指定列中非NULL值的個數
注:count (欄位):會自動忽略欄位值為null的行
    count(*):包括所有行,不會忽略null
3.min()    返回指定列的最小值
4.max ()   返回指定列的最大值
5.Sum(x)   返回指定列的所有值之和


9.3 字串函式

1.trim()         返回去除指定格式的值 
2.concat (x, y)  將提供的引數x和y拼接成一個字串
3.substr (x,y)   獲取從字串x中的第y個位置開始的字串,跟substring()函式作用相同
4.substr(x,y,z)  獲取從字串x中的第y個位置開始長度為z的字串
5.length(x)      返回字串x的長度
6.replace(x, y, z) 將字串z替代字串x中的字串y
7.upper(x)       將字串x的所有字母變成大寫字母
8.lower(x)       將字串x的所有字母變成小寫字母
9.left(x,y)      返回字串x的前y個字元
10.right (x, y)  返回字串x的後y個字元
11.repeat (x, y) 將字串x重複y次 
12.space (x)     返回x個空格  
13.strcmp (x, y) 比較x和y,返回的值可以為-1,0,1
14.reverse(x)    將字串x反轉 

十、對查詢結果進行彙總分組,通常結合聚合函式-group by

select後的所有列中,沒有使用聚合函式的列,必須出現在group by後面
select 欄位,聚合函式 from 表名  group by 欄位名;

十一、過濾group by語句返回的記錄,與group by連用-having

select 欄位,聚合函式 from 表名  group by 欄位名 having 函式條件;

十二、欄位別名、表格別名-as

列的別名
select 欄位 [as] 欄位別名 from表名;

表的別名
select 欄位 from 表名 [as] 別名;

十三、子查詢-連線表格,在where或having中插入另一個sql語句

13.1 定義

1.子查詢也被稱作內查詢或者巢狀查詢,是指在一個查詢語句裡面還巢狀著另一個查詢語句
2.子查詢語句是先於主查詢語句被執行的,其結果作為外層的條件返回給主查詢進行下一步的查詢過濾
3.子語句可以與主語句所查詢的表相同,也可以不同

12.2 語法

select 欄位1 from 表格1 where 欄位2 [比較運算子] #外查詢
(select 欄位1 from 表格2 where 條件);         #內查詢
[比較運算子]指=、>、<、>=、<=,也可指文字的運算子,例如like、in、between


十四、測試查詢有無結果-exists

select 欄位 from 表格1 where exists (select 欄位 from 表格2 where 條件);