0****1
查詢所有列
SELECT * 或SELECT 所有列,并不是說 * 任何情況都不建議用,很多時候查詢不涉及大量,節(jié)約效率,可以用。
SELECT * FROM table;
0****2
DISTINCT
用DISTINCT關(guān)鍵字可以去掉結(jié)果中的重復(fù)行。DISTINCT關(guān)鍵字放在SELECT詞的后邊、目標列名序列的前邊。
SELECT DISTINCT column1, column2 FROM table;
0****3
LIMIT
LIMIT 語法的一般形式為:
SELECT column1, column2, ... FROM table_name LIMIT [offset,] row_count;
其中,row_count 指定從偏移量 offset 開始要返回多少行記錄。如果不指定 offset,則默認從第一行開始返回。offset 和 row_count 都是非負整數(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 是一個可選的關(guān)鍵字,用于限制 SELECT 查詢結(jié)果中返回的記錄行數(shù)。WHERE 語句的一般形式為:
SELECT column1, column2, ... FROM table_name WHERE condition;
其中,condition 為限制條件,可以是列與值之間的比較、邏輯運算符(AND、OR、NOT)、IN 子句等。
例如,下面的 SQL 查詢語句將從 customers 表中返回 age 列大于 25 的記錄:
SELECT * FROM customers WHERE age > 25;
需要注意的是,在使用 WHERE 語句時,應(yīng)該注意以下幾個事項:
- WHERE 關(guān)鍵字必須緊接著 SELECT 關(guān)鍵字后面。
- WHERE 子句中的條件表達式可以使用比較運算符(=、<、>、<=、>=、<>)、模糊匹配運算符(LIKE、NOT LIKE)、范圍運算符(BETWEEN、NOT BETWEEN)、空值運算符(IS NULL、IS NOT NULL)等。
- 多個條件之間可以使用 AND、OR、NOT 連接。
- 在使用字符串類型的條件表達式時,應(yīng)該注意引號的使用。
0****5
ORDER BY
ORDER BY 是一個用于排序查詢結(jié)果的關(guān)鍵字。具體來說,ORDER BY 可以按照一個或多個列對查詢結(jié)果進行升序或降序排列。
使用 ORDER BY 語法可以這樣:
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
其中,column1、column2 等為要排序的列名,ASC(升序)和 DESC(降序)分別表示排序順序。如果省略 ASC 或 DESC,則默認是 ASC 升序排序。
例如,下面的 SQL 查詢語句將按照 age 列的升序順序?qū)?customers 表進行排序:
SELECT * FROM customers ORDER BY age ASC;
需要注意的是,當使用 ORDER BY 語句時,應(yīng)該注意以下幾個事項:
- 當 ORDER BY 子句中指定多個列時,排序優(yōu)先級按照列名出現(xiàn)的順序依次遞減,即先按第一個列排序,然后再按第二個列排序,以此類推。
- 如果列中包含 NULL 值,則它們會被放置在排序結(jié)果的最前面(升序)或最后面(降序)。
- 對大型數(shù)據(jù)集進行排序操作可能會影響性能,請謹慎使用。
- 在一些數(shù)據(jù)庫系統(tǒng)中,可以使用列的表達式作為排序條件,但需要確保表達式的結(jié)果類型為可比較類型。
0****6
聚合函數(shù)
在 SQL 中,聚合函數(shù)是用于對表格數(shù)據(jù)進行統(tǒng)計和計算的函數(shù)。常見的聚合函數(shù)包括 COUNT、SUM、AVG、MAX 和 MIN 等。
以下是幾種常見的聚合函數(shù)及其作用:
- COUNT:用于統(tǒng)計滿足條件的行數(shù),可以統(tǒng)計整個表或者某一列中滿足條件的行數(shù)。
- SUM:用于求和,可以對整個表或者某一列中的數(shù)字值進行求和。
- AVG:用于求平均數(shù),可以對整個表或者某一列中的數(shù)字值進行平均值計算。
- MAX:用于求最大值,可以對整個表或者某一列中的數(shù)字值進行最大值計算。
- MIN:用于求最小值,可以對整個表或者某一列中的數(shù)字值進行最小值計算。
使用聚合函數(shù)時,需要注意以下幾個問題:
- 聚合函數(shù)只能應(yīng)用于列而非行,因此不能在 WHERE 語句中使用聚合函數(shù)。
- 如果需要對多個列進行聚合計算,則需要使用 GROUP BY 子句分組,以便確定每個計算結(jié)果相應(yīng)的數(shù)據(jù)子集。
- 在使用 COUNT 函數(shù)時,需要注意空值的處理問題。COUNT 函數(shù)默認不會統(tǒng)計空值,如果需要統(tǒng)計空值則需要使用 COUNT(*) 函數(shù)。
07
GROUP BY
在 SQL 中,GROUP BY 是一個用于分組查詢結(jié)果的關(guān)鍵字。具體來說,GROUP BY 可以將查詢結(jié)果按照一個或多個列進行分組,并對每個組進行聚合計算。
以下是 GROUP BY 語法的一般形式:
SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column1, column2, ...;
其中,column1、column2 等為要分組的列名,aggregate_function 表示要進行聚合計算的函數(shù)(例如 SUM、COUNT、AVG、MAX、MIN 等),column_name 則表示要進行聚合計算的列名。
例如,下面的 SQL 查詢語句將根據(jù) gender 列對 customers 表進行分組,并計算每個組中 age 列的平均值:SELECT gender, AVG(age) FROM customers GROUP BY gender;
需要注意的是,在使用 GROUP BY 時,有以下幾個問題需要注意:
- GROUP BY 子句必須位于 WHERE 子句之后、HAVING 子句之前。
- GROUP BY 子句中的列名必須是 SELECT 語句中出現(xiàn)的列名或者其別名。
- 如果查詢結(jié)果中包含非聚合列,則 GROUP BY 子句中也必須包含這些列名。
- 在使用 GROUP BY 時,應(yīng)該注意空值的處理問題。如果存在 NULL 值,它們將作為一個單獨的組進行處理,因此需要謹慎處理。
08
HAVING
在 SQL 中,HAVING 是一個關(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 表示要進行聚合計算的函數(shù)(例如 SUM、COUNT、AVG、MAX、MIN 等),condition 則表示過濾條件。
例如,下面的 SQL 查詢語句將根據(jù) gender 列對 customers 表進行分組,并計算每個組中 age 列的平均值,然后僅返回平均年齡大于 30 的記錄:
SELECT gender, AVG(age) AS avg_age FROM customers GROUP BY gender HAVING avg_age > 30;
需要注意的是,在使用 HAVING 時,有以下幾個問題需要注意:
- HAVING 子句必須位于 GROUP BY 子句之后。
- HAVING 子句中的條件表達式可以使用比較運算符(=、<、>、<=、>=、<>)、邏輯運算符(AND、OR、NOT)等。
- 在使用 HAVING 時,也可以使用聚合函數(shù)來過濾分組。例如,可以使用 COUNT(*) 函數(shù)來過濾出滿足某個條件的分組數(shù)量。
09
多表連接
在 SQL 中,多表鏈接是一種用于聯(lián)合多個表格中數(shù)據(jù)的技術(shù)。常見的多表鏈接類型包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER JOIN 等。
以下是幾種常見的多表鏈接類型及其作用:
- INNER JOIN(JOIN):內(nèi)連接,只返回兩個表格中都存在對應(yīng)數(shù)據(jù)的行。
- LEFT JOIN:左連接,返回左側(cè)表格中所有行以及與之匹配的右側(cè)表格行。
- RIGHT JOIN:右連接,返回右側(cè)表格中所有行以及與之匹配的左側(cè)表格行。
- FULL OUTER JOIN:全外連接,返回左右兩側(cè)表格中所有行,如果某個表格中沒有對應(yīng)的匹配行,則使用 NULL 補齊。
以下是 INNER JOIN 的語法示例:
SELECT column1, column2, ..., columnN FROM table_name1 INNER JOIN table_name2 ON condition;
其中,table_name1 和 table_name2 分別表示要聯(lián)合的兩個表格,condition 是兩個表格之間的關(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;
需要注意的是,在使用多表鏈接時,應(yīng)該注意以下幾個問題:
- 多表鏈接需要至少一個關(guān)聯(lián)條件,否則可能會產(chǎn)生笛卡爾積和重復(fù)的行。
- 在使用 LEFT JOIN 或 RIGHT JOIN 時,需要注意空值的處理問題。如果兩個表格中存在 NULL 值,則需要進行特殊處理以免產(chǎn)生錯誤的匹配結(jié)果。
- 多表鏈接可能會導(dǎo)致性能問題,特別是在處理大型數(shù)據(jù)時。
-
SQL
+關(guān)注
關(guān)注
1文章
783瀏覽量
45148 -
avg
+關(guān)注
關(guān)注
0文章
11瀏覽量
4297
發(fā)布評論請先 登錄
數(shù)據(jù)分析需要的技能
怎么有效學習Python數(shù)據(jù)分析?
BI分享秀——高度開放的數(shù)據(jù)分析經(jīng)驗共享
怎么做自己做得快、老板看得開心的數(shù)據(jù)分析報表?
數(shù)據(jù)量大、分析急,該用什么軟件做數(shù)據(jù)分析?
BI數(shù)據(jù)分析軟件使用指南
成為Python數(shù)據(jù)分析師,需要掌握哪些技能
成為Python數(shù)據(jù)分析師,需要掌握哪些技能
電商數(shù)據(jù)分析攻略,讓你輕松搞定數(shù)據(jù)分析!
Get職場新知識:做分析,用大數(shù)據(jù)分析工具
實例詳解對Serverless SQL大數(shù)據(jù)分析技術(shù)的應(yīng)用

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

評論