最基本的幾個問題,SQL是什麼?資料庫是什麼?RDBMS又是什麼?什麼叫表?
作者:愛德寶器
來源:資料管道(ID:adc9556)
-
資料庫(Database):按照資料結構來組織、儲存和管理資料的倉庫。
-
RDBMS(Relational Database Management System):關係資料庫管理系統,儲存和操作關係資料庫表中排列的資料的軟體。
-
SQL:Structured Query Lanuage(結構化查詢語言),更詳細地說,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
FROM <Table Name>
#例子
SELECT DISTINCT FirstName FROM Orders
3. 如何從第一行開始選擇一共五行資料?
#語法
SELECT
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 ,FirstName
FROM 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 優先順序高於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 '[]%';
6. 如何分組並按條件選擇資料?(重點)
#語法
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過濾針對的是組。
7. 分組和排序的順序是什麼?(重點)
/*
SELECR
FROM
WHERE
GROUP BY
HAVING
ORDER BY
*/
SELECT col_name FROM table_name
WHERE
GROUP BY
HAVING
ORDER BY
8. 如何使用子查詢?(重點)
SELECT col_name FROM table_name
WHERE col_name =
(SELECT col_name FROM table_name WHERE .... );
9. 表的聯結查詢怎麼做(非常重點!!!!一定要會!)
#語法
SELECT <Column List>
FROM JOIN
ON . = .、
#例子
SELECT Orders.LastName, Countries.CountryName
FROM Orders INNER JOIN Countries ON
Orders.CountryID = Countries.ID
除此之外還有左聯結 LEFT JOIN
右聯結 RIGHT JOIN
全聯結 FULL JOIN
10. 如何使用聯合查詢
#語法
SELECT <Column List> FROM
UNION
SELECT <Column List> FROM
#例子
SELECT <Column List> FROM
UNION
SELECT <Column List> FROM
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 = , = , …
WHERE <Search Condition>
#例子
UPDATE Orders
SET FirstName = 'John', LastName = 'Who' WHERE LastName='Wo'
3. DELETE(刪除)
#語法
DELETE FROM <Table Name>
WHERE <Search Condition>
#例子
DELETE FROM Orders
WHERE 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
# 例子
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
本部分展開太細,不做介紹,做為資料分析師需要重點掌握查詢陳述句!