資料庫程式設計 – PHP+MySQL 第 十一章 表格異動處理程式       下一頁

 

第十一章 表格異動處理程式

 

11-1 DDL DML 簡介

內容:

  • 11-1 DDL 與 DML 簡介

  • 11-2 建立表格 - create table

    • 11-2-1 Create table 語法

    • 11-2-2 範例研討:建立監護人表格

  • 11-3 變更表格 - Alter table

    • 11-3-1 Alter table 語法

    • 11-3-2 範例研討:增加關係欄位

  • 11-4 刪除表格 - Drop table

    • 11-4-1 Drop table 語法

    • 11-4-2 範例研討:刪除監護人表格

本書到目前為止,花費了許多章節介紹 Select 查詢命令,因它是由資料庫萃取資訊的主要工具。除此之外,還有兩大類管理命令,本章就來一一介紹:

(A) 『資料定義語言』( Data Definition Language, DDL)

提供產生(Create)、變更(Alter)與刪除 (Delete)資料表之命令,雖然還有其他命令,但牽涉過於廣泛本書僅介紹這三種較常用的命令。

(B) 『資料處理語言』(Data Manipulation Language, DML)

提供對資料表內記錄(資料行)做插入 (Insert)、更新(Update)與刪除(Delete) 管理之命令,本章將一一介紹各命令的使用法,與透過 PHP 來靈活運用它。

11-2 建立表格 – Create table

11-2-1 Create table 語法

Create table 命令是用來建立資料表的。一般資料庫經過邏輯設計,規劃若干的資料表後就用此命令來產生。因此,大多在 SQL 控制台上處理,譬如,在 AppServ 上以選單完成,但我們還是介紹它的語法,如下:

Create Table 資料表名稱

  (欄位_1  資料型態 屬性,

   欄位_2  資料型態 屬性,

   …,

   Primary Key (欄位_1, 欄位_2)

)

其中資料型態,常用有:

a. 字元:CHAR(長度)CHAR(8)

b. 整數:int(長度)int(8)

c. 日期:

另外,屬性有:

a. 不可空白:Not null

b. Primary Key:指定主鍵,也許會包含兩個以上欄位。

11-2-2 範例研討 建立監護人表格

(A) 系統功能:Ex11_1

學務處需要建立學生家長相關系統,期望建立一個監護人資料表(guardian),期望表格結構 {student_ID, guard_name, tel, address},並以 student_ID 為唯一識別。

(B) SQL 系統分析

為了簡化系統設計,我們假設每位學生與監護人之間是一對一關係,因此 guardian students 兩張資料表之間是一對一的關係,之間是由 student_ID 欄位建立關連,然而 guardian 資料表的 student_ID 的資料型態須相同。我們規劃如下:

create table guardian (

student_ID varchar(40) not null,

guard_name varchar(40),

tel varchar(40),

address varchar(60),

primary key (student_ID)

);

(C) 利用Appserv 控制台建立

AppServ SQL 介面下輸入下列命令即可:

執行後 course_db 資料庫內產生険 guardian 資料表如下:

11-3 變更表格 – Alter table

11-3-1 Alter table 語法

當表格不滿足所需時,可以利用 Alter Table 變更其型態。可針對現有表格作:增加欄位、修改欄位、刪除欄位,變更主鍵,以及定義屬性、、、等等功能,格式如下:

Alter Table 資料表名稱

[Alter] [欄位] [資料型態][Null | Not null]

[Add | Drop] [欄位] [屬性][限制]

11-3-2 範例研討:增加關係欄位

(A) 系統功能:Ex10_2

學務處認為目前監護人資料表(guardian)不能滿足所需,期望增加學生與監護人之間的關係欄位(relation)

(B) 系統分析

描述關係人(relation)可能是父子、父女、養父子、兄妹、、、等等關係,因此,其資料型態還是使用 VARCHAR(40) 較適合,吾人規劃如下:

Alter table guardian

    Add relation varchar(40) not null;

(C) 利用Appserv 控制台建立

AppServ SQL 介面下輸入下列命令即可:

執行後,guardian 表的結構變更如下:

11-4 刪除表格 – Drop table

11-4-1 Drop table 語法

當表格不需要時,可以利用 Drop Table 命令將它刪除,格式如下:

Drop Table 資料表名稱 [Restrict][Cascade];

11-4-2 範例研討:刪除監護人表格

(A) 系統功能:Ex11_3

學務處認為不再需要監護人資料表(guardian),期望將它刪除。

(C) 利用 SQL 命令刪除

AppServ SQL 介面下輸入下列命令即可:

主講人:粘添壽博士

course_db 關聯圖

 

資料庫程式設計 - PHP+MySQL: