最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

最新MySQL高級SQL語句大全

 更新時間:2022年06月27日 16:11:55   作者:風雪一更ing  
這篇文章主要介紹了MySQL高級SQL語句,主要包括常用查詢知識order by按關(guān)鍵字排序的sql語句,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

引言

對MySQL數(shù)據(jù)庫的查詢,除了基本的查詢外,有時候需要對查詢的結(jié)果集進行處理。例如只取10條數(shù)據(jù)、對查詢結(jié)果進行排序或分組等等。

一、常用查詢

1、order by按關(guān)鍵字排序

使用SELECT語句可以將需要的數(shù)據(jù)從MySQL數(shù)據(jù)庫中查詢出來,如果對查詢的結(jié)果進行排序,可以使用order by語句來對語句實現(xiàn)排序,并最終將排序的結(jié)果返回給用戶。這個語句的排序不光可以針對某一個字段,也可以針對多個字段。

語法:

select 字段1,字段2... from 表名 order by 字段1,字段2... asc   #查詢結(jié)果以升序方式顯示,asc可以省略
select 字段1,字段2... from 表名 order by 字段1,字段2,... desc #查詢結(jié)果以降序方式顯示

ASC是按照升序進行排序,是默認的排序方式,即ASC可以省略。SELECT語句中如果沒有指定具體的排序方式,則默認按ASC方式進行排序。DESC是按照降序方式進行排列。當然order by前面也可以使用where子句對查詢結(jié)果進一步過濾。

1.1 升序排序

select name ,score from report order by score;

1.2 降序排序

select name ,score from report order by score desc;

1.3 結(jié)合where進行條件過濾再排序

select name,score,address from report where address='hangzhou' order by score;

1.4 多字段排序

ORDER BY 語句也可以使用多個字段來進行排序,當排序的第一個字段相同的記錄有多條的情況下,這些多條的記錄再按照第二個字段進行排序,ORDER BY 后面跟多個字段時,字段之間使用英文逗號隔開,優(yōu)先級是按先后順序而定,但order by 之后的第一個參數(shù)只有在出現(xiàn)相同值時,第二個字段才有意義。

select name,score,score2 from report order by score2,score desc;

此處做的實驗是先升序排序再降序排序,也可以都降序排序或者都升序排序,這里就不做過多的例子了。

2、and/or判斷

在大型數(shù)據(jù)庫中,有時查詢數(shù)據(jù)需要數(shù)據(jù)符合某些特點條件
AND/OR 且/或 和shell腳本中一樣使用方法

2.1 and/or 且與或的使用

select name,score,cardid from report where score>80;

select name,score,cardid from report where score>80 and score<90;
select name,score,cardid from report where score<60 or score>90;

2.2 嵌套、多條件使用

select name,score,cardid from report where score<60 or (score>70 and score<80);
select name,score,cardid from report where score<60 or (score>70 and score<=100) order by score desc;

3、distinct 查詢不重復(fù)記錄

select distinct 字段 from 表名﹔
 distinct 必須放在最開頭
 distinct 只能使用需要去重的字段進行操作
 distinct 去重多個字段時,含義是:幾個字段同時重復(fù)時才能被過濾,會默認按左邊第一個字段為依據(jù)。

4、GROUP BY對結(jié)果進行分組

通過 SQL 查詢出來的結(jié)果,還可以對其進行分組,使用 GROUP BY 語句來實現(xiàn) ,GROUP BY 通常都是結(jié)合聚合函數(shù)一起使用的,常用的聚合函數(shù)包括:計數(shù)(COUNT)、 求和(SUM)、求平均數(shù)(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分組的時候可以按一個或多個字段對結(jié)果進行分組處理。

  1. 對group by 后面的字段的查詢結(jié)果進行匯總分組,通常是結(jié)合聚合函數(shù)一起使用的
  2. group by 有一個原則,就是select 后面的所有列中,沒有使用聚合函數(shù)的列必須出現(xiàn)在 group by 的后面。
select 字段,聚合函數(shù) from 表名 (where 字段名(匹配) 數(shù)值) group by 字段名;

5、limit限制結(jié)果條目

limit 限制輸出的結(jié)果記錄

在使用 MySQL SELECT 語句進行查詢時,結(jié)果集返回的是所有匹配的記錄(行)。有時候僅需要返回第一行或者前幾行,這時候就需要用到 LIMIT 子句。

語法格式:
select 字段 from 表名 limit [offset,] number
 
limit 的第一個參數(shù)是位置偏移量(可選參數(shù)),是設(shè)置 mysql 從哪一行開始
 
如果不設(shè)定第一個參數(shù),將會從表中的第一條記錄開始顯示。
 
第一條偏移量是0,第二條為1
 
offset 為索引下標
 
number 為索引下標后的幾位

6、設(shè)置別名(alias—as)

在 mysql 查詢時,當表的名字比較長或者表內(nèi)某些字段比較長時,為了方便書寫或者多次使用相同的表,可以給字段列或表設(shè)置別名,方便操作,增強可讀性。

列的別名  select 字段 as 字段別名 表名
 
表的別名 select 別名.字段 from 表名 as 別名
 
as 可以省略

使用場景:

對復(fù)雜的表進行查詢的時候,別名可以縮短查詢語句的長度多表相連查詢的時候(通俗易懂、減短sql語句)

在為表設(shè)置別名時,要保證別名不能與數(shù)據(jù)庫中的其他表的名稱沖突。

列的別名是在結(jié)果中有顯示的,而表的別名在結(jié)果中沒有顯示,只在執(zhí)行查詢時使用。

6.1 查詢表的記錄數(shù)量,以別名顯示

6.2 利用as,將查詢的數(shù)據(jù)導(dǎo)入到另外一個表內(nèi)

create table report2 as select * from report;
select * from report2;
select * from report;

此處as起到的作用:

  1. 創(chuàng)建了一個新表, 并定義表結(jié)構(gòu),插入表數(shù)據(jù)(與school表相同)
  2. 但是”約束“沒有被完全”復(fù)制“過來 #但是如果原表設(shè)置了主鍵,那么附表的:default字段會默認設(shè)置一個0

7、通配符

  • 通配符主要用于替換字符串中的部分字符,通過部分字符的匹配將相關(guān)結(jié)果查詢出來。
  • 通常通配符都是跟LIKE一起使用的,并協(xié)同WHERE子句共同來完成查詢?nèi)蝿?wù)。
  • 常用的通配符有兩個,分別是:
%:百分號表示零個、一個或多個字符
_:下劃線表示單個字符

通配符“%”和“_”不僅可以單獨使用,也可以組合使用

到此這篇關(guān)于MySQL高級SQL語句的文章就介紹到這了,更多相關(guān)mysql sql語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql聚集索引、輔助索引、覆蓋索引、聯(lián)合索引的使用

    mysql聚集索引、輔助索引、覆蓋索引、聯(lián)合索引的使用

    本文主要介紹了mysql聚集索引、輔助索引、覆蓋索引、聯(lián)合索引的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL數(shù)據(jù)表的常見約束小結(jié)

    MySQL數(shù)據(jù)表的常見約束小結(jié)

    在數(shù)據(jù)庫設(shè)計中,約束(Constraints)是用于確保數(shù)據(jù)的完整性、準確性和一致性的規(guī)則,MySQL?提供了多種約束類型,幫助我們規(guī)范數(shù)據(jù)存儲,本文給大家介紹了MySQL數(shù)據(jù)表的常見約束,需要的朋友可以參考下
    2024-12-12
  • IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    這篇文章主要介紹了IDEA使用mybatis-generator以及配上mysql8.0.3版本遇到的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • mysql 查詢數(shù)據(jù)庫響應(yīng)時長的方法示例

    mysql 查詢數(shù)據(jù)庫響應(yīng)時長的方法示例

    要查詢MySQL數(shù)據(jù)庫的響應(yīng)時長,通常我們需要測量查詢執(zhí)行的時間,本文主要介紹了mysql 查詢數(shù)據(jù)庫響應(yīng)時長的方法示例,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • MySQL詳細講解變量variables的用法

    MySQL詳細講解變量variables的用法

    MySQL系統(tǒng)變量(system variables)實際上是一些系統(tǒng)參數(shù),用于初始化或設(shè)定數(shù)據(jù)庫對系統(tǒng)資源的占用,文件存放位置等等,本篇文章我們來探究一下variables
    2022-06-06
  • 如何解決mysql執(zhí)行導(dǎo)入sql文件速度太慢的問題

    如何解決mysql執(zhí)行導(dǎo)入sql文件速度太慢的問題

    文章介紹了一種通過修改MySQL導(dǎo)出命令參數(shù)來優(yōu)化大SQL文件導(dǎo)入速度的方法,通過對比目標庫和導(dǎo)出庫的參數(shù)值,并使用優(yōu)化后的參數(shù)進行導(dǎo)出,再在目標庫導(dǎo)入,顯著提高了導(dǎo)入速度
    2024-11-11
  • 淺析MySQL中主從延遲問題的原因與解決方法

    淺析MySQL中主從延遲問題的原因與解決方法

    這篇文章主要帶大家從一個主從延遲問題開始回顧主從復(fù)制原理,并思考主從延遲造成的原因和解決方案,文中的示例代碼講解詳細,感興趣的可以了解下
    2024-02-02
  • MySQL中字符串函數(shù)詳細介紹

    MySQL中字符串函數(shù)詳細介紹

    通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。
    2011-05-05
  • MySQL日志專項之redo log和undo log介紹

    MySQL日志專項之redo log和undo log介紹

    MySQL日志記錄了MySQL數(shù)據(jù)庫日常操作和錯誤信息,MySQL有不同類型的日志文件(各自存儲了不同類型的日志),從日志當中可以查詢到MySQL數(shù)據(jù)庫的運行情況、用戶操作、錯誤信息等
    2022-08-08
  • 一起了解了解MySQL存儲引擎

    一起了解了解MySQL存儲引擎

    大家好,本篇文章主要講的是一起了解了解MySQL存儲引擎,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論

抚远县| 富川| 呼伦贝尔市| 伊春市| 江阴市| 航空| 鄂州市| 桃园县| 黄石市| 青州市| 黄龙县| 无为县| 南部县| 景东| 闽清县| 密山市| 道真| 郑州市| 潍坊市| 新绛县| 盖州市| 丰都县| 湖北省| 堆龙德庆县| 丰顺县| 江城| 沽源县| 弥渡县| 大田县| 中江县| 绵竹市| 丰城市| 巍山| 磴口县| 彰武县| 柳江县| 榕江县| 渝北区| 萝北县| 沁阳市| 广宁县|