0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)分析SQL內(nèi)容的知識分享

冬至子 ? 來源:韭菜新知 ? 作者:韭菜新知 ? 2023-05-26 14:49 ? 次閱讀

0****1

查詢所有列

SELECT * 或SELECT 所有列,并不是說 * 任何情況都不建議用,很多時(shí)候查詢不涉及大量,節(jié)約效率,可以用。

SELECT * FROM table;

0****2

DISTINCT

用DISTINCT關(guān)鍵字可以去掉結(jié)果中的重復(fù)行。DISTINCT關(guān)鍵字放在SELECT詞的后邊、目標(biāo)列名序列的前邊。

SELECT DISTINCT column1, column2 FROM table;

0****3

LIMIT

LIMIT 語法的一般形式為:

SELECT column1, column2, ... FROM table_name LIMIT [offset,] row_count;

其中,row_count 指定從偏移量 offset 開始要返回多少行記錄。如果不指定 offset,則默認(rèn)從第一行開始返回。offset 和 row_count 都是非負(fù)整數(shù)。

例如,下面的 SQL 查詢語句將從 customers 表中返回前 10 行數(shù)據(jù):

SELECT * FROM customers LIMIT 10;

如果要跳過前 n 行,可以使用 OFFSET 子句來指定偏移量。例如,下面的 SQL 查詢語句將從 customers 表中返回第 11 到 20 行的數(shù)據(jù):

SELECT * FROM customers LIMIT 10 OFFSET 10;

0****4

WHERE

在 SQL 中,WHERE 是一個(gè)可選的關(guān)鍵字,用于限制 SELECT 查詢結(jié)果中返回的記錄行數(shù)。WHERE 語句的一般形式為:

SELECT column1, column2, ... FROM table_name WHERE condition;

其中,condition 為限制條件,可以是列與值之間的比較、邏輯運(yùn)算符(AND、OR、NOT)、IN 子句等。

例如,下面的 SQL 查詢語句將從 customers 表中返回 age 列大于 25 的記錄:

SELECT * FROM customers WHERE age > 25;

需要注意的是,在使用 WHERE 語句時(shí),應(yīng)該注意以下幾個(gè)事項(xiàng):

  • WHERE 關(guān)鍵字必須緊接著 SELECT 關(guān)鍵字后面。
  • WHERE 子句中的條件表達(dá)式可以使用比較運(yùn)算符(=、<、>、<=、>=、<>)、模糊匹配運(yùn)算符(LIKE、NOT LIKE)、范圍運(yùn)算符(BETWEEN、NOT BETWEEN)、空值運(yùn)算符(IS NULL、IS NOT NULL)等。
  • 多個(gè)條件之間可以使用 AND、OR、NOT 連接。
  • 在使用字符串類型的條件表達(dá)式時(shí),應(yīng)該注意引號的使用。

0****5

ORDER BY

ORDER BY 是一個(gè)用于排序查詢結(jié)果的關(guān)鍵字。具體來說,ORDER BY 可以按照一個(gè)或多個(gè)列對查詢結(jié)果進(jìn)行升序或降序排列。

使用 ORDER BY 語法可以這樣:

SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

其中,column1、column2 等為要排序的列名,ASC(升序)和 DESC(降序)分別表示排序順序。如果省略 ASC 或 DESC,則默認(rèn)是 ASC 升序排序。

例如,下面的 SQL 查詢語句將按照 age 列的升序順序?qū)?customers 表進(jìn)行排序:

SELECT * FROM customers ORDER BY age ASC;

需要注意的是,當(dāng)使用 ORDER BY 語句時(shí),應(yīng)該注意以下幾個(gè)事項(xiàng):

  • 當(dāng) ORDER BY 子句中指定多個(gè)列時(shí),排序優(yōu)先級按照列名出現(xiàn)的順序依次遞減,即先按第一個(gè)列排序,然后再按第二個(gè)列排序,以此類推。
  • 如果列中包含 NULL 值,則它們會(huì)被放置在排序結(jié)果的最前面(升序)或最后面(降序)。
  • 對大型數(shù)據(jù)集進(jìn)行排序操作可能會(huì)影響性能,請謹(jǐn)慎使用。
  • 在一些數(shù)據(jù)庫系統(tǒng)中,可以使用列的表達(dá)式作為排序條件,但需要確保表達(dá)式的結(jié)果類型為可比較類型。

0****6

聚合函數(shù)

在 SQL 中,聚合函數(shù)是用于對表格數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算的函數(shù)。常見的聚合函數(shù)包括 COUNT、SUM、AVG、MAX 和 MIN 等。

以下是幾種常見的聚合函數(shù)及其作用:

  • COUNT:用于統(tǒng)計(jì)滿足條件的行數(shù),可以統(tǒng)計(jì)整個(gè)表或者某一列中滿足條件的行數(shù)。
  • SUM:用于求和,可以對整個(gè)表或者某一列中的數(shù)字值進(jìn)行求和。
  • AVG:用于求平均數(shù),可以對整個(gè)表或者某一列中的數(shù)字值進(jìn)行平均值計(jì)算。
  • MAX:用于求最大值,可以對整個(gè)表或者某一列中的數(shù)字值進(jìn)行最大值計(jì)算。
  • MIN:用于求最小值,可以對整個(gè)表或者某一列中的數(shù)字值進(jìn)行最小值計(jì)算。

使用聚合函數(shù)時(shí),需要注意以下幾個(gè)問題:

  • 聚合函數(shù)只能應(yīng)用于列而非行,因此不能在 WHERE 語句中使用聚合函數(shù)。
  • 如果需要對多個(gè)列進(jìn)行聚合計(jì)算,則需要使用 GROUP BY 子句分組,以便確定每個(gè)計(jì)算結(jié)果相應(yīng)的數(shù)據(jù)子集。
  • 在使用 COUNT 函數(shù)時(shí),需要注意空值的處理問題。COUNT 函數(shù)默認(rèn)不會(huì)統(tǒng)計(jì)空值,如果需要統(tǒng)計(jì)空值則需要使用 COUNT(*) 函數(shù)。

07

GROUP BY

在 SQL 中,GROUP BY 是一個(gè)用于分組查詢結(jié)果的關(guān)鍵字。具體來說,GROUP BY 可以將查詢結(jié)果按照一個(gè)或多個(gè)列進(jìn)行分組,并對每個(gè)組進(jìn)行聚合計(jì)算。

以下是 GROUP BY 語法的一般形式:

SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column1, column2, ...;

其中,column1、column2 等為要分組的列名,aggregate_function 表示要進(jìn)行聚合計(jì)算的函數(shù)(例如 SUM、COUNT、AVG、MAX、MIN 等),column_name 則表示要進(jìn)行聚合計(jì)算的列名。

例如,下面的 SQL 查詢語句將根據(jù) gender 列對 customers 表進(jìn)行分組,并計(jì)算每個(gè)組中 age 列的平均值:SELECT gender, AVG(age) FROM customers GROUP BY gender;

需要注意的是,在使用 GROUP BY 時(shí),有以下幾個(gè)問題需要注意:

  • GROUP BY 子句必須位于 WHERE 子句之后、HAVING 子句之前。
  • GROUP BY 子句中的列名必須是 SELECT 語句中出現(xiàn)的列名或者其別名。
  • 如果查詢結(jié)果中包含非聚合列,則 GROUP BY 子句中也必須包含這些列名。
  • 在使用 GROUP BY 時(shí),應(yīng)該注意空值的處理問題。如果存在 NULL 值,它們將作為一個(gè)單獨(dú)的組進(jìn)行處理,因此需要謹(jǐn)慎處理。

08

HAVING

在 SQL 中,HAVING 是一個(gè)關(guān)鍵字,用于過濾 GROUP BY 分組后的查詢結(jié)果,只保留滿足條件的分組。

以下是 HAVING 語法的一般形式:

SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column1, column2, ... HAVING condition;

其中,column1、column2 等為要分組的列名,aggregate_function 表示要進(jìn)行聚合計(jì)算的函數(shù)(例如 SUM、COUNT、AVG、MAX、MIN 等),condition 則表示過濾條件。

例如,下面的 SQL 查詢語句將根據(jù) gender 列對 customers 表進(jìn)行分組,并計(jì)算每個(gè)組中 age 列的平均值,然后僅返回平均年齡大于 30 的記錄:

SELECT gender, AVG(age) AS avg_age FROM customers GROUP BY gender HAVING avg_age > 30;

需要注意的是,在使用 HAVING 時(shí),有以下幾個(gè)問題需要注意:

  • HAVING 子句必須位于 GROUP BY 子句之后。
  • HAVING 子句中的條件表達(dá)式可以使用比較運(yùn)算符(=、<、>、<=、>=、<>)、邏輯運(yùn)算符(AND、OR、NOT)等。
  • 在使用 HAVING 時(shí),也可以使用聚合函數(shù)來過濾分組。例如,可以使用 COUNT(*) 函數(shù)來過濾出滿足某個(gè)條件的分組數(shù)量。

09

多表連接

在 SQL 中,多表鏈接是一種用于聯(lián)合多個(gè)表格中數(shù)據(jù)的技術(shù)。常見的多表鏈接類型包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER JOIN 等。

以下是幾種常見的多表鏈接類型及其作用:

  • INNER JOIN(JOIN):內(nèi)連接,只返回兩個(gè)表格中都存在對應(yīng)數(shù)據(jù)的行。
  • LEFT JOIN:左連接,返回左側(cè)表格中所有行以及與之匹配的右側(cè)表格行。
  • RIGHT JOIN:右連接,返回右側(cè)表格中所有行以及與之匹配的左側(cè)表格行。
  • FULL OUTER JOIN:全外連接,返回左右兩側(cè)表格中所有行,如果某個(gè)表格中沒有對應(yīng)的匹配行,則使用 NULL 補(bǔ)齊。

以下是 INNER JOIN 的語法示例:

SELECT column1, column2, ..., columnN FROM table_name1 INNER JOIN table_name2 ON condition;

其中,table_name1 和 table_name2 分別表示要聯(lián)合的兩個(gè)表格,condition 是兩個(gè)表格之間的關(guān)聯(lián)條件。

例如,下面的 SQL 查詢語句將 customers 表格和 orders 表格聯(lián)合起來,返回所有購買了產(chǎn)品編號為 1 的商品的客戶信息和訂單信息:

SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id WHERE orders.product_id = 1;

需要注意的是,在使用多表鏈接時(shí),應(yīng)該注意以下幾個(gè)問題:

  • 多表鏈接需要至少一個(gè)關(guān)聯(lián)條件,否則可能會(huì)產(chǎn)生笛卡爾積和重復(fù)的行。
  • 在使用 LEFT JOIN 或 RIGHT JOIN 時(shí),需要注意空值的處理問題。如果兩個(gè)表格中存在 NULL 值,則需要進(jìn)行特殊處理以免產(chǎn)生錯(cuò)誤的匹配結(jié)果。
  • 多表鏈接可能會(huì)導(dǎo)致性能問題,特別是在處理大型數(shù)據(jù)時(shí)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    753

    瀏覽量

    44036
  • avg
    avg
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    4098
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)分析

    數(shù)據(jù)分析軟件
    發(fā)表于 05-28 22:31

    數(shù)據(jù)分析需要的技能

    數(shù)據(jù)分析人員要具備對數(shù)據(jù)庫的操作能力,來實(shí)現(xiàn)數(shù)據(jù)的讀取、修改、刪除和更新等功能,常用的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)
    發(fā)表于 04-10 15:59

    怎么有效學(xué)習(xí)Python數(shù)據(jù)分析?

    Python在人工智能、機(jī)器學(xué)習(xí)領(lǐng)域受到火熱追捧,很大程度上在于它擁有非常龐大的第三方庫,以及強(qiáng)大的通用編程性能。因此,快速掌握Python進(jìn)行數(shù)據(jù)分析,就是學(xué)習(xí)Python各種第三方庫、工具包
    發(fā)表于 06-28 15:18

    BI分享秀——高度開放的數(shù)據(jù)分析經(jīng)驗(yàn)共享

    由于以前的數(shù)據(jù)分析軟件并沒有一個(gè)開放性的分析經(jīng)驗(yàn)共享板塊,因此很多的用戶基本上都是在閉門造車,延續(xù)自己的分析思維。因此一旦遇到新的分析內(nèi)容、
    發(fā)表于 05-12 14:23

    怎么做自己做得快、老板看得開心的數(shù)據(jù)分析報(bào)表?

    本月公司支出費(fèi)用上漲,只需雙擊就能層層鉆取,將與之相關(guān)的所有數(shù)據(jù)起底式鉆取出來,精確到部門乃至個(gè)人。 SpeedBI數(shù)據(jù)分析云制作的數(shù)據(jù)分析報(bào)表雖然有一個(gè)預(yù)設(shè)的分析
    發(fā)表于 06-19 17:21

    數(shù)據(jù)量大、分析急,該用什么軟件做數(shù)據(jù)分析?

    數(shù)據(jù)量大,現(xiàn)在的軟件分析效率太低,操作也麻煩,有沒有更適合的數(shù)據(jù)分析軟件?或許BI數(shù)據(jù)分析軟件會(huì)是個(gè)好選擇。奧威軟件旗下的OurwayBI就是一款專做大
    發(fā)表于 12-29 11:33

    BI數(shù)據(jù)分析軟件使用指南

    BI數(shù)據(jù)分析軟件做數(shù)據(jù)深度分析又快又直觀,還能靈活滿足不同人的數(shù)據(jù)分析需求,因此選擇BI數(shù)據(jù)分析軟件的企業(yè)與個(gè)人也越來越多,但卻仍有很大一部
    發(fā)表于 01-04 11:00

    成為Python數(shù)據(jù)分析師,需要掌握哪些技能

    ,可以說數(shù)據(jù)分析師的就業(yè)前景十分廣闊了。好的數(shù)據(jù)分析師一個(gè)月不止16000+?,F(xiàn)在,數(shù)據(jù)分析才是風(fēng)口。一、數(shù)據(jù)分析師需要具備的技能熟悉Excel數(shù)據(jù)
    發(fā)表于 06-23 12:16

    成為Python數(shù)據(jù)分析師,需要掌握哪些技能

    ,可以說數(shù)據(jù)分析師的就業(yè)前景十分廣闊了。好的數(shù)據(jù)分析師一個(gè)月不止16000+。現(xiàn)在,數(shù)據(jù)分析才是風(fēng)口。一、數(shù)據(jù)分析師需要具備的技能熟悉Excel數(shù)據(jù)
    發(fā)表于 06-30 11:42

    電商數(shù)據(jù)分析攻略,讓你輕松搞定數(shù)據(jù)分析!

    在當(dāng)今的數(shù)字經(jīng)濟(jì)時(shí)代,運(yùn)用大數(shù)據(jù)分析來促進(jìn)業(yè)務(wù)增長已然成為一種普遍行為,擁有一套系統(tǒng)化的數(shù)據(jù)分析方案尤為重要。奧威BI電商數(shù)據(jù)分析方案是一種基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)的解決方案,以豐富
    發(fā)表于 06-27 09:22

    Get職場新知識:做分析,用大數(shù)據(jù)分析工具

    為什么企業(yè)每天累積那么多的數(shù)據(jù),也做數(shù)據(jù)分析,但最后決策還是靠經(jīng)驗(yàn)?很大程度上是因?yàn)檫@些數(shù)據(jù)都被以不同的指標(biāo)和存儲(chǔ)方式放在各自的系統(tǒng)中,這就導(dǎo)致了數(shù)據(jù)
    發(fā)表于 12-05 09:36

    數(shù)據(jù)分析步驟

    數(shù)據(jù)分析過程的主要活動(dòng)由識別信息需求、收集數(shù)據(jù)、分析數(shù)據(jù)、評價(jià)并改進(jìn)數(shù)據(jù)分析的有效性組成。
    的頭像 發(fā)表于 12-19 16:36 ?4.9w次閱讀

    實(shí)例詳解對Serverless SQL數(shù)據(jù)分析技術(shù)的應(yīng)用

    近年來, Serverless作為一種新型的互聯(lián)網(wǎng)架構(gòu)直接或間接推動(dòng)了云計(jì)算的發(fā)展,同時(shí)基于Serverless的輕量計(jì)算也成為了新的技術(shù)熱點(diǎn),而Serverless SQL數(shù)據(jù)分析產(chǎn)品就在此背景下應(yīng)運(yùn)而生。
    的頭像 發(fā)表于 07-26 10:54 ?4296次閱讀
    實(shí)例詳解對Serverless <b class='flag-5'>SQL</b>大<b class='flag-5'>數(shù)據(jù)分析</b>技術(shù)的應(yīng)用

    數(shù)據(jù)分析修煉手冊教程免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)分析修煉手冊教程免費(fèi)下載包括了:前言,數(shù)據(jù)分析師如何分類? ,數(shù)據(jù)分析師的具體工作職責(zé)和工作內(nèi)容有哪些?,如
    發(fā)表于 10-08 08:00 ?1次下載
    <b class='flag-5'>數(shù)據(jù)分析</b>修煉手冊教程免費(fèi)下載

    數(shù)據(jù)公司數(shù)據(jù)分析取數(shù)流程以及SQL示例

    有效的數(shù)據(jù)分析,首先需要從龐大的數(shù)據(jù)庫中獲取所需的數(shù)據(jù),這就涉及到SQL取數(shù)的技巧。
    的頭像 發(fā)表于 06-05 17:28 ?828次閱讀