20個數據分析師必知必會的SQL查詢語句

cda數據分析師 發佈 2022-08-16T14:19:38.469008+00:00

作者:俊欣來源:關於數據分析與可視化作為數據分析師,每天需要花費大量的時間來分析與挖掘數據當中隱藏的信息,發現新的價值,而現在絕大多數公司都是將數據存放在Mysql資料庫當中,今天小編來分享25個針對每個數據分析初學者而言都需要掌握的SQL查詢語句。

作者:俊欣

來源:關於數據分析與可視化

作為數據分析師,每天需要花費大量的時間來分析與挖掘數據當中隱藏的信息,發現新的價值,而現在絕大多數公司都是將數據存放在Mysql資料庫當中,今天小編來分享25個針對每個數據分析初學者而言都需要掌握的SQL查詢語句。

查詢所有行的數據

這個也是最基本的SQL查詢了,假設我們有一張員工表「Employee」,當中包含了一系列員工的信息,包括薪水、所屬的國家等內容

SELECT * FROM Employee;

查詢指定行的數據

我們更進一步,想要查詢指定某一行的數據,這裡我們查詢的是員工的ID員工的姓以及員工的名,代碼如下

SELECT EmployeeID, LastName, FirstName
FROM Employee;

篩選數據

我們想要進一步地篩選數據,在SQL當中添加相對應的條件,例如想要查看國家是德國的員工,代碼如下

SELECT * FROM Employee
 WHERE Location = 'Germany';

多個條件來篩選數據

上面的例子當中,我們只是添加了一個條件,那要是不止只有一個條件該怎麼辦呢?

SELECT * FROM Employee
WHERE salary > 10000 AND Location = 'UK';

去重

我們有時候查詢到的數據帶有重複值,可以用DISTINCT來進行去重

SELECT DISTINCT EmployeeID,Salary
FROM Employee;

排序

排序用到的則是ORDER BY方法,例如我們想要按照員工的名來進行排序,代碼如下

SELECT EmployeeID, FirstName
FROM Employee
ORDER BY FirstName

不止一列的數據需要排序

那要是我們需要對不止一行的數據進行排序,該怎麼做呢?代碼如下

SELECT EmployeeID, FirstName
FROM Employee
ORDER BY FirstName DESC,EmployeeID;

其中DESC是降序(descending)的縮寫,上面的代理邏輯是對員工的FirstName進行降序的排列,對EmployeeID這列進行升序的排列

篩選出不是空值的數據

要是我們想要篩選出不是空值的數據,例如我們針對的就是FirstName這一列的數據,代碼如下

SELECT EmployeeID, FirstName
FROM Employee
WHERE FirstName IS NOT NULL;

通配符的魅力

通配符的作用就在於可以方便我們進行數據的篩選,例如FirstName這一列當中含有「a」的數據,

SELECT EmployeeID, FirstName
FROM Employee
WHERE FirstName LIKE '%a%';

CONCAT()函數

concat()函數用於將兩個字符串連接起來,形成一個單一的字符串,例如我們可以將FirstNameLastName這兩列的數據給連接起來,這樣就可以每一位員工完整的姓名啦

SELECT CONCAT(FirstName, ' ', LastName)
FROM Employee;

並集

要是我們將多個SQL語句查詢得到的結果集合併到一起,就要用到UNION ALL操作符了,例如我們將員工表中的「last_name」這一列和學生表中的「last_name」這一列合併到一塊顯示

SELECT last_name FROM Employee
UNION ALL
SELECT last_name FROM Student;

交集

INTERSECT操作符則是在多個SQL語句查詢得到的結果中尋找交集,代碼如下

SELECT last_name FROM Employee
INTERSECT
SELECT last_name FROM Student;

數學運算

針對是數值類型的數據,我們也可以在其中進行加減乘除的數學運算,例如

SELECT TotalSalary - GrossSalary
FROM Employee;

但是前提得是這兩列當中的數據都得是數值類型的數據,整型或者是浮點數

計算數據總共有幾行

這裡用到的是COOUNT()方法,例如我們想要計算一下student_id有多少個的時候

SELECT COUNT(student_id)
FROM student;

平均數

平均數的計算用到的是AVG()方法,例如計算平均工資,代碼如下

SELECT AVG(Salary)
FROM Employee;

最大值

最大值用到的是MAX()方法,例如查詢一下哪位員工的工資拿的最多,代碼如下

SELECT MAX(Salary)
FROM Employee;

最小值

直接上代碼吧

SELECT MIN(Salary)
FROM Employee;

插入數據

要是我們想要往表格當中插入新的數據,代碼如下

INSERT INTO Employee (EmployeeID, FirstName, LastName)
VALUES (『A0001』, 『Dom』, 『Werler』),

更新數據

更新數據用到的是UPDATE方法,後面跟著是表名,例如我們想要將Employee表中Salary這一列的數據都改成2000,代碼如下

UPDATE Employee SET Salary = 20000;

新建一張表

例如我們想要新建一張員工表,調用的是CREATE TABLE方法,而表中的每一列需要寫清楚列名以及其數據類型,代碼如下

CREATE TABLE Employee(EmployeeID int, Firstname varchar(50));

刪除表內的所有數據

DELETE FROM Employee;

刪除某張表格

表格當中的所有數據都刪除,我們還能後續繼續往裡面添加真的數據,但是要是直接將表格都刪掉,就不能執行添加新數據的操作了,因為畢竟表格都沒了,代碼如下

DROP TABLE Employee;
關鍵字: