SQL_基礎教程

課程1: Basic SQL(發音sei kuo)
課程來源:https://classroom.udacity.com/courses/ud198

ERD(Entry relationship diagram) 實體關係圖
這些圖可幫助您可視化所分析的數據,包括:

  1. 表的名稱。
  2. 每個表中的列。
  3. 表一起工作的方式。
    在這裏插入圖片描述

SQL(Structured Query Language)
企業使用數據庫的原因:
1 確保數據的完整性
2 可以快速訪問數據
3 數據易於分享

SQL的關鍵是理解語句。一些聲明包括:

  1. CREATE TABLE是在數據庫中創建新表的語句。
  2. DROP TABLE是刪除數據庫中的表的語句。
  3. SELECT允許您讀取和顯示數據。這稱爲查詢。

每個查詢中使用:SELECT … FROM…。

  1. SELECT指示要爲其提供數據的列。
  2. FROM指定要從中選擇表的列。注意,該表中的列需要存在。
    如果要提供表中所有列的數據,請使用“ *”,例如 SELECT * FROM orders;

SELECT 格式化查詢
SQL查詢不區分大小寫
通用的做法是將表名和列名保留小寫的同時,大寫命令字.這樣可以使查詢更易於閱讀,而在編寫更復雜的查詢時,查詢將變得更加重要.

在表名和變量名中避免空格
表名和變量名中通常使用下劃線並在列名稱中避免空格

在查詢中使用空格
SQL查詢會忽略空格,因此可以根據需要在代碼之間添加儘可能多的空格和空白行,查詢結果是相同的.例如:

SELECT account_id
FROM orders

分號
最好的做法是在每個語句的末尾加上分號,如果環境允許,也可以一次運行多個查詢。

LIMIT
LIMIT可以讓你看到的一個表的前幾行語句。這比加載整個數據集要快得多。
LIMIT命令始終是一個查詢的最後一部分, 例如:

SELECT *
FROM orders
LIMIT 10;

ORDER BY
ORDER BY語句允許我們對我們造成任何列使用的數據進行排序
使用ORDER BY只會對查詢結果產生臨時影響
DESC可以在ORDER BY語句的列之後添加按降序排序,因爲默認情況是按升序排序(ASC)。
降序(descending)
使用ORDER BY要注意排序多個字段時的順序問題.例如, 以下兩個查詢

SELECT id, account_id, total_amt_usd
FROM orders
ORDER BY account_id, total_amt_usd DESC;
SELECT id, account_id, total_amt_usd
FROM orders
ORDER BY total_amt_usd DESC, account_id;

在查詢1中,將每個帳戶ID的所有訂單分組在一起,然後在每個分組中,訂單的顯示順序爲最大訂單量到最小訂單量。在查詢2中,由於首先按總金額排序,因此訂單從最大到最小顯示,而不管它們來自哪個account_id。然後,將它們按照account_id排序。

WHERE
可以將WHERE命令視爲過濾數據
包括 >, < , >=, <=, =, != 6種
WHERE語句還可以用非數字數據使用。我們可以在此處使用=and !=運算符。這裏需要確保對文本數據使用單引號

派生列(derived column)
創建由現有列組合而成的新列稱爲派生列。通常,您想使用AS關鍵字爲新列指定名稱或“別名” 。
此派生列及其別名通常只是臨時的,僅在查詢期間存在。例如:

SELECT id, (standard_amt_usd/total_amt_usd)*100 AS std_percent, total_amt_usd
FROM orders
LIMIT 10;

在這裏,我們將標準紙面美元金額除以總訂單量,以找到該訂單的標準紙面百分比,並使用AS關鍵字將此新列命名爲“ std_percent
可以使用的算術運算符爲: +, -, *, / 4種
如果是除法, 注意數據中的至少一個值在您的公式中創建了零除的情況.

邏輯運算符

  1. LIKE
    這使您可以進行類似的操作使用WHERE和=,但是當你的情況可能不知道究竟你在找什麼。
  2. IN
    這使您可以執行與使用WHERE和相似的操作=,但要針對多個條件。
  3. NOT
    與IN和LIKE一起使用,以選擇在特定條件下NOT LIKE或NOT IN所有狀態的所有行。
  4. AND和BETWEEN之
    組合,您可以在必須滿足所有組合條件的情況下組合操作。
  5. OR
    這允許您組合其中至少有一個組合條件爲真的操作。

LIKE
通配符(wildcard)
% 代表一個或任意數量的字符
使用LIKE需要區分大小寫

例如: name字段中以C開始的記錄

SELECT name
FROM accounts
WHERE name LIKE 'C%';

name字段包含one的記錄

SELECT name
FROM accounts
WHERE name LIKE '%one%';

name字段以s結尾的記錄

SELECT name
FROM accounts
WHERE name LIKE '%s';

IN
可以檢查同一查詢中一個列值中對應的一個或多個數據.
文本可以使用單引號或雙引號, 如果文本中帶有``, 則可能需要使用雙引號
例如:

SELECT *
FROM web_events
WHERE channel IN ('organic', 'adwords');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章