日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

MySQL的進階查詢
一、 按關鍵字排序
使用ORDERBY語句來實現排序排序可針對一個或多個字段ASC:升序,默認排序方式 【升序是從小到大】DESC:降序 【降序是從大到小】ORDER BY的語法結構ORDER BY后面跟字段名
準備一張成績表

MySQL高級SQL語句

 


語法結構

MySQL高級SQL語句

 


1.1 單字段排序
升序

MySQL高級SQL語句

 


降序

MySQL高級SQL語句

 


1.2 多字段排序
先以前面的字段(主參考字段)排序,如果相同再按后面的字段排序

MySQL高級SQL語句

 


二 、對結果進行分組
使用GROUP BY語句來實現分組通常結合聚合函數一起使用可以按一個或多個字段對結果進行分組GROUP BY的語法結構
2.1 group by分組
按照hobby分組(相同hobby一個組),并統計每個組的人數

MySQL高級SQL語句

 


2.2 group by結合order by
先按hobby分組,再按hobby序號降序排列

MySQL高級SQL語句

 


三、限制結果條目LIMIT
只返回SELECT查詢結果的第一行或前幾行使用LIMIT語句限制條目
LIMIT語法結構

MySQL高級SQL語句

 


查看前兩行

MySQL高級SQL語句

 


查看從第四行開始的五行內容

MySQL高級SQL語句

 


四、設置別名
使用AS語句設置別名,關鍵字AS可省略設置別名時,保證不能與庫中其他表或字段名稱沖突
別名的語法結構

MySQL高級SQL語句

 


AS的用法
對于字段設置

MySQL高級SQL語句

 


對于表設置,一般在多表查詢時使用
多表操作時,對表別名之后,在select字段時要用別名.字段,區分字段屬于哪個表

MySQL高級SQL語句

 


作為連接語句
創建一個新表,將舊表的內容導入,與舊表的區別在于表的結構

MySQL高級SQL語句

 


五、通配符
用于替換字符串的部分字符通常配合LIKE一起使用,并協同WHERE完成查詢常用的通配符%表示零個、一個或多個_表示單個字符
例:
查詢以姓名y開頭的記錄:

MySQL高級SQL語句

 


查詢姓名為y_ _y_格式的記錄,_代表單個字符,占位

MySQL高級SQL語句

 


六、子查詢
也稱作內查詢或者嵌套查詢先于主查詢被執行,其結果將作為外層主查詢的條目在增刪改查中都可以使用子查詢支持多層嵌套IN語句是用來判斷某個值是否在給定的結果集中
例:根據表need,篩選出與need表中內容相匹配的成績表的內容

MySQL高級SQL語句

 


多層嵌套,篩選出need表中id與chengji表id相同的記錄之后,在這基礎上再篩選出名字相同的記錄

MySQL高級SQL語句

 


等同于下面兩步的操作

MySQL高級SQL語句

 


七、視圖
數據庫中的虛擬表,這張虛擬表中不包含任何數據,只是做了數據映射;
創建視圖并查看:

MySQL高級SQL語句

 


八、NULL值
表示缺失的值與數字0或者空白(spaces)是不同的使用IS NULL或IS NOT NULL進行判斷
NULL與空值的區別:
空值長度為0,不占空間;NULL值的長度為NULL,占用空間
IS NULL無法判斷空值 空值使用“=”或者“<>”來處理
COUNT()計算時,NULL會忽略,不加入計算,空值會加入計算
九、正則表達式
根據指定的匹配模式匹配記錄中符合要求的特殊字符使用REGEXP關鍵字指定匹配模式
常用匹配模式

MySQL高級SQL語句

 


例:
查詢以l開頭的記錄:

MySQL高級SQL語句

 


查詢以o結尾的

MySQL高級SQL語句

 


.代表任意單個字符,占位,查詢lihao的記錄

MySQL高級SQL語句

 


查詢不是z開頭的

MySQL高級SQL語句

 


匹配w及后面一個w兩次

MySQL高級SQL語句

 


十、運算符
MySQL 的運算符用于對記錄中的字段值進行運算。MySQL 的運算符共有四種,分別是:算術運算符、比較運算符、邏輯運算符和位運算符。下面分別對這四種運算符進行說明。
10.1 算數運算符
MYSQL支持使用的運算符號

MySQL高級SQL語句

 


MySQL高級SQL語句

 


10.2 比較運算符
常用比較運算符

MySQL高級SQL語句

 


10.2.1 等于
等號(=)是用來判斷數字、字符串和表達式是否相等的,如果相等則返回 1,如果不相等則返回 0。如果比較的兩者有一個值是 NULL,則比較的結果就是 NULL。其中字符的比較是根據 ASCII 碼來判斷的,如果 ASCII 碼相等,則表示兩個字符相同;如果 ASCII 碼不相等,則表示兩個字符不相同。例如,等于運算符在數字、字符串和表達式上的使用

MySQL高級SQL語句

 


10.2.2 不等于
不等于號有兩種寫法,分別是<>或者!=,用于針對數字、字符串和表達式不相等的比較。如果不相等則返回 1,如果相等則返回 0,這點正好跟等于的返回值相反。需要注意的是不等于運算符不能用于判斷 NULL。

MySQL高級SQL語句

 


10.2.3 大于、大于等于、小于、小于等于
大于(>)運算符用來判斷左側的操作數是否大于右側的操作數,若大于返回 1,否則返回 0,同樣不能用于判斷 NULL。小于(<)運算符用來判斷左側的操作數是否小于右側的操作數,若小于返回 1,否則返回 0,同樣不能用于判斷 NULL。大于等于(>=)判斷左側的操作數是否大于等于右側的操作數,若大于等于返回 1,否則返回 0,不能用于判斷 NULL。小于等于(<=)判斷左側的操作數是否小于等于右側的操作數,若小于等于返回 1,否則返回 0,不能用于判斷 NULL。數值比較會自動轉換ASCII表的數值
幾個常用Dec(十進制):
0是48,A是65,a是97,其余的都是按順序下去的

MySQL高級SQL語句

 


10.2.4 IS NULL、IS NOT NULL
ISNULL 判斷一個值是否為 NULL,如果為 NULL 返回 1,否則返回 0。IS NOT NULL 判斷一個值是否不為 NULL,如果不為 NULL 返回 1,否則返回 0

MySQL高級SQL語句

 


10.2.5 BETWEEN AND
BETWEEN AND 比較運算通常用于判斷一個值是否落在某兩個值之間。例如,判斷某數字是否在另外兩個數字之間,也可以判斷某英文字母是否在另外兩個字母之間。between and 包含兩端

MySQL高級SQL語句

 


10.2.6 LEAST、GREATEST
LEAST:當有兩個或者多個參數時,返回其中的最小值。如果其中一個值為 NULL,則返回結果就為 NULL。
GREATEST:當有兩個或者多個參數時,返回其中的最大值。如果其中一個值為 NULL, 則返回結果就為 NULL。

MySQL高級SQL語句

 


10.2.7 IN、NOT IN
IN 判斷一個值是否在對應的列表中,如果是返回 1,否則返回 0。
NOT IN 判斷一個值是否不在對應的列表中,如果不是返回 1,否則返回 0。

MySQL高級SQL語句

 


10.3 邏輯運算符
邏輯運算符又被稱為布爾運算符,通常用來判斷表達式的真假,如果為真返回 1,否則返回 0,真和假也可以用 TRUE 和 FALSE 表示。

MySQL高級SQL語句

 


10.3.1 邏輯非
邏輯運算符中最簡單的運算符就是邏輯非,邏輯非使用 NOT 或!表示。邏輯非將跟在它后面的邏輯測試取反,把真變為假,把假變為真。如果 NOT 后面的操作數為 0 時,所得值為 1;如果操作數為非 0 時,所得值為 0;如果操作數為 NULL 時,所得值為 NULL。例如,對非 0 值和 0 值分別作邏輯非運算,具體操作如下所示。

MySQL高級SQL語句

 


10.3.2 邏輯與
邏輯與通常用于判斷兩個值或多個值的有效性,如果所有值都是真返回 1,否則返回 0。邏輯與使用 AND 或者&&表示。例如,對非 0 值、0 值和 NULL 值分別作邏輯與運算,具體操作如下所示。

MySQL高級SQL語句

 


10.3.3 邏輯或
邏輯與通常用于判斷兩個值或多個值的有效性,如果所有值都是真返回 1,否則返回 0。邏輯與使用 AND 或者&&表示。例如,對非 0 值、0 值和 NULL 值分別作邏輯與運算。
一旦有個非0值,出來就是非0值

MySQL高級SQL語句

 


10.3.4 邏輯異或
兩個非 NULL 值的操作數,如果兩者都是 0 或者都是非 0,則返回 0;如果一個為 0, 另一個為非 0,則返回結果為 1;當任意一個值為 NULL 時,返回值為 NULL。例如,對非0 值、0 值和 NULL 值分別作邏輯異或運算,具體操作如下所示。
有null結果就會為null。

MySQL高級SQL語句

 


10.4 位運算符
位運算符實際上是對二進制數進行計算的運算符。MySQL 內位運算會先將操作數變成二進制格式,然后進行位運算,最后在將計算結果從二進制變回到十進制格式,方便用戶查看。

MySQL高級SQL語句

 


10.5 運算符的優先級
以上不管哪種運算符,在使用過程中都有優先級問題。運算符的優先級決定了不同的運 算符在計算過程中的先后順序。級別高的運算符會先進行計算,如果運算符的級別相同, MySQL 會按照順序從左到右依次進行計算。如果不確定所使用的運算符的優先級,可以使用()改變優先級。

MySQL高級SQL語句

 

分享到:
標簽:語句 SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定