成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

MySQL的核心查詢語句詳解

瀏覽:85日期:2023-06-08 19:37:37
目錄一、單表查詢1、排序2、聚合函數3、分組4、limit二、SQL約束1、主鍵約束2、非空約束3、唯一約束4、外鍵約束5、默認值三、多表查詢1、內連接1)隱式內連接:2)顯式內連接:2、外連接1)左外連接2)右外連接四、合并查詢1、UNION2、UNION ALL五、子查詢1、where型:2、from型:3、exists型:六、MySQL函數

本文數據分析師必看! 上次講了數據庫和MySQL基礎,這回咱們來學點MySQL最常用到的—核心查詢語句。

框住的部分是本節重點

一、單表查詢SELECT 字段名 FROM 表名 WHERE 條件 [GROUP BY 字段名 HAVING 條件 ORDER BY 字段名 LIMIT 條數];1、排序單列排序asc升序(默認,可不寫),desc降序語法格式:SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC]組合排序同時對多個字段進行排序, 如果第一個字段相同就按照第二個字段進行排序,以此類推。比如order by 字段1,字段2 desc—代表先按照字段1升序,再按字段2降序。2、聚合函數

#1 查詢員工的總數-- 統計表中的記錄條數 使用count()SELECT COUNT(eid) FROM emp; -- 使用某一個字段 SELECT COUNT(*) FROM emp; -- 使用 *SELECT COUNT(1) FROM emp; -- 使用 1,與 * 效果一樣-- 下面這條SQL 得到的總條數不準確,因為count函數忽略了空值 -- 所以使用時注意不要使用帶有null的列進行統計SELECT COUNT(dept_name) FROM emp;#2 查看員工總薪水、最高薪水、最小薪水、薪水的平均值-- sum函數求和, max函數求最大, min函數求最小, avg函數求平均值 SELECTSUM(salary) AS '總薪水', MAX(salary) AS '最高薪水', MIN(salary) AS '最低薪水', AVG(salary) AS '平均薪水'FROM emp;

count(1)count(*)count(列名)的區別: count(1)和count(*)統計所有條數,包括null值; count(列名)統計所有不為null的條數。

3、分組

分組往往和聚合函數一起使用,對數據進行分組,分完組之后在各個組內進行聚合統計分析。 語法格式:

SELECT 分組字段/聚合函數 FROM 表名 GROUP BY 分組字段 [HAVING 條件];

代碼示例:

#1.查詢每個部門的平均薪資 SELECTdept_name AS '部門名稱', AVG(salary) AS '平均薪資' FROM emp GROUP BY dept_name;#2.查詢每個部門的平均薪資, 部門名稱不能為null SELECTdept_name AS '部門名稱',AVG(salary) AS '平均薪資'FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name;

having的用法:

# 查詢平均薪資大于6000的部門-- 需要在分組后再次進行過濾,使用 having SELECTdept_name ,AVG(salary)FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name HAVING AVG(salary) > 6000 ;

where 與 having 的區別:

having要放在where和分組之后

4、limit

語法格式:

SELECT 字段1,字段2... FROM 表名 LIMIT offset,length;

參數說明: offset起始行數,從0開始記數,如果省略則默認為0。 length返回的行數。

# 查詢emp表中的前5條數據SELECT * FROM emp LIMIT 5;SELECT * FROM emp LIMIT 0,5;# 查詢emp表中從第4條開始,查詢6條 -- 起始值默認是從0開始的SELECT * FROM emp LIMIT 3,6;二、SQL約束

約束的作用: 對表中的數據進行進一步的限制,從而保證數據的正確性、有效性、完整性。 違反約束的不正確數據將無法插入到表中。注意:約束是針對字段的。

一般數據分析師對數據只是查詢,基本沒有創建修改表的權限,所以這塊大家了解就好,不用糾結語法怎么寫。在表結構中見到以下約束關鍵字,知道是對數據的約束就行了。

常見的四種約束

1、主鍵約束

特點:不可重復、唯一、非空

創建主鍵

# 方式1 創建一個帶主鍵的表 CREATE TABLE emp2(-- 設置主鍵 唯一 非空 eid INT PRIMARY KEY, ename VARCHAR(20),sex CHAR(1));-- 方式2 創建一個帶主鍵的表 CREATE TABLE emp3(eid INT ,ename VARCHAR(20), sex CHAR(1),-- 指定主鍵為 eid字段 PRIMARY KEY(eid));

增加主鍵

-- 創建的時候不指定主鍵,然后通過DDL語句進行設置 ALTER TABLE emp2 ADD PRIMARY KEY(eid);2、非空約束3、唯一約束4、外鍵約束

主鍵:數據表A中有一列,這一列可以唯一的標識一條記錄。 外鍵:數據表A中有一列,這一列指向了另外一張數據表B的主鍵。

5、默認值-- 表示性別這字段,若沒有數據則會默認填女,若有數據則顯示該數據。CREATE TABLE emp4(eid INT PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(20),sex CHAR(1) DEFAULT '女'); 三、多表查詢

數據分析師在實際工作中提取數據,不可能在一張表中就能把所有想要的數據都取到,而是關聯多張表,從不同的表中拿到不同的目標數據,這就需要掌握表和表連接的知識了。這塊非常重要!!!

1、內連接

**特點:**通過指定的條件去匹配兩張表中的數據,匹配上就顯示,匹配不上就不顯示。

1)隱式內連接:SELECT 字段名 FROM 左表, 右表 WHERE 連接條件;

示例代碼:

SELECT p.pname, p.price, c.cnameFROM products p , category c WHERE p.category_id = c.cid;2)顯式內連接:SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 條件 -- inner 可以省略

示例代碼:

SELECT * FROM products p INNER JOIN category c ON p.category_id = c.cid;2、外連接1)左外連接

特點: 以左表為基準,匹配右邊表中的數據,如果匹配的上就展示匹配到的數據; 如果匹配不到,左表中的數據正常展示,右邊的展示為null。

語法格式:

SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 條件

示例代碼:

-- 左外連接查詢SELECT * FROM category c LEFT JOIN products p ON c.cid= p.category_id;2)右外連接

特點: 以右表為基準,匹配左邊表中的數據,如果匹配的上就展示匹配到的數據; 如果匹配不到,右表中的數據正常展示,左邊的展示為null。

語法格式:

SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 條件

示例代碼:

-- 右外連接查詢SELECT * FROM products p RIGHT JOIN category c ON p.category_id = c.cid;

各種連接方式的總結:

四、合并查詢1、UNION

UNION 操作符用于合并兩個或多個SELECT語句的結果集,并消除重復行。 注意,UNION內部的SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。 同時,每條 SELECT 語句中的列的順序必須相同。

代碼示例:

SELECT id,name,amount,dateFROM customersLEFT JOIN orders on customers.Id = orders.customers_idUNIONSELECT id,name,amount,datefrom customersRIGHT JOIN orders on customers.Id = orders.customers_id;

注意:

1. 選擇的列數必須相同;

2. 所選列的數據類型必須在相同的數據類型組中(如數字或字符);

3. 列的名稱不必相同;

4. 在重復檢查期間,NULL值不會被忽略;

2、UNION ALL

UNION ALL 運算符用于將兩個 SELECT 語句的結果組合在一起,重復行也包含在內。 UNION ALL 運算符所遵從的規則與UNION一致。

總結: UNION和UNION ALL關鍵字都是將兩個結果集合并為一個,也有區別。

1、重復值:UNION在進行表連接后會篩選掉重復的記錄,而UNION All不會去除重復記錄。

2、UNION ALL只是簡單的將兩個結果合并后就返回。

3、在執行效率上,UNION ALL 要比UNION快很多。因此,若可以確認合并的兩個結果集中不 包含重復數據,那么就使用UNION ALL。

五、子查詢

定義:一條select 查詢語句的結果, 作為另一條select語句的一部分。

1、where型:

子查詢的結果作為查詢條件

SELECT 查詢字段 FROM 表 WHERE 字段=(子查詢);

代碼示例:

-- 查詢價格最高的商品信息SELECT * FROM products WHERE price = (SELECT MAX(price) FROM products);2、from型:

將子查詢的結果作為一張表

SELECT 查詢字段 FROM (子查詢)表別名 WHERE 條件;

代碼示例:

-- 查詢商品中,價格大于500的商品信息,包括商品名稱、商品價格、商品所屬分類名稱SELECT p.pname, p.price, c.cnameFROM products p-- 子查詢作為一張表使用時要起別名,才能訪問表中字段 INNER JOIN (SELECT * FROM category) c ON p.category_id = c.cid WHERE p.price > 500;3、exists型:

子查詢結果是單列多行

SELECT 查詢字段 FROM 表 WHERE 字段 IN (子查詢);

代碼示例:

--查詢價格小于2000的商品,來自于哪些分類SELECT * FROM categoryWHERE cid in (SELECT DISTINCT category_id FROM products WHERE price < 2000);

總結:

1. 子查詢如果查出的是一個字段(單列),那就在where后面作為條件使用。 單列單行 = 單列多行 in

2. 子查詢如果查詢出的是多個字段(多列),就當做一張表使用(要起別名)。

六、MySQL函數

函數常用的就這些了,不用硬記,不會的百度查就行了,寫著寫著就記住了。

1、數學函數

2、字符串函數

3、日期和時間函數(必學)

4、條件判斷函數(這個必須掌握!!!)

5、系統信息函數(可忽略)

到此這篇關于MySQL的核心查詢語句詳解的文章就介紹到這了,更多相關MySQL的核心查詢內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲人123区| 秋霞午夜av一区二区三区| 午夜视黄欧洲亚洲| 亚洲日本成人| 国产三级精品三级在线专区| 成人美女视频在线观看| 欧美一级免费大片| 国产精品自拍av| 777午夜精品免费视频| 久草精品在线观看| 欧美性色aⅴ视频一区日韩精品| 图片区小说区区亚洲影院| 亚洲免费综合| 午夜视频久久久久久| 99精品国产高清一区二区| 自拍视频在线观看一区二区| 国产一区二区中文| 国产精品久久久久久一区二区三区| 欧美精品成人| 国产精品久久综合| 欧美视频观看一区| 国产精品欧美精品| 欧美日韩国产在线一区| 国产精品入口麻豆原神| 国产精品s色| 国产精品欧美一区二区三区| 影院欧美亚洲| 一区二区三区在线播| 亚洲综合欧美| 偷拍亚洲欧洲综合| 在线观看91视频| 韩日精品视频一区| 91精品国产欧美日韩| 国产成人在线影院| 久久伊人蜜桃av一区二区| 午夜精品国产| 国产精品嫩草影院com| 欧美日韩在线精品| 日韩码欧中文字| 国产日韩欧美| 日韩va欧美va亚洲va久久| 欧美日韩一级片在线观看| 国产成人自拍在线| 久久人人97超碰com| 99久久99久久免费精品蜜臀| 国产精品网曝门| 夜久久久久久| 日韩电影在线免费| 欧美一区日韩一区| 午夜国产精品视频| 亚洲综合一二区| 一本大道久久a久久综合| 激情另类小说区图片区视频区| 欧美一区二区三区四区高清 | 欧美成人精品高清在线播放| 91麻豆精品视频| 日韩一区在线播放| 久久亚洲二区| 国产成人精品1024| 最新国产の精品合集bt伙计| 久久精品官网| 成人精品视频一区二区三区尤物| 中文字幕第一区第二区| 国产亚洲一区在线| 精东粉嫩av免费一区二区三区| 日韩久久免费av| 亚洲无毛电影| 日本中文字幕一区| 日韩一卡二卡三卡| 欧美视频官网| 亚州成人在线电影| 91麻豆精品久久久久蜜臀| 91蝌蚪porny| 亚洲一二三四久久| 欧美视频一区二区三区在线观看 | 亚洲欧美日韩国产一区| 精品一区二区三区免费| 久久女同精品一区二区| 亚洲一区亚洲| 国产91精品免费| 夜夜嗨av一区二区三区四季av| 欧美日韩激情一区二区三区| 91香蕉国产在线观看软件| 亚洲午夜影视影院在线观看| 欧美一级日韩免费不卡| 韩日欧美一区| 久久aⅴ国产欧美74aaa| 国产精品久久99| 欧美日韩一级大片网址| 欧美日韩在线播放一区二区| 日本不卡视频在线观看| 久久久久亚洲蜜桃| 一本到不卡精品视频在线观看| 成人avav影音| 亚洲综合免费观看高清完整版 | 在线免费观看一区二区三区| 美女久久久精品| 中日韩免费视频中文字幕| 欧美色网一区二区| 欧美日韩无遮挡| 蜜桃久久久久久久| 国产欧美综合在线观看第十页| 色婷婷久久久综合中文字幕| 91丨porny丨中文| 三级不卡在线观看| 国产日韩欧美一区二区三区综合| 玖玖国产精品视频| 91蜜桃婷婷狠狠久久综合9色| 日本不卡123| 国产精品美女久久久久久久网站| 欧美色图片你懂的| 一本一本久久| 99久久99久久久精品齐齐| 琪琪一区二区三区| 亚洲婷婷国产精品电影人久久| 欧美一区二区三区四区高清| 久久精品二区| 伊人天天综合| bt欧美亚洲午夜电影天堂| 亚洲午夜私人影院| 久久久99精品免费观看| 欧美三电影在线| 99www免费人成精品| 国产999精品久久久久久| 亚洲国产三级在线| 久久精品一区二区三区不卡牛牛| 色婷婷亚洲一区二区三区| 狠狠综合久久| 国产91精品在线观看| 日本在线不卡一区| 自拍视频在线观看一区二区| 日韩免费视频一区| 在线日韩一区二区| 国产欧美日韩| 欧美日本一区二区高清播放视频| 国产精品18久久久久久vr| 日韩有码一区二区三区| 国产精品白丝在线| 久久久噜噜噜久噜久久综合| 欧美精品乱人伦久久久久久| 国产亚洲欧美另类一区二区三区| 欧美日韩国产免费观看| 国产成人激情av| 九一九一国产精品| 天天影视涩香欲综合网| ㊣最新国产の精品bt伙计久久| 精品免费视频一区二区| 欧美日韩在线观看一区二区 | 欧美韩日一区二区三区| 日韩女优av电影在线观看| 欧美色电影在线| 色噜噜久久综合| 久久精品成人| 免费日韩av片| 久久国产精品一区二区三区| 宅男噜噜噜66国产日韩在线观看| 狠狠噜噜久久| 欧美日韩一卡| 国产精品国码视频| 欧美午夜精品久久久久免费视| 91浏览器打开| 色综合久久综合中文综合网| 99久久精品免费| 成人精品一区二区三区中文字幕| 国产精品一二三在| 精品一区二区三区在线播放视频| 老司机精品视频导航| 欧美96一区二区免费视频| 琪琪一区二区三区| 全部av―极品视觉盛宴亚洲| 青青草国产成人av片免费| 日本欧美一区二区三区乱码| 三级成人在线视频| 日本美女视频一区二区| 日韩电影免费一区| 天堂av在线一区| 欧美aⅴ一区二区三区视频| 另类欧美日韩国产在线| 久久成人18免费观看| 久久99精品久久久久久久久久久久 | 亚洲激情自拍视频| 亚洲狠狠丁香婷婷综合久久久| 一区二区三区在线观看国产| 亚洲午夜久久久| 丝袜诱惑制服诱惑色一区在线观看| 日精品一区二区三区| 日韩电影一二三区| 狠狠v欧美v日韩v亚洲ⅴ| 国产超碰在线一区| 成人app下载| 欧美jjzz| 亚洲日本激情| 久久一区二区三区超碰国产精品| 久久黄色网页| 欧洲精品在线观看| 91精品中文字幕一区二区三区| 精品少妇一区二区| 国产欧美日韩麻豆91| 中文字幕亚洲区| 亚洲黄色小视频|