摘要

經常看到一份數據分析崗位的招聘要求:“熟練使用SQL”。那你真的熟練嗎?

最基本的幾個問題,SQL是什麼?數據庫是什麼?RDBMS又是什麼?什麼叫表?

數據庫(Database):按照數據結構來組織、存儲和管理數據的倉庫。

RDBMS:(Relational Database Management System)

關係數據庫管理系統,存儲和操作關係數據庫表中排列的數據的軟件。

SQL:Structured Query Lanuage(結構化查詢語言),更詳細地說,SQL 是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統,同時也是數據庫腳本文件的擴展名。

:按列和行排列的一組數據。列表示存儲數據的特徵,行表示實際的數據條目。

瞭解完以上關於數據庫的一些基本概念之後,進入今天的主題?寶器將他命名爲SQL精簡版複習大綱

目錄:

1、數據庫查詢語言

1.1、如何選擇多列

#語法
SELECT <Column List>
FROM <Table Name>
WHERE <Search Condition>
# 例子
SELECT FirstName, LastName, OrderDate
FROM Orders WHERE OrderDate > '10/10/2010'

1.2、如何選擇某一列並去重(重點)

#語法
SELECT DISTINCT <Column_name>
FROM <Table Name>
#例子
SELECT DISTINCT FirstName FROM Orders

1.3、如何從第一行開始選擇一共五行數據?

#語法
SELECT <col_name >
FROM table_name
limt 5 offset 1;
#例子
SELECT FirstName FROM Orders limt 5 offset 1;

1.4、如何按照指定方向(升、降)排序選擇數據?

#語法
SELECT co_name1,col_name2
FROM table_name
ORDER BY col_name1 DESC,col_name2 ASC
#例子
SELECT ,FirstName
FROM Orders
ORDER BY OrderDate DESC

1.5、常見的一些過濾選擇有哪些。(重點)

#範圍內檢查
SELECT col_name FROM table_name WHERE col_name BETEWEEN 5 AND 10;
#空值檢查
SELECT col_name FROM table_name WHERE col_name IS null;
# in操作符
SELECT col_name FROM table_name WHERE col_name IN (....);
# NOT操作符
SELECT col_name FROM table_name WHERE NOT (條件);
#AND 和 OR 注意優先級 and 優先級高於or
SELECT col_name FROM table_name
WHERE (condi_1 OR condi_2) AND condi_3;
#第五部分使用通配符進行過濾
SELECT col_name FROM table_name WHERE col_name like '..%..';
SELECT col_name FROM table_name WHERE col_name like '.._..';
SELECT col_name FROM table_name WHERE col_name like '[]%';

1.5、如何分組並按條件選擇數據?(重點)

#語法
SELECT <Column List>, <Aggregate Function>(<Column Name>)
FROM <Table Name>
WHERE <Search Condition>
GROUP BY <Column List>
#例子
SELECT LastName, SUM(OrderValue)
FROM Orders
WHERE OrderDate > '10/10/2010'
GROUP BY LastName
注意點:
GROUP BY 後面也可以接條件。
WHERE 語句和HAVING配合的使用。WHERE在HAVING之前。
WHERE 過濾針對的是行,HAVING過濾針對的是組。

1.6、分組和排序的順序是什麼?(重點)

/*
SELECR
FROM
WHERE
GROUP BY
HAVING
ORDER BY
*/
SELECT col_name FROM table_name
WHERE <condition_1>
GROUP BY <col_name>
HAVING <condition_2>
ORDER BY <col_name>

1.7、如何使用子查詢?(重點)

SELECT col_name FROM table_name
WHERE col_name =
(SELECT col_name FROM table_name WHERE .... );

1.8、表的聯結查詢怎麼做(非常重點!!!!一定要會!)

#語法
SELECT <Column List>
FROM <Table1> JOIN <Table2>
ON <Table1>.<Column1> = <Table2>.<Column1>、
#例子
SELECT Orders.LastName, Countries.CountryName
FROM Orders INNER JOIN Countries ON
Orders.CountryID = Countries.ID
除此之外還有左聯結 LEFT JOIN
右聯結 RIGHT JOIN
全聯結 FULL JOIN

1.9、如何使用聯合查詢

#語法
SELECT <Column List> FROM <Table1>
UNION
SELECT <Column List> FROM <Table2>
#例子
SELECT <Column List> FROM <Table1>
UNION
SELECT <Column List> FROM <Table2>

2數據庫操作語言

2.1 INSERT(插入)

#語法
INSERT INTO <Table Name>
(<Column List>) VALUES (<Values>)
#例子
INSERT INTO Orders
(FirstName, LastName, OrderDate) VALUES
('John', 'Smith', '10/10/2010')

2.2 UPDATE(更新)

#語法
UPDATE <Table Name>
SET <Column1> = <Value1>, <Column2> = <Value2>, …
WHERE <Search Condition>
#例子
UPDATE Orders
SET FirstName = 'John', LastName = 'Who' WHERE LastName='Wo'

2.3 DELETE(刪除)

#語法
DELETE FROM <Table Name>
WHERE <Search Condition>
#例子
DELETE FROM Orders
WHERE OrderDate < '10/10/2010'

3、數據庫定義語言

3.1、CREATE (創建表)

# 語法
CREATE TABLE <Table Name>
( Column1 DataType,
Column2 DataType,
Column3 DataType)
# 例子
CREATE TABLE Orders
( FirstName CHAR(100),
LastName CHAR(100),
OrderDate DATE)

3.2、ALTER(更改表)

#語法
CREATE TABLE <Table Name>
ADD col_name Datatype;
CREATE TABLE <Table Name>
DROP COLUMN <col_name>
# 例子
ALTER TABLE Vendors
ADD vend_phone CHAR(20);
ALTER TABLE Vendors
DROP COLUMN vend_phone;

3.3 DROP (刪除表)

#語法
DROP TABLE table_name;
#例子
DROP TABLE CustCopy;

4、數據庫控制語言

4.1 GRANT

4.2 REVOKE

本部分展開太細,不做介紹,做爲數據分析師需要重點掌握查詢語句!

本文來源數據管道
本文版權歸原作者所有,內容爲作者個人觀點,轉載目的在於傳遞更多信息,如涉及作品內容、版權等問題,可聯繫本站刪除,謝謝。

更多交流諮詢:18080942131 (同微信 加好友備註:搜狐)。

相關文章