天天看點

“熟練使用SQL”,那你真的熟練嗎?精簡版複習大綱送給大家

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

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

作者:愛德寶器

來源:資料管道(ID:adc9556)

  • 資料庫(Database):按照資料結構來組織、存儲和管理資料的倉庫。
  • RDBMS(Relational Database Management System):關系資料庫管理系統,存儲和操作關系資料庫表中排列的資料的軟體。
  • SQL:Structured Query Lanuage(結構化查詢語言),更詳細地說,SQL 是一種資料庫查詢和程式設計語言,用于存取資料以及查詢、更新和管理關系資料庫系統,同時也是資料庫腳本檔案的擴充名。
  • 表:按列和行排列的一組資料。清單示存儲資料的特征,行表示實際的資料條目。

了解完以上關于資料庫的一些基本概念之後,進入今天的主題——SQL精簡版複習大綱。

目錄:

“熟練使用SQL”,那你真的熟練嗎?精簡版複習大綱送給大家

01 資料庫查詢語言

1. 如何選擇多列

#文法
SELECT <Column List>
FROM <Table Name>
WHERE <Search Condition>

# 例子
SELECT FirstName, LastName, OrderDate
FROM Orders WHERE OrderDate > '10/10/2010'           

複制

2. 如何選擇某一列并去重(重點)

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

複制

3. 如何從第一行開始選擇一共五行資料?

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

複制

4. 如何按照指定方向(升、降)排序選擇資料?

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

複制

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 優先級高于orSELECT 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 '[]%';           

複制

6. 如何分組并按條件選擇資料?(重點)

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

複制

7. 分組和排序的順序是什麼?(重點)

/*SELECR FROM WHEREGROUP BY HAVING ORDER BY*/SELECT  col_name FROM table_nameWHERE <condition_1>GROUP BY <col_name>HAVING <condition_2>ORDER BY <col_name>           

複制

8. 如何使用子查詢?(重點)

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

複制

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

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

複制

10. 如何使用聯合查詢

#文法SELECT <Column List> FROM <Table1>UNIONSELECT <Column List> FROM <Table2>
#例子SELECT <Column List> FROM <Table1>UNIONSELECT <Column List> FROM <Table2>           

複制

02 資料庫操作語言

1. INSERT(插入)

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

複制

2. UPDATE(更新)

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

複制

3. DELETE(删除)

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

複制

03 資料庫定義語言

1. CREATE (建立表)

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

複制

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. DROP (删除表)

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

複制

04 資料庫控制語言

1. GRANT

2. REVOKE

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