




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Chapter 4資料庫規(guī)劃與設(shè)計1大 綱4-1 資料庫設(shè)計基礎(chǔ)4-2 資料模型4-3 資料庫設(shè)計-實體關(guān)係模型4-4 資料庫設(shè)計-正規(guī)化4-5 實作案例4-6 SQL4-1 資料庫設(shè)計基礎(chǔ)資料庫(Database) 是一組相關(guān)資料所形成的集合,它是資訊系統(tǒng)中用來儲存資料的地方。資料庫是以電子化的檔案型式存在於系統(tǒng)中,其透過特定的資料模型概念,將資料集合進行組織性的儲存,以提供應(yīng)用系統(tǒng)的使用。資料庫管理系統(tǒng)資料庫管理系統(tǒng)(Database Management System)簡稱為DBMS,它是一套應(yīng)用軟體系統(tǒng),是介於使用者與作業(yè)系統(tǒng)之間,用來有效管理資料庫。常見的DBMS有SQL Serve
2、r、Oracle、SyBase等。 資料庫管理系統(tǒng)的主要功能資料定義資料處理安全性管理資料庫的維護資料庫系統(tǒng)資料庫系統(tǒng)(Database System)是一套包含資料庫、資料庫管理系統(tǒng)、應(yīng)用程式,以及使用者在內(nèi)的系統(tǒng)。一般也將資料庫系統(tǒng)視為是一個包含資料庫功能的資訊系統(tǒng)。使用者SQL查詢 / 應(yīng)用程式資料庫管理系統(tǒng)綱要(中繼資料)資料庫資料庫系統(tǒng)相關(guān)的人員角色資料庫系統(tǒng)相關(guān)的人員角色資料庫管理員資料庫設(shè)計師終端使用者系統(tǒng)分析師與應(yīng)用程式設(shè)計師使用資料庫系統(tǒng)的優(yōu)點減少大量重覆儲存的資料、 減少不一致的資料、資料得以共享、 達成資料標(biāo)準(zhǔn)化的目的、 加快資料擷取速度、 資料具有整合性、 達成資料獨立
3、、可利用資料模型來描述複雜的關(guān)係、 快速備份與回復(fù)資料庫、 提供不同的視界等。4-2 資料模型資料模型是資料庫系統(tǒng)的核心一個資料模型的主要組成資料的表示方式表示方式的合法條件(整合限制條件)資料的操作與運算資料模型1. 階層式資料模型2. 網(wǎng)路式資料模型3. 關(guān)聯(lián)式資料模型1. 階層式資料模型階層式資料模型(Hierarchical Database Model)其結(jié)構(gòu)是採用一個有序集合的樹狀結(jié)構(gòu)。階層式資料模式的整合限制條件為:任何的子節(jié)點(Child Node)都必須要有父節(jié)點(Parent Node)的存在。階層式資料模型上的資料運算主要是依循樹狀結(jié)構(gòu)(Tree Structure)上的
4、運算原則。階層式資料模型只適合用來描述一對多的關(guān)係,但不適合多對多關(guān)係的描述。2. 網(wǎng)路式資料模型網(wǎng)路式資料庫模型(Network Database Model)在資料的結(jié)構(gòu)上採用網(wǎng)路圖形來連結(jié)資料。網(wǎng)路式資料模式的整合限制條件為:除非其父親節(jié)點已經(jīng)存在了,否則任何的孩子節(jié)點都不能加入資料庫中。網(wǎng)路式資料模型上的資料運算主要依循圖形(Graph)結(jié)構(gòu)上的運算。由於網(wǎng)路式資料模型在結(jié)構(gòu)上是採用網(wǎng)路(圖形)的型式,因此適合用來描述多對多問題。3. 關(guān)聯(lián)式資料模型關(guān)聯(lián)式資料模型的發(fā)展,最早是在1970 年代由IBM 公司的研究人員Codd博士首先發(fā)展出關(guān)聯(lián)式資料模型,並於1985 年,對外提出關(guān)聯(lián)式
5、資料庫管理系統(tǒng)的規(guī)則建議。使用關(guān)聯(lián)式模型為基礎(chǔ)觀念所建立的資料庫管理系統(tǒng),稱之為關(guān)聯(lián)式資料庫管理系統(tǒng)關(guān)聯(lián)式資料模型的組成元素,包含了資料結(jié)構(gòu)、完整性限制條件,以及資料操作或運算等三大元素。關(guān)聯(lián)(Relation)關(guān)聯(lián)也稱為關(guān)聯(lián)表,形式上就如同是一個表格,是關(guān)聯(lián)式資料模型所採行的表示結(jié)構(gòu)。關(guān)聯(lián)是由許多資料值所組成的表格關(guān)聯(lián)可視為是一組橫列(Row)的集合也可以視為是一組直欄(Column)的集合關(guān)聯(lián)中的每個直欄亦是一個屬性關(guān)聯(lián)的屬性數(shù)目(即欄位數(shù))稱為此關(guān)聯(lián)的維度。關(guān)聯(lián)可視為是經(jīng)由許多屬性所組成的表格。關(guān)聯(lián)綱要一個關(guān)聯(lián)的實體架構(gòu)稱為關(guān)聯(lián)綱要建立關(guān)聯(lián)必須要有:關(guān)聯(lián)名稱屬性集合 (及各屬性的資料型態(tài)
6、)主鍵 (與外來鍵)範(fàn)例:Product 關(guān)聯(lián)表關(guān)聯(lián)表具備四個性質(zhì)關(guān)聯(lián)表的值組是沒有順序的關(guān)聯(lián)表的屬性是沒有順序的關(guān)聯(lián)表中的屬性值是單元值關(guān)聯(lián)表中不含重複的值組關(guān)聯(lián)綱要的表示法限制條件在關(guān)聯(lián)式資料模型中的整合限制條件是用來規(guī)範(fàn)資料在關(guān)聯(lián)表中的儲存、刪除或更改動作,以防止不一致或錯誤的情況發(fā)生。關(guān)聯(lián)式資料模型的整合規(guī)則個體整合限制:用來規(guī)範(fàn)關(guān)聯(lián)內(nèi)部的限制條件參考整合限制:用來規(guī)範(fàn)關(guān)聯(lián)與關(guān)聯(lián)之間的限制條件在關(guān)聯(lián)式資料模型之中,單一關(guān)聯(lián)表格所涉及到的限制包含鍵值完整性限制、定義域完整性限制,以及實體完整性限制。鍵值完整性限制:關(guān)聯(lián)之中,鍵值具有不可為空值(Null Value)的限制。定義域完整性限
7、制:對於不符合期待的值,必須被限制輸入。實體完整性限制:關(guān)聯(lián)中不會存在兩筆完全相同的值組。參考整合性限制是指定在兩個關(guān)聯(lián)之間,用以維持兩個關(guān)聯(lián)值組的一致性。參考整合性限制:外來鍵的屬性值必須在所參考之關(guān)聯(lián)的主鍵屬性中被找到,或者為Null。關(guān)聯(lián)式資料庫範(fàn)例4-3 資料庫設(shè)計-實體關(guān)係模型資料庫設(shè)計(Database Design)是指依照一定的程序、方法和技術(shù),使用結(jié)構(gòu)化方式將概念資料模型轉(zhuǎn)換成資料庫的過程。資料庫設(shè)計的階段概念資料庫設(shè)計:將資料庫需求轉(zhuǎn)換成概念資料模型的過程。邏輯資料庫設(shè)計:針對特定的資料庫模型來建立邏輯資料模型。實體資料庫設(shè)計:將邏輯資料模型轉(zhuǎn)換成關(guān)聯(lián)式資料庫管理系統(tǒng)的一系
8、列SQL 指令敘述。實體關(guān)係模型實體關(guān)係圖經(jīng)常被使用在概念資料庫設(shè)計活動中,用來建立概念資料模型,這種圖形化工具可以描述使用者和設(shè)計者眼中的真實世界,作為之間的溝通橋樑。實體關(guān)係模型中的實體可以對應(yīng)關(guān)聯(lián)式資料庫模型的關(guān)聯(lián)表,並透過關(guān)係來表示外來鍵參考的參考概念,所以關(guān)聯(lián)式資料庫的邏輯資料庫設(shè)計也可以使用實體關(guān)係圖建立邏輯資料模型。實體關(guān)係模型是一套觀念與圖形符號,主要的組成元件包含:實體、屬性、關(guān)係等。範(fàn)例:客戶-訂購-商品的實體關(guān)係圖1.實體型態(tài)與實體實例實體型態(tài)(Entity Type)是同一類實體所形成的集合,其圖形符號以矩形表示。例如客戶實體型態(tài)可表示為: 商品實體型態(tài)可表示為:實體型
9、態(tài)的實例(Instances),或簡稱為實體或個體2. 關(guān)係型態(tài)與關(guān)係實例關(guān)係型態(tài)(Relationship Types)屬於一種關(guān)聯(lián)實體型態(tài)(Associate Entity Type),其目的是用來連結(jié)一、二個或多個相關(guān)的實體型態(tài),圖形符號是使用菱形方式表示。關(guān)聯(lián)型態(tài)也可以建立實例,用來表示一個訂購的行為或事件。3. 屬性屬性(Attributes)在實體關(guān)係圖中是以橢圓型圖形符號的表示節(jié)點。實體關(guān)係圖中的實體型態(tài)與關(guān)係型態(tài)可以擁有許多個屬性。例如:在下圖中,商品實體型態(tài)擁有商品編號、商品名稱、顏色,與價格等四個屬性屬性的類型 (1) 簡單屬性與複合屬性若一屬性的形成由許多屬性所共同構(gòu)成,
10、亦即此一屬性可以被往下進行分割,切割成數(shù)個細微的屬性,則稱之為複合屬性。如下圖中的姓名屬性。簡單屬性是不可再分割的屬性。如下圖中的員工編號、生日與薪資等屬性。屬性的類型 (2) 單值屬性與多值屬性多值屬性是一個可以有多個值的屬性(如下圖中的地點屬性),而一般的屬性都僅能有一個內(nèi)容值,這種屬性我們就稱之為單值屬性(如下圖中的部門編號以及名稱屬性) 。屬性的類型 (3) 儲存屬性與導(dǎo)出屬性某些屬性的資料值,在需要時可以動態(tài)的經(jīng)由計算方式產(chǎn)生,因此無須被實際儲存起來,這種屬性稱之為導(dǎo)出屬性。 例如範(fàn)例中的年紀(jì)屬性可以經(jīng)由儲存屬性生日換算得到,因此在實際的資料庫中,不需要儲存年紀(jì)屬性的資料值。例如下圖
11、中的客戶的交易次數(shù)可以經(jīng)由訂購紀(jì)錄中計算出來,因此交易次數(shù)屬性是屬於導(dǎo)出屬性。如果屬性是實體型態(tài)中,具有唯一性,可以用來識別實例的屬性,我們稱之為鍵值屬性。例如客戶與商品的編號屬性。4. 關(guān)係型態(tài)上的特性關(guān)係型態(tài)的Degree 是參與此關(guān)係的實體型態(tài)數(shù)目。關(guān)係型態(tài)若連接了兩個實體型態(tài),表示此關(guān)係型態(tài)的Degree 為2,也稱為二元關(guān)係。若關(guān)係型態(tài)的Degree 為3,則又稱三元關(guān)係。二元關(guān)係三元關(guān)係5. 關(guān)聯(lián)限制條件關(guān)係型態(tài)連接的實體型態(tài)可以指定限制條件,稱為關(guān)聯(lián)限制條件,包含:基數(shù)比與參與?;鶖?shù)比限制條件是指一個實體所能參與的關(guān)係案例數(shù)。一對一關(guān)係一對多關(guān)係多對多關(guān)係參與限制條件是指實體集合
12、的實例是全部或部份參與關(guān)係型態(tài)。若實體的存在必須依靠關(guān)係型態(tài)與另一實體產(chǎn)生關(guān)聯(lián)來決定,則我們稱之為全部參與;否則則為部份參與。弱實體型態(tài)(Weak Entity Types)本身可以沒有任何的鍵值屬性。弱實體型態(tài)透過另一實體型態(tài)的一些屬性所組成的相關(guān)特定實體來辨認,而連結(jié)Weak Entity 與Identifying Owner 的關(guān)係稱為辨認關(guān)係。4-4 資料庫設(shè)計-正規(guī)化一個未經(jīng)過正規(guī)化的資料庫是一個不良的資料庫設(shè)計與實作方式。資料庫正規(guī)化是指可以對關(guān)聯(lián)進行適當(dāng)?shù)姆指钐幚磉^程。1. 為什麼要做正規(guī)化使關(guān)聯(lián)有良好的語意避免因為資料重複性造成資料不一致避免新增異常要新增一個新的部門(如:9號
13、,工程部),但因為這個新部門尚未有所屬員工,導(dǎo)致主鍵欄位必須為Null而無法完成部門的新增。避免修改異常將2號部門(研發(fā))的部門主管修改成E4,必須保證範(fàn)例中的第三筆與第四筆值組的DMGR屬性皆有被正確修正,否則將會造成資料不一致的狀況。避免刪除異常若員工(莊勝為,E5)離職必須將其資料予以刪除,但此刪除動作將導(dǎo)致編號3號的生產(chǎn)部門被意外刪除了。2. 資料庫的正規(guī)化做法第一階正規(guī)化(1NF)第一階正規(guī)化(1NF)的要求是:關(guān)聯(lián)表沒有重複出現(xiàn)的欄位且每一屬性中只能存放單一的資料值。滿足1NF 的關(guān)聯(lián)不能有多值屬性或複合屬性的存在,因為這一類的屬性並無法讓屬性值滿足不可分的特性。 第二階正規(guī)化(2
14、NF)第二階正規(guī)化(2NF)的要求是:滿足1NF 且關(guān)聯(lián)表中的每一個非主要屬性必須完全功能相依於主鍵。因此在2NF 的處理過程中,主要在於消除非主要屬性與主鍵之間的部份功能相依性。2NF 第三階正規(guī)化(3NF)第三階正規(guī)化(3NF)的要求條件是:滿足2NF 且每一個非主要屬性都不能遞移相依於主鍵。3NF 4-5 實作案例 (財產(chǎn)盤點系統(tǒng))個案公司在組織上包含了許多不同的單位,這些單位都有其正式的單位名稱,同時公司也賦予各單位一個獨立的單位編號,這個編號在公司中是唯一的,可以用來代表公司的特定單位。各單位可以擁用許多人員,每個人員的屬性資料中,除了一個公司所配發(fā)的特定編號之外,亦包含人員的姓名、
15、職稱、電話,與地址等基本資料屬性之外,為了讓這些人員能夠順利登入系統(tǒng),執(zhí)行才採盤點等系統(tǒng)功能,因此必須同時紀(jì)錄每位人員的帳號、密碼,以及E-mail等相關(guān)資訊。為建立一套完善的財產(chǎn)盤點系統(tǒng),於資料庫中必須清楚描述每項財產(chǎn)的編號,這項編號是公司於現(xiàn)行作業(yè)流程中對於財產(chǎn)項目所作的唯一性編碼,以及財產(chǎn)名稱、該財產(chǎn)項目的功能、數(shù)量、相片資訊,以及財產(chǎn)建立的日期等?;禦FID新系統(tǒng)的應(yīng)用,我們於系統(tǒng)中將會紀(jì)錄貼附於每項財產(chǎn)上的RFID Tag標(biāo)籤的卡號,以便讓RFID盤點系統(tǒng)能夠順利運作。除此之外,在每項財產(chǎn)項目紀(jì)錄被建立時,系統(tǒng)必須自行賦予每一財產(chǎn)記錄值組一個具有唯一性的流水編號。為了能夠清楚表示財
16、產(chǎn)設(shè)備設(shè)置的地點位置,我們將這些可能設(shè)置或存放財產(chǎn)的地點位置進行編碼,對於公司中每一個存放有財產(chǎn)的特定位置給一個位置名稱,以及一個用來代表這個位置的編號,以便日後在進行盤點作業(yè)或執(zhí)行其它系統(tǒng)功能時,對於財產(chǎn)的設(shè)置位置能有一個共同的標(biāo)號與稱呼名稱。對於盤點作業(yè)時可能出現(xiàn)的狀況,我們經(jīng)過分析後將其歸納成正常、送修,以及出借等數(shù)種可能的盤點狀態(tài),並賦予各種狀況一個編號以及狀況名稱,並保留一個備註的屬性,用來對某一狀況的細節(jié)進行必要的描述或說明。對於公司的人員而言,可能隸屬於某一個單位,另就部門單位而言,一個單位可能會擁有一個以上的人員。在財產(chǎn)部份,許多財產(chǎn)項目可能會同樣被某一個單位所保管,亦即一個單
17、位可能同時保管多項的財產(chǎn)項目,而許多財產(chǎn)項目也可能會位於同一個地點位置。每當(dāng)進行一項財產(chǎn)盤點作業(yè)時,系統(tǒng)必須清楚紀(jì)錄盤點的財產(chǎn)項目、盤點人員、盤點狀況、盤點日期,並描述財產(chǎn)的詳細位置,同時系統(tǒng)必須對每一個財產(chǎn)盤點作業(yè),給予一個獨立的盤點紀(jì)錄編號,以方便日後管理者對於盤點記錄資料的查詢等資料處理。1. 資料庫設(shè)計由實體關(guān)係模型轉(zhuǎn)換成一組關(guān)聯(lián)表集合這些關(guān)聯(lián)表必須經(jīng)過正規(guī)化處理後並確認綱要依據(jù)綱要產(chǎn)生可以建立關(guān)聯(lián)的SQL單位資料關(guān)聯(lián)表Unit屬性意義屬性名稱資料型態(tài)鍵別參考關(guān)聯(lián)單位編號Unit_IDintPK單位名稱Unit_Namechar 20Create table unit( Unit_ID
18、 int Not Null, Unit_Name char(20), Primary key (Unit_ID)財產(chǎn)資料關(guān)聯(lián)表Goods屬性意義屬性名稱資料型態(tài)鍵別參考關(guān)聯(lián)自動編號Goods_IDintPK單位編號Unit_IDintFKunit財產(chǎn)名稱Goods_Namechar 100財產(chǎn)編號Goods_Codechar 20財產(chǎn)建立日期Goods_Coming_Daydatetime財產(chǎn)功能Goods_Functionvarchar 255數(shù)量Goods_Numberint照片Photovarchar 100RFID卡號Goods_Tagvarchar 20位置編號Area_IDintF
19、KareaCreate table goods( Goods_ID int Not Null, Unit_ID int, Goods_Name char(100), Goods_Code char(20), Goods_Coming_Day datetime, Goods_Function varchar(255), Goods_Number int, Photo varchar(100), Goods_Tag varchar(20), Area_ID int, Primary key (Goods_ID), Foreign key (Unit_ID) references unit, For
20、eign key (Area_ID) references area)2. 資料庫實作使用SQL Server 建立(1) 資料庫(2) 關(guān)聯(lián)表格(3) 關(guān)聯(lián)表之間的參考(4) 關(guān)聯(lián)表關(guān)係圖(1)建立資料庫新增一個wealth資料庫(2)建立關(guān)聯(lián)表格新增並定義關(guān)聯(lián)表 (Unit關(guān)聯(lián)表)(2)建立關(guān)聯(lián)表格定義盤點狀況關(guān)聯(lián)表(Situ)定義盤點位置關(guān)聯(lián)表(Area)定義人員資料關(guān)聯(lián)表(Member)定義財產(chǎn)資料關(guān)聯(lián)表(Goods)定義盤點紀(jì)錄關(guān)聯(lián)表(Checkgoods)(3)建立關(guān)聯(lián)表之間的參考參考的設(shè)定是:對於關(guān)聯(lián)表中所存在的外來鍵,將其指定到所參考關(guān)聯(lián)表的主鍵屬性中。例如:範(fàn)例資料庫中的Me
21、mber 人員資料關(guān)聯(lián)表存在外來鍵Unit_ID的member關(guān)聯(lián)表外來鍵所參考的unit關(guān)聯(lián)表Goods關(guān)聯(lián)表的Area_ID外來鍵設(shè)定Goods關(guān)聯(lián)表的Unit_ID外來鍵設(shè)定Checkgoods關(guān)聯(lián)表的Goods_ID外來鍵設(shè)定 Checkgoods關(guān)聯(lián)表的Member_ID外來鍵設(shè)定Checkgoods關(guān)聯(lián)表的Situ_ID外來鍵設(shè)定(4)建立關(guān)聯(lián)表關(guān)係圖wealth 資料庫的關(guān)聯(lián)表關(guān)係4-6 SQLSQL(Structured Query Language)結(jié)構(gòu)化查詢語言,是使用者用來操作DBMS 的重要橋樑。SQL 語言依指令功能,可以分成三類資料定義語言DDL(Data Defi
22、nition Language):建立資料表、視界和索引等的SQL 指令。資料處理語言DML(Data Manipulation Language):資料表記錄插入、刪除、更新和查詢指令。資料控制語言DCL(Data Control Language):資料庫安全管理的權(quán)限設(shè)定指令。內(nèi)容大綱1. 資料庫與關(guān)聯(lián)表的建立2. 資料新增3. 資料擷取4. 資料修改5. 資料刪除1. 資料庫與關(guān)聯(lián)表的建立建立資料庫的語法如下Create database 資料庫名稱例如建立一個名為 MyWealth 資料庫,則SQL 的語法為: Create database MyWealth 刪除資料庫的語法如下:
23、 Drop database 資料庫名稱例如要刪除一個名為 MyWealth 資料庫,則SQL 的語法為: Drop database MyWealth關(guān)聯(lián)表的建立 一個關(guān)聯(lián)表的建立必須指定關(guān)聯(lián)表的名稱、屬性集合、各屬性的資料型態(tài)、主鍵,有時候也會包含外來鍵等必要成員。以單位資料關(guān)聯(lián)表(Unit)為例,建立該關(guān)聯(lián)表的SQL指令為:Create table unit( Unit_ID int Not Null, Unit_Name char(20), Primary key (Unit_ID)建立盤點狀況關(guān)聯(lián)表(Situ) 的SQL指令為:建立盤點位置關(guān)聯(lián)表(Area)的SQL指令為:Creat
24、e table situ( Situ_ID int Not Null, Situ_Name char(20), Situ_Desc varchar(255), Primary key (Situ_ID)Create table area( Area_ID int Not Null, Area_Txt varchar(255), Primary key (Area_ID)建立Member關(guān)聯(lián)表的SQL指令為:Create table member( Member_ID int Not Null, Unit_ID int, Member_Name char(20), Member_title ch
25、ar(20), Member_phone char(20), Member_Address char(100), Member_mail char(30), Login_ID char(10), Login_PWD char(10), Primary key (Member_ID), Foreign key (Unit_ID) references unit)建立Goods關(guān)聯(lián)表的SQL指令為:Create table goods( Goods_ID int Not Null, Unit_ID int, Goods_Name char(100), Goods_Code char(20), Go
26、ods_Coming_Day datetime, Goods_Function varchar(255), Goods_Number int, Photovarchar(100), Goods_Tag varchar(20), Area_ID int, Primary key (Goods_ID), Foreign key (Unit_ID) references unit, Foreign key (Area_ID) references area)建立Checkgoods關(guān)聯(lián)表的SQL指令為:刪除關(guān)聯(lián)表的語法如下: Drop table 關(guān)聯(lián)表名稱例如要刪除一個名為 Checkgoods關(guān)
27、聯(lián)表的SQL為: Drop table checkgoodsCreate table checkgoods( Id uniqueidentifier default newid( ) Not Null, Goods_ID int, Member_ID int, Situ_ID int, Check_Day datetime, memo varchar(255), Primary key (id), Foreign key (Goods_ID) references goods, Foreign key (Member_ID) references member, Foreign key (Si
28、tu_ID) references situ,)2. 資料新增資料新增的SQL命令結(jié)構(gòu)如下:範(fàn)例1:新增一筆單位編號為1號、單位名稱為資管系辦的單位資料記錄。INSERT INTO 關(guān)聯(lián)表 (屬性1, 屬性2, ,屬性N)VALUES (資料值1, 資料值2, ,資料值N)INSERT INTO unit (Unit_ID,Unit_Name) VALUES ( 1,資管系辦) 資料新增的SQL命令中,若是所給定新增記錄資料是依照關(guān)聯(lián)表建立時的屬性順序,則在新增敘述中可以省略屬性名稱的部份敘述。範(fàn)例2:Unit關(guān)聯(lián)表中的屬性依序是Unit_ID,Unit_Name,因此原本用來新增2號單位,名
29、稱為RFID實驗室的新增命令可以改寫成:範(fàn)例3: 新增一筆單位編號為3號、單位名稱為電腦教室的單位資料記錄,其SQL命令可以被敘述成下列的型式:INSERT INTO unit VALUES ( 2,RFID實驗室) INSERT INTO unit (Unit_Name,Unit_ID) VALUES (電腦教室,3)或INSERT INTO unit (Unit_ID,Unit_Name) VALUES ( 3,電腦教室)範(fàn)例4: 新增一筆單位編號為9號,但單位名稱目前並不清楚的單位資料記錄。範(fàn)例5: 新增一筆盤點狀況記錄,將狀況編號Situ_ID設(shè)定為1號、狀況名稱Situ_Name指定
30、為正常,且於備註Situ_Desc屬性中註明使用情況正常。INSERT INTO situ (Situ_ID,Situ_Name,Situ_Desc) VALUES ( 1,正常,使用情況正常)INSERT INTO unit (Unit_ID) VALUES ( 9) 範(fàn)例6: 新增一筆盤點位置資料記錄,指定位置編號Area_ID為11號,且位置名稱為展示架第一層,則此新增於盤點位置關(guān)聯(lián)表Area的新增指令如下:INSERT INTO area (Area_ID,Area_Txt) VALUES ( 11,展示架第一層) 範(fàn)例7:在人員關(guān)聯(lián)表Member之中新增一筆資料記錄,假設(shè)員工編號為1
31、、單位編號為1、姓名為吳啟源、職稱為助理、電話為3601、地址為500 臺中縣中山路1號、E-mail為.tw、帳號為user1、密碼為passwd1,則此新增命令可表示如下:INSERT INTO member (Member_ID,Unit_ID,Member_Name, Member_title, Member_phone, Member_Address, Member_mail,Login_ID,Login_PWD) VALUES ( 1,1,吳啟源,助理,3601,500 臺中縣中山路1號, .tw,user1,passwd1)範(fàn)例8:
32、若有一新的財產(chǎn)項目,其系統(tǒng)給定的自動編號為1、單位編號為1、財產(chǎn)名稱為ATA-133介面硬碟機、財產(chǎn)編號為09509061-1、財產(chǎn)建立日期為2006-08-02 00:00:00.000、財產(chǎn)功能為HP2410PDA、數(shù)量為1、目前沒有相關(guān)的照片檔案資訊、RFID卡號為A6CCCDD1、位置編號為11。由於此新增資料目前沒有照片檔案資訊,因此財產(chǎn)資料記錄的新增僅須針對已知的九項屬性進行設(shè)定,其SQL:INSERT INTO goods (Goods_ID,Unit_ID,Goods_Name, Goods_Code,Goods_Coming_Day, Goods_Function, Good
33、s_Number,Goods_Tag,Area_ID)VALUES (1,1,ATA-133介面硬碟機,09509061-1, 2006-08-02 00:00:00.000,HP2410PDA, 1,A6CCCDD1,11)範(fàn)例9:財產(chǎn)編號1號的商品進行盤點,盤點人員的編號為1號員工,盤點結(jié)果的狀態(tài)編號為1號狀態(tài),盤點日期為2009-10-11 00:00:00.000,並在盤點記錄中標(biāo)示財產(chǎn)位置為右方。INSERT INTO checkgoods (Goods_ID,Member_ID,Situ_ID, Check_Day, memo) VALUES (1,1,1,2009-10-11 0
34、0:00:00.000,右方)3. 資料擷取資料擷取亦即一般所謂的資料查詢,其指令敘述結(jié)構(gòu)表示如下:select all distinct top | | as from where | group by having order by |在一般的資料擷取應(yīng)用案例中,資料擷取的動作多半是結(jié)合SELECT、FROM、WHERE 敘述所組合而成的擷取命令,如下所示。SELECT 是指所要投影的屬性欄位FROM 是資料擷取所作用的關(guān)聯(lián)表格名稱WHERE 則是表示在關(guān)聯(lián)表格中選取值組的條件SELECT FROM WHERE 範(fàn)例資料內(nèi)容範(fàn)例資料內(nèi)容範(fàn)例10:擷取財產(chǎn)資料關(guān)聯(lián)表中,財產(chǎn)數(shù)量超過30個以上
35、的財產(chǎn)編號、財產(chǎn)名稱,以及數(shù)量。 SELECT Goods_Code, Goods_Name,Goods_NumberFROM goods WHERE Goods_Number30範(fàn)例11:擷取人員資料關(guān)聯(lián)表中,職稱為助理的人員姓名、電話,以及地址。範(fàn)例12:擷取財產(chǎn)資料關(guān)聯(lián)表中,數(shù)量大於36以上且屬於1號單位所保管的財產(chǎn)編號、財產(chǎn)名稱,與數(shù)量。 SELECT Member_Name, Member_phone, Member_AddressFROM member WHERE Member_title =助理SELECT Goods_Code, Goods_Name,Goods_NumberF
36、ROM goods WHERE Goods_Number36 and Unit_ID=1範(fàn)例13:在下面的SQL命令中,因為沒有用來篩選值組的WHERE敘述,因此將會擷取出所有存在於Unit 關(guān)聯(lián)表中資料值組的單位編號Unit_ID與單位名稱Unit_Name擷取出來。範(fàn)例14:列出所有屬於2號單位的所有人員資訊。 SELECT Unit_ID, Unit_NameFROM unitSELECT *FROM memberWHERE Unit_ID=2範(fàn)例15:找出所有屬於RFID實驗室的人員,列出這些人員的姓名與職稱。上述的SQL資料擷取處理命令亦可改寫成下面的型式:SELECT Member
37、_Name, Member_titleFROM member,unitWHERE Unit_Name= RFID實驗室 and member.Unit_ID=unit.Unit_IDSELECT Member_Name, Member_title, Unit_NameFROM member join unit on member.Unit_ID= unit.Unit_IDWHERE Unit_Name= RFID實驗室 範(fàn)例:我們想要列出所有電話號碼,若使用左邊的敘述方式,我們會發(fā)現(xiàn)這些電話號碼中許多是重複出現(xiàn)的(這是因為有些人員是共用同一分機號碼的),因此我們可以使用右下的第二種敘述方式,利
38、用distinct的方式來過濾掉重複出現(xiàn)的電話號碼。 SELECT Member_phoneFROM member SELECT DISTINCT Member_phoneFROM member Distinct 範(fàn)例16:找出所有屬於RFID實驗室的人員,列出這些人員的姓名與職稱。範(fàn)例16的例子在先前我們曾經(jīng)以JOIN的形式處理,然而我們也可以利用下面的巢狀形式來達成。SELECT Member_Name, Member_titleFROM memberWHERE Unit_ID = ( SELECT Unit_ID FROM unit WHERE Unit_Name= RFID實驗室 )範(fàn)
39、例17:找出所有數(shù)量超過20以上的財產(chǎn)項目,列出保管這些財產(chǎn)的有關(guān)單位的名稱。SELECT Unit_NameFROM unitWHERE Unit_ID IN ( SELECT DISTINCT Unit_ID FROM goods WHERE Goods_Number20 )聚合函數(shù) (Aggregates)Count ( )Sum ( )Avg ( ) Max ( ) Min ( )範(fàn)例18:求取屬於1號單位的人員共有多少人。範(fàn)例19:求取由RFID實驗室所保管的財產(chǎn)數(shù)量總數(shù)是多少。SELECT COUNT(*)FROM memberWHERE Unit_ID=1SELECT SUM(G
40、oods_Number)FROM unit,goodsWHERE Unit_Name = RFID實驗室 and unit.Unit_ID= goods.Unit_ID範(fàn)例20:求取由RFID實驗室所保管的財產(chǎn)項目中,財產(chǎn)平均數(shù)量是多少。範(fàn)例21:求取所有的財產(chǎn)項目中,數(shù)量最多與最少的各是多少。SELECT AVG(Goods_Number)FROM unit,goodsWHERE Unit_Name = RFID實驗室 and unit.Unit_ID= goods.Unit_IDSELECT MAX(Goods_Number), MIN(Goods_Number)FROM goods範(fàn)例2
41、2:求取由RFID實驗室所保管的財產(chǎn)項目中,數(shù)量最多的值是多少?並以最大數(shù)量來標(biāo)示最大數(shù)量的屬性欄位名稱。SELECT MAX(Goods_Number) AS 最大數(shù)量FROM unit,goodsWHERE Unit_Name = RFID實驗室 and unit.Unit_ID= goods.Unit_ID範(fàn)例23:將所有人員依照所屬的單位分群,並計算各單位所屬人員的數(shù)量各有多少人,列出這些單位的編號與所屬的人員人數(shù)。SELECT Unit_ID, COUNT(*) AS 人數(shù)FROM memberGROUP BY Unit_IDGroup By 與 HAVING範(fàn)例24:將所有人員依照
42、所屬的單位分群,並計算各單位所屬人員的數(shù)量各有多少人,列出其中人數(shù)大於1人以上的單位的編號與所屬的人員人數(shù)。SELECT Unit_ID, COUNT(*) AS 人數(shù)FROM memberGROUP BY Unit_IDHAVING COUNT(*)1Like的敘述是資料庫資料擷取中,對於文字型態(tài)之屬性所採用的萬用字元表示方式。% :是以百分比符號表示零個或多個字元 _ :是以底線符號表示任一個字元範(fàn)例25:找出財產(chǎn)資料關(guān)聯(lián)表之中,財產(chǎn)名稱包含字母A的財產(chǎn)項目,列出這些財產(chǎn)的編號與名稱。SELECT Goods_Number, Goods_NameFROM goodsWHERE Goods_
43、Name LIKE %A%萬用字元範(fàn)例26:找出人員資料關(guān)聯(lián)表之中,地址是位於彰化市的人員,列出這些人員的姓名與地址。範(fàn)例27:找出財產(chǎn)資料關(guān)聯(lián)表之中,財產(chǎn)名稱長度為3個字,且其中第二個字必須是邏的財產(chǎn)項目,列出這些財產(chǎn)項目的編號與名稱。SELECT Member_Name, Member_AddressFROM memberWHERE Member_Address LIKE %彰化市%SELECT Goods_Number, Goods_NameFROM goodsWHERE Goods_Name LIKE _邏_Order By 是對於擷取結(jié)果進行排序的命令敘述,主要的排序方式有兩種:ASC:是由小至大的遞增排序DESC:是由大至小的遞減排序範(fàn)例28:擷取所有的人員編號、姓名,與地址,並依照人員編號由大至小依序排列輸出。SELECT Member_ID, Member_Name, Member_AddressFROM memberORDER BY Member_I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主體水電合同范本
- 參數(shù)設(shè)計合同范本
- 租賃會議室合同范本
- 冬儲保價合同范本
- 轉(zhuǎn)讓精裝修房產(chǎn)合同范本
- 合同范本與格式合同區(qū)別
- 鋁合金分銷合同范本
- 吧臺轉(zhuǎn)讓合同范本
- 廠內(nèi)工程裝修合同范本
- 倉庫燈具回收合同范例
- 2023年山東化工職業(yè)學(xué)院單招綜合素質(zhì)考試筆試題庫及答案解析
- 廣東省廣州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼
- 綠化移植施工方案及技術(shù)措施
- 江蘇省三級綜合醫(yī)院評審標(biāo)準(zhǔn)實施細則2017版
- 貴州區(qū)域地質(zhì)地史概述
- 監(jiān)理大綱維修改造項目
- 中國著名的塔課件
- 邢臺市區(qū)土地級別及基準(zhǔn)地價表
- 李小建《經(jīng)濟地理學(xué)》(電子版)
- 中央空調(diào)安裝施工組織設(shè)計方案(水、多聯(lián)機)
- 2022年最新蘇教版五年級下冊科學(xué)全冊教案
評論
0/150
提交評論