資料庫程式設計 – PHP+MySQL 第 六章 SQL 語言與 PHP+MySQL       下一頁

第六章 SQL 語言與 PHP-MySQL

 

6-1 SQL 語言

內容:

有關 SQL 語言請參考『資料庫系統概論』翻轉電子書,這裡僅簡單介紹。

6-1-1 SQL 簡介

一般人都知道,資料庫是集中管理資料的地方,它的方法是建立了許多資料表,再分門別類的將各種資料存入相對應的資料表內,又在資料表之間建立關聯,如此結合建立了一個資料庫。另外我們將在這些資料表內淬取資訊、更新資料、或刪除資料、、等等操作。由此可見我們需要一套健全的工具才能管理、維護與使用資料庫,此工具就是 SQL(Structure Query Language) 語言。

所有資料庫製造商皆會建立一套 SQL 工具來操作自己的資料庫,但為了方便使用者學習,目前 SQL 語言大多已經標準化(依循 IBM SQL 架構)。也就是說,您只要學會 SQL 語言的使用方法,幾乎所有廠牌的資料庫都可以操作。圖 6-1 是一般 SQL 語言應具有的功能,以下分別說明之:

6-1 SQL 與資料庫

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

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

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

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

為了讓同學快速認識資料庫系統,我們還是由 DML 開始,而且同學如能善加利用 SQL DML 工具,就能將很枯燥無味的『資料』資料,變成變化萬千的『訊息』。SQL 語言最大的特性是資料表經過處理後的結果也是資料表,但欄位數目與資料筆數會隨著查詢結果而改變,如下圖所示:

6 -# SQL 語言處理模式

6-1-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

6-1-3 SQL 操作介面 - AppServ

還是需要一個介面讓我們操作 SQL 來管理資料庫,一般資料庫都提供交談式的操作環境,但 AppServ 提供一個更優質化的環境。當 AppServ 並載入資料庫(couse_db) 之後(請參考第一章介紹),由瀏覽器 URL 輸入 http://localhost,如下圖6-3 所示。

接著輸入帳號/密碼,再選取資料庫、點選『SQL』選項:

則出現 SQL 視窗,輸入 SQL 程式後,再按執行。

執行結果如下:

6-1-4 course_db 關聯圖

本書許多程式都以 course_db 資料庫編寫,有關它的詳細介紹,請參考『資料庫系統概論』電子書。但是需要參考它的關聯圖才可以編寫程式,關聯圖如下:(關聯圖的使用方法,請參考『資料庫系統概論』 3-4 節說明)

 

 

翻轉工作室:粘添壽

course_db 關聯圖

 

資料庫程式設計:

 

 

 

翻轉電子書系列: