免费可以看的无遮挡av无码|国产在线拍揄自揄视频网站|在线无码精品视频播放在|欧美亚洲国产成人精品,国产成人久久77777精品,亚洲欧美视频在线观看,色偷偷色噜噜狠狠网站久久

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 全方位揭秘!大數(shù)據(jù)從0到1的完美落地之Mysql操作DQL

全方位揭秘!大數(shù)據(jù)從0到1的完美落地之Mysql操作DQL

來源:千鋒教育
發(fā)布人:syq
時間: 2023-03-20 14:23:00 1679293380

  DQL是數(shù)據(jù)查詢語言(Data Query Language)的縮寫,是一種用于從數(shù)據(jù)庫中檢索數(shù)據(jù)的編程語言。DQL是SQL(結(jié)構(gòu)化查詢語言)的子集,用于查詢關(guān)系型數(shù)據(jù)庫,例如MySQL、Oracle和SQL Server等。

  DQL提供了多種查詢操作,如SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等。使用這些操作,可以根據(jù)特定的條件檢索所需的數(shù)據(jù),并按照特定的順序進行排序和分組。

  DQL還支持多表查詢和子查詢,可以從多個表中聯(lián)合檢索數(shù)據(jù),并在子查詢中使用嵌套查詢語句進行檢索。

  基礎(chǔ)的查詢語法

select ... from ...select [distinct] ... from ... [where ...] [group by ...] [having ...] [order by ...] [limit ...]

  查詢語句的執(zhí)行順序

  先執(zhí)行from子句: 基于表進行查詢操作

  再執(zhí)行where子句: 進行條件篩選或者條件過濾

  再執(zhí)行g(shù)roup by子句: 對剩下的數(shù)據(jù)進行分組查詢。

  再執(zhí)行having子句: 分組后,再次條件篩選或過濾

  然后執(zhí)行select子句: 目的是選擇業(yè)務需求的字段進行顯示

  再執(zhí)行order by子句: 對選擇后的字段進行排序

  最后執(zhí)行l(wèi)imit子句: 進行分頁查詢,或者是查詢前n條記錄

  準備數(shù)據(jù)

  在學習接下來的查詢的語法之前,我們提前準備幾張表,并向這張表中插入一些數(shù)據(jù),方便我們之后的查詢操作。

  student表

12

13

  emp表

14

15

  dept表

16

  基礎(chǔ)查詢

  1.查詢所有列

17

  2.查詢指定列

18

  條件查詢

  條件查詢就是在查詢時給出WHERE子句,在WHERE子句中可以使用如下運算符及關(guān)鍵字:

  =、!=、<>、<、<=、>、>=、BETWEEN…AND、IN(set)、IS NULL、AND、OR、NOT、XOR (邏輯異或)

  1.查詢性別為女,并且年齡小于50的記錄

19

  2.查詢學號為S_1001,或者姓名為liSi的記錄

20

  3.查詢學號為S_1001,S_1002,S_1003的記錄

21

  模糊查詢

  按照模糊的條件進行查詢,可以使用LIKE條件,或者REGEXP。

  like

  like用于where子句之后,表示部分的匹配。在like后,通常會有兩種通配符:

  _ => 表示匹配任意的一位字符。

  % => 表示匹配任意位的字符。

22

  regexp

  使用正則表達式進行字符串的匹配。

23

  字段控制

  去除重復記錄

  去除重復記錄(兩行或兩行以上記錄中系列的上的數(shù)據(jù)都相同),例如emp表中sal字段就存在相同的記錄。當只查詢emp表的sal字段時,那么會出現(xiàn)重復記錄,那么想去除重復記錄,需要使用DISTINCT:

24

  列之間的計算

  查看雇員的月薪與傭金之和,因為sal和comm兩列的類型都是數(shù)值類型,所以可以做加運算。如果sal或comm中有一個字段不是數(shù)值類型,那么會出錯。

25

  comm列有很多記錄的值為NULL,因為任何東西與NULL相加結(jié)果還是NULL,所以結(jié)算結(jié)果可能會出現(xiàn)NULL。下面使用了把NULL轉(zhuǎn)換成數(shù)值0的函數(shù)IFNULL

26

  給列名添加別名

  在上面查詢中出現(xiàn)列名為sal+IFNULL(comm,0),這很不美觀,現(xiàn)在我們給這一列給出一個別名,為total:

27

  給列起別名時,是可以省略AS關(guān)鍵字的:

28

  結(jié)果排序

  1.查詢所有學生記錄,按年齡升序排序

29

  2.查詢所有學生記錄,按年齡降序排序

30

  3.查詢所有雇員,按月薪降序排序,如果月薪相同時,按編號升序排序

31

  聚合函數(shù)

  聚合函數(shù),是作用在一列數(shù)據(jù)上的,對一列的數(shù)據(jù)進行運算的函數(shù)。包含有: max、min、sum、count、avg等常見的函數(shù)。

  max(): 計算指定列數(shù)據(jù)的最大值

  min(): 計算指定列數(shù)據(jù)的最小值

  count(): 計算指定列不為NULL的數(shù)據(jù)的數(shù)量

  sum(): 計算指定列的數(shù)值的和,如果計算的列的類型不是數(shù)值類型,計算結(jié)果為0

  avg(): 計算指定列的數(shù)值的平均值,如果計算的列的類型不是數(shù)值類型,計算的結(jié)果為0

  使用方法如下:

  max

32


  min

33


  count

34

  sum

35

  avg

36

  注意:

  在上述的需求中,我們需要統(tǒng)計員工的平均工資。但是,有些行的數(shù)據(jù)中,工資(sal)對應的值是NULL。

  例如: 表中一共有20行數(shù)據(jù),有2行數(shù)據(jù)是NULL。那么平均值在計算的時候,會將每一個人的工資加到一起,用這個和除18,而并不是20。因為聚合函數(shù)不會統(tǒng)計NULL值的。

  如果需求需要將這個和均攤到每一個人的身上,包括NULL的行,那就需要對這條SQL語句進行修改了:

  select avg(ifnull(sal, 0)) from emp;

  分組查詢

  在進行查詢的時候,可以按照某一個或多個字段進行分組。分組字段值相同的行會被視為一個分組。一般情況下,分組的意義是對每一個分組的數(shù)據(jù)進行聚合的統(tǒng)計,例如統(tǒng)計每一個分組的數(shù)量、最大值等操作。

  注意事項: 查詢的字段中只能包含分組字段和聚合函數(shù)

  group by

37

  having

  having是一個數(shù)據(jù)過濾的控制條件,類似于where,但是又和where有不同的地方:

  having是作用在分組之后的數(shù)據(jù)的,where是作用在分組之前的數(shù)據(jù)的。被where過濾掉的數(shù)據(jù)不參與分組。

  寫法體現(xiàn): having需要寫在group by之后,where需要寫在group by之前。

  having之后可以使用聚合函數(shù),where不可以使用聚合函數(shù)。

38

  imit

  select查詢語句會查詢出來一張表中所有的滿足條件的數(shù)據(jù)。limit關(guān)鍵字可以限制查詢結(jié)果的行數(shù)。

39

  靈活的使用limit,可以實現(xiàn)分頁查詢的效果。

40

  查詢總結(jié)

  查詢語句書寫順序

  select – from - where - group by - having - order by - limit

  查詢語句執(zhí)行順序

  from - where -group by - having - select - order by-limit

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實際應用中,我們經(jīng)常需要對字符串進行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應用實現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計算機編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個集合?

在Python中,集合是一種無序且不重復的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會打印指定文件的所有內(nèi)容到標準輸出上,比...詳情>>

2023-10-31 19:58:15