招聘要求裡的「熟練使用 SQL」 你熟練麼?

wade1203發表於2019-03-27

摘要:SQL 常用命令總結。

作者 | 愛德寶器

來源 | 資料管道

當你看一份資料分析崗位的招聘要求時,通常都會有這麼一條:「熟練使用SQL」,你熟練麼?不熟練的話,就來複習一下。

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

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

RDBMS:(Relational Database Management System)

關聯式資料庫管理系統,儲存和操作關聯式資料庫表中排列的資料的軟體。

SQL:Structured Query Lanuage(結構化查詢語言),更詳細地說,SQL 是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統,同時也是資料庫指令碼檔案的副檔名。

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

瞭解完以上關於資料庫的一些基本概念之後,下面就來看看 SQL精簡版複習大綱

640?wx_fmt=png
img

下面挨個來介紹一下。

1 資料庫查詢語言

1.1、如何選擇多列

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

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

1#語法
2SELECT DISTINCT <Column_name>FROM <Table Name>
3
4#例子
5SELECT DISTINCT FirstName FROM Orders

1.3、如何從第一行開始選擇一共五行資料?

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

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

1#語法
2SELECT co_name1,col_name2 FROM table_name ORDER BY col_name1 DESC,col_name2 ASC
3
4#例子
5SELECT ,FirstNameFROM Orders ORDER BY OrderDate DESC

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

 1#範圍內檢查
2SELECT col_name FROM table_name WHERE col_name BETEWEEN 5 AND 10;
3
4#空值檢查
5SELECT col_name FROM table_name WHERE col_name IS null;
6
7# in操作符
8SELECT col_name FROM table_name WHERE col_name IN (....);
9
10# NOT操作符
11SELECT col_name FROM table_name WHERE NOT (條件);
12
13#AND 和 OR 注意優先順序 and 優先順序高於or
14SELECT col_name FROM table_name WHERE (condi_1 OR condi_2) AND condi_3;
15
16#第五部分使用萬用字元進行過濾
17SELECT 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、如何分組並按條件選擇資料?(重點)

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

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

 1/*
2SELECR 
3FROM 
4WHERE
5GROUP BY 
6HAVING 
7ORDER BY
8*/
9SELECT  col_name FROM table_name
10WHERE <condition_1>
11GROUP BY <col_name>
12HAVING <condition_2>
13ORDER BY <col_name>

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

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

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

1#語法
2SELECT <Column List>FROM <Table1> JOIN <Table2>ON <Table1>.<Column1> = <Table2>.<Column1>、
3
4#例子
5SELECT Orders.LastName, Countries.CountryNameFROM Orders INNER JOIN Countries ONOrders.CountryID = Countries.ID
6
7除此之外還有左聯結 LEFT JOIN
8右聯結 RIGHT JOIN
9全聯結 FULL JOIN

1.9、如何使用聯合查詢

1#語法
2SELECT <Column List> FROM <Table1>UNIONSELECT <Column List> FROM <Table2>
3
4#例子
5SELECT <Column List> FROM <Table1>UNIONSELECT <Column List> FROM <Table2>

2  資料庫操作語言

2.1 INSERT(插入)

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

2.2 UPDATE(更新)

1#語法
2UPDATE <Table Name>SET <Column1> = <Value1>, <Column2> = <Value2>, …WHERE <Search Condition>
3
4#例子
5UPDATE OrdersSET FirstName = 'John', LastName = 'Who' WHERE LastName='Wo'

2.3 DELETE(刪除)

1#語法
2DELETE FROM <Table Name>WHERE <Search Condition>
3
4#例子
5DELETE FROM OrdersWHERE OrderDate < '10/10/2010'

3 資料庫定義語言

3.1、CREATE (建立表)

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

3.2、ALTER(更改表)

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

3.3 DROP (刪除表)

1#語法
2DROP TABLE table_name;
3
4#例子DROP TABLE CustCopy; 

這些是最基礎的操作命令,必須得會。



/今日留言主題/

你常用 SQL 麼?

(留言格式:Dayxx:blahblah)

相關文章