结构化查询语言SQL(一).ppt
《结构化查询语言SQL(一).ppt》由会员分享,可在线阅读,更多相关《结构化查询语言SQL(一).ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 結構化查詢語言SQL(一)檔案系統(File System)關聯式資料模型(Relational Data Model)關聯式資料庫管理系統(RDBMS)物件導向之類別圖(UML-Class Diagram)檔案(File)關聯(Relation)資料表(Table)類別(Class)欄位(Fields)屬性(Attribute)行(Column)屬性(Attribute)紀錄(Record)值組(Tuple)列(Row)物件(Object)/實例(Instance)相關名詞比較表一:相關名詞比較6-26-2資料定義語言(DDL)(DDL)定義綱要(Schema)定義資料表(Table
2、s)(Tables)6-36-3資料操作語言(DML)(DML)新增操作(Inert Operation)(Inert Operation)刪除操作(Delete Operation)(Delete Operation)更新操作(Update Operation)(Update Operation)查詢操作(Select Operation)(Select Operation)3/107定義資料表之基本語法5/107圖6-4 資料庫ERD之主從關係建建立立順順序序(由由上上而而下下)【題目】依圖6-4定義出所有之資料表1)員工2)客戶3)供應商4)產品類別5)產品資料6)訂單7)訂單明細【說明
3、】定義資料表的基本語法在第一欄為資料表之屬性,再定義每個屬性的資料型態,資料型態之後即是該屬性的限制。範例 6-3【員工】資料表之限制說明在員工資料表中,員工編號為此資料表之主要鍵(Primary Key),姓名之屬性值不得為空值(Null Value)。1)建立建立【員工】資料表【語法】(語法一)將員工編號為主要鍵之限制寫在下方的table level區,並將姓名不得為空值之限制,直接寫在姓名屬性後方。(語法二)將員工編號為主要鍵之限制直接寫在員工編號屬性後方。【客戶】資料表之限制說明在客戶資料表中,客戶編號為此資料表之主要鍵(Primary Key),公司名稱之屬性值不得為空值(Null
4、Value)。2)建立建立【客戶】資料表【語法】(語法一)將客戶編號為主要鍵之限制寫在下方的table level區,並將公司名稱不得為空值之限制,直接寫在公司名稱屬性後方。(語法二)將客戶編號為主要鍵之限制直接寫在客戶編號屬性後方。【供應商】資料表之限制說明在供應商資料表中,除了供應商編號為此資料表之主要鍵(Primary Key)之外,此資料表中的地址和電話屬性,不得同時為空值(Null Value),也就是至少要有一個屬性有值。【語法】(語法一)將供應商編號為主要鍵之限制寫在下方的table level區,並將地址和電話屬性,不得同時為空值(Null Value)之限制,寫於table
5、level區。(語法二)將供應商編號為主要鍵之限制直接寫在供應商編號屬性後面,但將地址和電話屬性,不得同時為空值(Null Value)之限制,仍要寫於table level區,不得寫於個別的屬性後方。倘若將此限制寫於個別屬性後方,其語意將成為地址和電話兩個屬性皆不可為空值(Null Value)。3)建立建立【供應商】資料表【語法】(語法一)將供應商編號為主要鍵之限制寫在下方的table level區,並將地址和電話屬性,不得同時不得同時為空值(Null Value)之限制,寫於table level區。(語法二)將供應商編號為主要鍵之限制直接寫在供應商編號屬性後面,但將地址和電話屬性,不得
6、同時不得同時為空值(Null Value)之限制,仍要寫於table level區,不得寫於個別的屬性後方。倘若將此限制寫於個別屬性後方,其語意將成為地址和電話兩個屬性皆不可皆不可為空值(Null Value)。【產品類別】資料表之限制說明在產品類別資料表中,類別編號為此資料表之主要鍵(Primary Key),類別名稱之屬性值不得為空值(Null Value)。【語法】(語法一)將類別編號為主要鍵之限制寫在下方的table level區,並將類別名稱不得為空值之限制,直接寫在類別名稱屬性後方。(語法二)將類別編號為主要鍵之限制直接寫在類別編號屬性後方。4)建立建立【產品類別】資料表【語法】(
7、語法一)將類別編號為主要鍵之限制寫在下方的table level區,並將類別名稱不得為空值之限制,直接寫在類別名稱屬性後方。(語法二)將類別編號為主要鍵之限制直接寫在類別編號屬性後方。語法一?語法二?【產品資料】資料表之限制說明在產品資料的資料表中,產品編號為此資料表之主要鍵(Primary Key),類別編號為此資料表中一個外來鍵,參考產品類別資料表中的主要鍵類別編號;供應商編號為此資料表中另一個外來鍵,參考供應商資料表中的主要鍵供應商編號;並且庫存量和安全存量必須設預設值 0。【語法】(語法一)將產品編號為主要鍵及類別編號和供應商編號為兩個外來鍵之限制寫在下方的table level區,並
8、將庫存量和安全存量設預設值為0之限制,直接寫在兩個屬性後方。(語法二)將產品編號為主要鍵及類別編號和供應商編號為兩個外來鍵之限制直接寫在個別屬性後方。5)建立建立【產品資料】資料表(語法一)將產品編號為主要鍵及類別編號和供應商編號為兩個外來鍵之限制寫在下方的table level區,並將庫存量和安全存量設預設值為0之限制,直接寫在兩個屬性後方。(語法二)將產品編號為主要鍵及類別編號和供應商編號為兩個外來鍵之限制直接寫在個別屬性後方。【訂單】資料表之限制說明在訂單資料表中,訂單編號為此資料表之主要鍵(Primary Key),員工編號為此資料表中一個外來鍵,參考員工資料表中的主要鍵員工編號;客戶
9、編號為此資料表中另一個外來鍵,是參考客戶資料表中的主要鍵客戶編號。【語法】(語法一)將訂單編號為主要鍵及員工編號和客戶編號為兩個外來鍵之限制寫在下方的table level區。(語法二)將訂單編號為主要鍵及員工編號和客戶編號為兩個外來鍵之限制直接寫在個別屬性後方。6)建立建立【訂單】資料表(語法一)將訂單編號為主要鍵及員工編號和客戶編號為兩個外來鍵之限制寫在下方的table level區。語法二?(語法二)將訂單編號為主要鍵及員工編號和客戶編號為兩個外來鍵之限制直接寫在個別屬性後方。【訂單明細】資料表之限制說明訂單編號+產品編號兩個屬性結合成為此資料表之主要鍵(Primary Key)。單一個
10、產品編號屬性又剛好為此資料表中一個外來鍵,參考訂單資料表中的主要鍵訂單編號,除了要達到參考完整性限制外,若有違反此限制時,採用連鎖刪除(DELETE CASCADE)和連鎖更新(UPDATE CASCADE);產品編號為此資料表中另一個外來鍵,參考產品資料資料表中的主要鍵產品編號。除此之外,對於數量屬性也將限制必須大於0。ON DELETE CASCADE 指定若有人嘗試刪除包含了索引鍵的資料列,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考時,包含這些外部索引鍵的所有資料列也會被刪除。ON UPDATE CASCADE 指定若有人嘗試更新資料列中的索引鍵值,而該索引鍵又被其他資料表
11、的現有資料列中的外部索引鍵所參考時,所有組成該外部索引鍵的值也會更新成指定給該索引鍵的新值。7)建立建立【訂單明細】資料表(語法一)將所有的限制全部寫在下方的table level區。但是在外來鍵的限制方面,本資料表共有兩個外來鍵,一為訂單編號參考訂單資料表的訂單編號,且要求在違反限制時,將使用連鎖刪除和連鎖更新,所以在其參考語法後方要再加上選項ON DELETE CASCADE ON UPDATE CASCADE。另一個外來鍵為產品編號參考產品資料資料表的產品編號,由於沒有特別限制在違反時的處理方式,預設沒有任何選項時,則為拒絕刪除和拒絕更新。最後為一個數量的限制必須大於0。ON DELET
12、E NO ACTION|CASCADE|SET NULL|SET DEFAULT ON UPDATE NO ACTION|CASCADE|SET NULL|SET DEFAULT 若沒有指定 ON DELETE ON DELETE 或 ON UPDATEON UPDATE,NO ACTION NO ACTION 將會是預設值。ON DELETE NO ACTION 指定若有人嘗試刪除包含了索引鍵的資料列,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考,此動作就會產生錯誤,而 DELETE DELETE 陳述式則會復原。ON UPDATE NO ACTION 指定若有人嘗試更新資料列中
13、的索引鍵值,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考,此動作就會產生錯誤,而 UPDATE UPDATE 陳述式則會復原。CASCADECASCADE、SET NULL SET NULL 和 SET DEFAULT SET DEFAULT 可讓索引鍵值的刪除或更新動作,影響已定義成擁有外部索引鍵關聯性的資料表,以便追蹤回執行修改的資料表。若串聯式參考動作也已定義於目標資料表中,指定的串聯式動作也會作用於這些被刪除或更新的資料列。CASCADE CASCADE 不能針對具有 timestamp timestamp 資料行的任何外部索引鍵或主索引鍵來指定。ON DELETE CAS
14、CADE 指定若有人嘗試刪除包含了索引鍵的資料列,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考時,包含這些外部索引鍵的所有資料列也會被刪除。ON UPDATE CASCADE 指定若有人嘗試更新資料列中的索引鍵值,而該索引鍵又被其他資料表的現有資料列中的外部索引鍵所參考時,所有組成該外部索引鍵的值也會更新成指定給該索引鍵的新值。語法二?(語法二)由於此資料表的主要鍵是由兩個屬性訂單編號和產品編號組合而成,所以並不可分別寫在屬性後方,否則在語意上將解釋為訂單編號為主要鍵,產品編號也是主要鍵,也就是此資料表有兩個主要鍵,這是不被允許的,所以只要多於一個屬性所組成的鍵,就必須要置於tab
15、le level區,不可分別寫於屬性後方。其他限制都屬於單一個屬性的限制,所以皆可置於該屬性後面做限制。刪除資料表之基本語法刪除順序與建立順序相反6-1簡介6-2資料定義語言(DDL)定義綱要(Schema)定義資料表(Tables)6-36-36-36-3資料操作語言資料操作語言(DML)(DML)(DML)(DML)新增操作新增操作(Inert Operation)(Inert Operation)(Inert Operation)(Inert Operation)刪除操作(Delete Operation)(Delete Operation)更新操作(Update Operation)(
16、Update Operation)查詢操作(Select Operation)(Select Operation)本章內容新增INSERT之基本語法【範例6-4】新增一筆新的產品資料。【說明】(語法一)將屬性列全部省略不寫,但必須將新增的資料依資料表內的屬性順序填寫,否則將會造成錯誤。【語法】(語法一)INSERT INTO 產品資料 VALUES(13,8,S0005,拿鐵,35,0,30)範例 6-4(1/2)【範例6-4】新增一筆新的產品資料。【說明】(語法二)將屬性列名稱全部列出,其順序只要和所要新增的屬性值位置相對應即可。【語法】(語法二)INSERT INTO 產品資料(產品編號,
17、類別編號,供應商編號,產品名稱,建議單價,庫存量,安全存量)VALUES(13,8,S0005,拿鐵,35,0,30)範例 6-4(2/2)【範例6-5】新增一筆新的產品資料,其中的庫存量與安全存量使用資料表內的預設值。【說明】此範例只要是說明新增一筆資料時,可以使用保留字DEFAULT,來達到該屬性是使用資料表內的預設值。【語法】INSERT INTO 產品資料(產品編號,類別編號,產品名稱,建議單價,庫存量,安全存量)VALUES(15,2,S0002,紅茶拿鐵,20,DEFAULTDEFAULT,DEFAULTDEFAULT)31/107範例 6-5刪除delete之基本語法【範例6-6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 查询 语言 SQL
限制150内