資料庫系統概論第 四章 資料庫操作 - SQL Select      下一頁

第四章 資料庫操作- SQL Select

內容:

  • 4-1 何謂 SQL 命令

  • 4-2 SQL 命令彙集

  • 4-3 匯入/開啟 course_db 資料庫

4-1 何謂 SQL 命令

結構化查詢語言』(Structure Query Language, SQL)是一套標準化的資料庫操作命令。幾乎所有資料庫系統都可以利用此它操作與管理,也就是說,學會了 SQL 查詢命令,就可以操作任何廠家的資料庫系統,譬如 Windows SQL ServerMySQLAccess、、等等。當然啦,直接用命令來操作資料庫並不方便,因為它需要一個命令、接一個命令的輸入,再由它的輸出結果來決定下一個應該輸入哪個命令。如果我們能夠依照需求,將多個 SQL 命令整合起來完成它,並且可以重複使用,就非常完美了。為了達成此目標,我們將 SQL 命令嵌程式入語言中,利用它編寫程式就可完成了,譬如將 SQL 嵌入 PHP 語言、Visual BasicVB.net 內、等等,這就是所謂『資料庫程式設計』了。

如何學習資料庫系統,許多書都由介紹資料庫架構開始,接著介紹如何建構資料庫,最後才了了草草的介紹如何操作資料庫。前面兩個階段已打垮學生的信心,最後再介紹如何操作已沒甚麼意思了。我們剛好相反,建構一個很完整的資料庫範例,學生利用 SQL 命令操作資料庫,認識資料庫的功能何在,讓學生了解為何要建立資料庫,並產生興趣。

SQL 大略上可區分為:DDLDMLDRLTCL、以及 DCL 等五大部分,如圖 4-1 所示,以下分別介紹之:

  • 『資料定義語言』(Data Definition Language, DDL):提供可產生、變更、刪除資料庫或資料表之命令,如 CreateAlterDropTruncateComment、以及 Rename等命令。

  • 資料處理語言』(Data Manipulation Language, DML):提供可以處理資料表之命令,譬如:SelectInsertUpdateDelete等。

  • 『資料控制語言』(Data Control Language, DCL):提供管理資料庫或資料表授權使用之命令,如:GrantRevoke 等。

  • 『交易控制語言』(Transaction Control Language):多人使用環境的交易控制命令,如:CommitSavepointRollback、以及 Settransaction 等。

4-1 SQL 語言總類

前兩者 DDL DML 本課程將會介紹到,其它部分等待爾後有其它進階課程再介紹。為了讓同學快速認識資料庫系統,我們還是由 DML 開始,而且同學如能善加利用 SQL DML 工具,就能將很枯燥無味的『資料』,產生變化萬千的『訊息』或『資訊』。

從關聯式資料庫而言,SQL 命令即是操作資料庫內的資料表,也許一次操作一個、兩個、或多個資料表,但處理結果的輸出也是資料表,但欄位數目與資料筆數會隨著查詢結果而改變,如下圖所示:

4-2 SQL 語言處理模式

4-2 SQL 命令彙集

 

 

   

 

   

 

Select

Select "欄位" From "表格名";

Distinct

Select Distinct "欄位" 

From "表格名";

 

Where

Select "欄位" 

From "表格名" 

Where "condition";

 

And/OR

Select "欄位" 

From "表格名" 

Where "簡單條件" 

{[And|Or] "簡單條件"}+ ;

 

In

SELECT "欄位" 
FROM "
表格名" 
WHERE "
欄位" IN ('1', '2', ...);

 

Between

SELECT "欄位" 
FROM "
表格名" 
WHERE "
欄位" BETWEEN '1' AND '2';

 

Like

SELECT "欄位" 
FROM "
表格名" 
WHERE "
欄位" LIKE {模式};

 

Order By

SELECT "欄位" 
FROM "
表格名" 
[WHERE "
條件"]
ORDER BY "
欄位" [ASC, DESC];

 

Count

SELECT COUNT("欄位") 
FROM "
表格名";

 

Group by

SELECT "欄位1", SUM("欄位2") 
FROM "
表格名" 
GROUP BY "
欄位1"

 

Having

SELECT "欄位1", SUM("欄位2") 
FROM "
表格名" 
GROUP BY "
欄位1" 
HAVING (
函數條件);

 

Create

CREATE TABLE "表格名"
("
欄位 1" "欄位 1 資料種類",
"
欄位 2" "欄位 2 資料種類"",
... );

 

Insert

INSERT INTO "表格名" ("欄位1", "欄位2", ...)
VALUES ("
1", "2", ...);

 

Drop

DROP TABLE "表格名";

Delete

DELETE FROM "表格名"
WHERE "
條件";

 

Truncate

TRUNCATE TABLE "表格名";

 

Update

UPDATE "表格名"
SET "
欄位1" = [新值]
WHERE "
條件";

(Not) Like

*_(底線)%[ABC]Pattern

 

運算

+-*/%

 

 

 

 

比較

= <> < > >=between

 

 

 

聚合

Count(欄位)AveSumMaxMin

 

  

4-3 匯入/開啟 course_db 資料庫

接下來,所有程式範例皆在 course_db 資料庫操作,吾人開啟該資料庫之後,直接利用 SQL 命令來查詢該資料內容,擷取所要的訊息。

(A) 開啟瀏覽器

輸入 URLlocalhost,再點選 Database Manager 進入資料庫系統,如下:

(B) 登入 MySQL 資料庫系統

(C) 選擇資料庫

吾人選擇 course_db 資料庫,共有 7 個資料表,如下:

翻轉工作室:粘添壽

 

資料庫系統概論(含邏輯設計)

 

翻轉電子書系列: