SQL總結(一)

一、SQL基本教程

1. SQL SELECT 語句

SELECT 語句用於從表中選取數據,結果被存儲在一個結果表中(稱爲結果集)。

SELECT 語法

SELECT 列名稱 FROM 表名稱

以及:

SELECT * FROM 表名稱

SELECT 實例

如需獲取名爲 "LastName" 和 "FirstName" 的列的內容(從名爲 "Persons" 的數據庫表):

SELECT LastName,FirstName FROM Persons

"Persons"表:

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

結果:

LastName

FirstName

Adams

John

Bush

George

Carter

Thomas

SELECT * 實例

現在我們希望從 "Persons" 表中選取所有的列。請使用符號 * 取代列的名稱,就像這樣:

SELECT * FROM Persons

結果:

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

2. SQL SELECT DISTINCT 語句

在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。

關鍵詞 DISTINCT 用於返回唯一不同的值。

SELECT DISTINCT語法

SELECT DISTINCT 列名稱 FROM 表名稱

SELECT DISTINCT實例

"Orders"表:

Company

OrderNumber

IBM

3532

W3School

2356

Apple

4698

W3School

6953

如需從 Company" 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語句:

SELECT DISTINCT Company FROM Orders 

結果:

Company

IBM

W3School

Apple

現在,在結果集中,"W3School" 僅被列出了一次。

3. SQL WHERE 子句

如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。

WHERE語法

SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值

下面的運算符可在 WHERE 子句中使用:

操作符

描述

=

等於

<> 

不等於

大於

小於

>=

大於等於

<=

小於等於

BETWEEN

在某個範圍內

LIKE

搜索某種模式

註釋:在某些版本的 SQL 中,操作符 <> 可以寫爲 !=。

WHERE實例

如果只希望選取居住在城市 "Beijing" 中的人,我們需要向 SELECT 語句添加 WHERE 子句:

SELECT * FROM Persons WHERE City='Beijing'

"Persons" 表

LastName

FirstName

Address

City

Year

Adams

John

Oxford Street

London

1970

Bush

George

Fifth Avenue

New York

1975

Carter

Thomas

Changan Street

Beijing

1980

Gates

Bill

Xuanwumen 10

Beijing

1985

結果:

LastName

FirstName

Address

City

Year

Carter

Thomas

Changan Street

Beijing

1980

Gates

Bill

Xuanwumen 10

Beijing

1985

4. SQL AND & OR運算符

AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。

如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。

原始的表 (用在例子中的):

LastName

FirstName

Address

City

Adams

John

Oxford Street

London

Bush

George

Fifth Avenue

New York

Carter

Thomas

Changan Street

Beijing

Carter

William

Xuanwumen 10

Beijing

AND 運算符實例

使用 AND 來顯示所有姓爲 "Carter" 並且名爲 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

結果:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

OR 運算符實例

使用 OR 來顯示所有姓爲 "Carter" 或者名爲 "Thomas" 的人:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

結果:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

Carter

William

Xuanwumen 10

Beijing

結合 AND 和 OR 運算符

我們也可以把 AND 和 OR 結合起來(使用圓括號來組成複雜的表達式):

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'

結果:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

Carter

William

Xuanwumen 10

Beijing

5. SQL ORDER BY 子句

ORDER BY 語句用於根據指定的列對結果集進行排序,默認按照升序對記錄進行排序。

如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。

原始的表 (用在例子中的):

Orders 表:

Company

OrderNumber

IBM

3532

W3School

2356

Apple

4698

W3School

6953

ORDER BY實例 1

以字母順序顯示公司名稱:

SELECT Company, OrderNumber FROM Orders ORDER BY Company

結果:

Company

OrderNumber

Apple

4698

IBM

3532

W3School

6953

W3School

2356

ORDER BY實例 2

以字母順序顯示公司名稱(Company),並以數字順序顯示順序號(OrderNumber):

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

結果:

Company

OrderNumber

Apple

4698

IBM

3532

W3School

2356

W3School

6953

ORDER BY實例 3

以逆字母順序顯示公司名稱:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

結果:

Company

OrderNumber

W3School

6953

W3School

2356

IBM

3532

Apple

4698

ORDER BY實例 4

以逆字母順序顯示公司名稱,並以數字順序顯示順序號:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

結果:

Company

OrderNumber

W3School

2356

W3School

6953

IBM

3532

Apple

4698

注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值爲 nulls 時,情況也是這樣的。

6. SQL INSERT INTO 語句

INSERT INTO 語句用於向表格中插入新的行。

INSERT INTO語法

INSERT INTO 表名稱 VALUES (值1, 值2,....)

我們也可以指定所要插入數據的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

插入新的行

"Persons" 表:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

SQL 語句:

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

結果:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

Gates

Bill

Xuanwumen 10

Beijing

在指定的列中插入數據

"Persons" 表:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

Gates

Bill

Xuanwumen 10

Beijing

SQL 語句:

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

結果:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

Gates

Bill

Xuanwumen 10

Beijing

Wilson

 

Champs-Elysees

 

7. SQL UPDATE 語句

Update 語句用於修改表中的數據。

UPDATE語法

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

Person:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

Wilson

 

Champs-Elysees

 

更新某一行中的一個列

我們爲 lastname 是 "Wilson" 的人添加 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

結果:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

Wilson

Fred

Champs-Elysees

 

更新某一行中的若干列

我們會修改地址(address),並添加城市名稱(city):

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

結果:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

Wilson

Fred

Zhongshan 23

Nanjing

8. SQL DELETE 語句

DELETE 語句用於刪除表中的行。

DELETE語法

DELETE FROM 表名稱 WHERE 列名稱 = 值

Person:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

Wilson

Fred

Zhongshan 23

Nanjing

刪除某行

"Fred Wilson" 會被刪除:

DELETE FROM Person WHERE LastName = 'Wilson' 

結果:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

刪除所有行

可以在不刪除表的情況下刪除所有的行。這意味着表的結構、屬性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章