作者:俊欣
來源:關於數據分析與可視化
作為數據分析師,每天需要花費大量的時間來分析與挖掘數據當中隱藏的信息,發現新的價值,而現在絕大多數公司都是將數據存放在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()函數用於將兩個字符串連接起來,形成一個單一的字符串,例如我們可以將FirstName和LastName這兩列的數據給連接起來,這樣就可以每一位員工完整的姓名啦
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;