面向對象與數據庫技術_第1頁
面向對象與數據庫技術_第2頁
面向對象與數據庫技術_第3頁
面向對象與數據庫技術_第4頁
面向對象與數據庫技術_第5頁
已閱讀5頁,還剩104頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向對象與數據庫技術

O-OandDBMS機電學院楊靜萍2013-2014(1)面向對象關系數據庫數據庫概述實體—關系(ER)模型關系數據庫概述對象關系數據庫數據倉庫技術數據庫概述數據庫的概念數據庫的由來數據庫的發展數據庫的體系結構數據模型數據庫系統相關概念數據庫與新技術的發展數據庫的概念數據庫是長期存儲在計算機內有組織的共享的數據的集合。數據庫中的數據按一定的數據模型組織、描述和儲存。早在60年代,數據庫技術作為現代信息系統基礎的一門軟件學科便應運而生了。現在,數據庫技術已成為計算機領域中最重要的技術之一,它是軟件學科中一個獨立的分支。21世紀是“知識爆炸”的信息社會,如何組織和利用這些龐大的信息和知識已成為衡量一個國家科學技術水平高低的重要標志,多年來在美國等軟件業發達國家,各種數據庫管理系統(DBMS)的年銷售額在各大類軟件中居于第二位。在各行業中,數據庫技術是應用最為廣泛的軟件技術之一。數據庫的由來紙制系統文件系統數據庫系統數據的存儲可分為以下幾個階段:

~1950s中期科學計算卡片、紙帶程序1950s后期~1960s中后期科學計算磁盤、磁鼓程序+文件1960s中后期~科學計算磁盤、磁鼓程序+數據庫數據庫的發展數據庫發展的初級階段:網狀/層次數據模型Honeywell(阿波羅)/CODASYL/IBM

數據庫發展的中級階段關系數據模型IBM/Oracle

數據庫發展的高級階段對象—關系型數據模型Oracle

數據庫系統發展的三個階段數據庫的體系結構內模式Internalschema模式Logicalschema外模式Externalschema三級體系結構模式:即數據庫的結構(型)映像映像物理獨立性邏輯獨立性外模式又稱為用戶模式,是數據庫用戶和數據庫系統的接口,是數據庫用戶的數據視圖,是數據庫用戶可以看見和使用的局部數據的邏輯結構和特征的描述。外模式通常是模式的子集。一個數據庫通常都有多個外模式。一個應用程序只能使用一個外模式,但同一外模式可為多個應用程序所用。保證數據庫安全性的一個有力措施。內模式又稱為存儲模式,是數據庫物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。一個數據庫只有一個內模式。內模式并不涉及物理記錄,也不涉及硬件設備。映象是一種對應規則,說明映象雙方如何進行轉換外模式/模式映像模式/內模式映像

三級模式間的兩層映象保證數據具有較高的邏輯獨立性和物理獨立性一、外模式/模式映象(定義在外模式描述中)作用:把描述局部邏輯結構的外模式與描述全局邏輯結構的模式聯系起來。當模式改變時,只要對外模式/模式映象做相應的改變,使外模式保持不變,則以外模式為依據的應用程序不受影響,從而保證了數據與程序之間的邏輯獨立性,也就是數據的邏輯獨立性。二、模式/內模式映象(定義在模式描述中)作用:把描述全局邏輯結構的模式與描述物理結構的內模式聯系起來。當內模式改變時,比如存儲設備或存儲方式有所改變,只要模式/內模式映象做相應的改變,使模式保持不變,則應用程序就不受影響,從而保證了數據與程序之間的物理獨立性。二級映象功能與數據獨立性數據庫的二級映像保證了數據庫外模式的穩定性,從而從底層保證了應用程序的穩定性數據與程序之間的獨立性,使得數據的定義和描述可以從應用程序中分離出去。用戶不必考慮存取路徑等細節,簡化了應用程序的編制,減少了應用程序的維護和修改。數據模型現實世界概念數據模型邏輯數據模型獨立于任何計算機系統實現的,完全不涉及信息在計算機系統中的表示,只是用來描述某個特定組織所關心的信息結構,如實體聯系(ER<P.P.Chen,1976>)模型。一種直接面向數據庫中數據的邏輯結構,用來描述存儲數據的容器以及在該容器中存儲和檢索數據的過程,例如:關系/網狀/層次/面向對象模型等。數據結構數據操作數據完整性定義實體類型和實體間聯系在計算機中的表達和實現;定義對數據庫的檢索和更新(包括插入、刪除、修改)兩類操作;定義數據及其聯系應具有的制約和依賴規則;物理模型DBMS的任務,普通用戶不必考慮物理級的細節層次模型(HierarchicalModel)用樹形結構來表示實體及實體之間聯系的數據模型。樹的結點是記錄類型,記錄之間的聯系通過指針實現。其主要特點有兩個:①樹的最高結點—根結點,只有一個,該結點沒有雙親結點;②根以外的其他結點都與一個且只與一個父結點相連。例如1968年IBM公司研制推的IMS數據庫管理系統是第一個基于層次模型的大型商用數據庫管理系統。

網狀模型(NetworkModel)把用有向圖結構表示實體類型及實體之間聯系的模型叫網狀模型,有向圖的結點是記錄類型,記錄之間的聯系是通過指針來實現的,網狀模型和層次模型在本質上是一樣的。例如1969年,CODASYL組織(ConferenceOnDataSystemLanguage,數據庫系統語言協會)推出的DBTG系統,又稱CODASYL系統,奠定了網狀數據庫系統的基本概念、方法和技術。實際的基于網狀模型的數據庫系統有CullinetSoftwareInc公司的IDMS、Univac公司的DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。

系老師課程專業學生成績聘任設置任課開設招收被選選課關系模型(RelationalModel)1970年由美國IBM公司SanJose研究室的研究員E.F.Codd提出的一種數據模型,該模型用二維表格來表示實體和實體間聯系,稱為關系模型(RelationalModel)。在層次模型和網狀模型中,文件中存放的是數據,各文件之間的聯系是通過指針來實現。關系模型中,文件存放兩類數據:實體、實體間的聯系。例如典型的關系數據庫系統有ORACLE、SYBASE、DB/2、COBASE、PBASE、EasyBase、DM/2、OpenBase。面向對象模型(OOModel)面向對象的概念早在1968年就出現了,現已使用在數據庫技術中。面向對象模型中最基本的概念是對象(object)和類(class)。現實世界中存在著許多復雜的數據結構,例如CAD數據、圖形數據、嵌套遞歸數據等,這樣的數據結構關系模型不能表達實現,但面向對象模型卻可以方便地表示。

數據庫系統相關概念數據(Data)、信息(Information)、數據處理(DataProcessing)數據庫(Database,簡記為DB)數據庫管理系統(DatabaseManagementSystem,簡記為DBMS)數據庫系統(DatabaseSystem,簡記為DBS)數據庫與新技術的發展新技術的進展與數據庫的發展密不可分Web數據庫技術數據挖掘(DataMining)商業智能(BusinessIntelligence)WAP/更廣泛無線上網技術801.11802.163G…數據、信息、數據處理數據(Data):現實中的事物的描述都可以稱為數據,事物可以用數字、文字、圖表、圖像、聲音等來描述。信息(Information):

數據經過一定的計算

過程得到的新的數據。數據處理(Dataprocessing):從某些已知的數據出發,推導加工出一些新的數據(即信息),數據處理是完成數據轉換成信息的方法,包括數據的收集、存儲、傳遞、加工、統計管理、輸出等過程。數據、數據處理和信息的關系如圖所示。數據處理數據信息數據庫存儲在磁帶、磁盤、光盤或其他外存介質上,按一定結構組織在一起的相關數據的集合。數據對象+數據數據庫存儲過程(StoredProcedure)表(Table)視圖(View)觸發器(Trigger)數據對象(dataobject)數據(data)數據庫管理系統

DBMS是用戶與操作系統間的一層(對數據進行管理的)系統軟件:數據定義功能(DDL:DataDefineLanguage)數據操縱功能(DML:DataManipulateLanguage)數據庫的運行管理與維護(數據庫的建立、數據庫的恢復、數據庫的并發控制、數據完整性控制、數據安全性控制等)數據庫系統DBS是采用數據庫技術的計算機系統:數據庫(DB);數據庫管理系統(DBMS);數據庫管理員(DBA);用戶;應用程序系統;等。用戶用戶用戶應用系統應用開發工具數據庫管理系統操作系統數據庫文件數據庫管理員實體—關系(ER)模型ER模型的相關概念實體的聯系ER圖的繪制ER圖到關系模型設計的轉換ER模型的相關概念⑴實體(entity):客觀世界中可相互區別的事物。⑵屬性(attribute)、值(value)和域(domain):分別指實體具有的特性、特性的取值以及取值范圍。一個實體可具有多個屬性,每個屬性有各自的值域。

⑶實體集(entityset):屬性名完全相同實體的集合。⑷碼(key):能惟一標識實體的屬性或屬性集,有時也稱為實體標識符,或簡稱為鍵。(5)域(domain):屬性的取值范圍。實體的聯系實體及實體集之間存在的關聯,也是實體,有自己的屬性。(實例)(1)一對一聯系(1:1)(2)一對多或多對一的聯系(1:n)、(n:1)(3)多對多的聯系(n:m)1:1n:11:mn:m實例圖書館借閱管理系統,讀者與圖書的聯系問題。(1-N?)一位借閱者一次可以借閱多本圖書一本圖書一次只能被一位借閱者借閱在此情況下滿足1-N,可以解決“某本圖書當前是否被借出,被誰所借”之類的問題。但如果需求涉及“某本書在2008年被哪些借閱者借過”,1-N能否滿足?實例實例1.1:M-N通過考慮借閱時間等因素:一位借閱者可以借閱多本圖書一本圖書可以借給多位借閱者此聯系應該具有聯系屬性如“借閱流水號”、“借閱時間”和“歸還時間”等實例實例1.1:結論聯系類型應由需求,即現實世界的語義來確定不同角度的不同用戶,看問題可能不同,造成沖突實例實例1.2:三元聯系與三個二元聯系選課系統,一門課程可以由多位教師開設,一個教師可以開設多門課程,學生可以選多門課程。可以用一個三元聯系表示某位學生選了某位教師開設的某門課程選課<學生,教師,課程>可以用三個二元聯系:1選課<學生,課程>,2講授<教師,課程>,3上課<教師,學生>思考:兩者有何區別?實例對于三個二元聯系的語義:選課<學生,課程>

可知某位學生選了哪些課程,或某門課程被哪些學生所選講授<教師,課程>

可知某位教師講了哪些課程,或某門課程由哪些教師所講上課<教師,學生>

可知某位教師給哪些學生上了課,或某位同學上了哪些教師的課實例一個三元聯系的語義:選課<學生,教師,課程>

可知某位同學選了哪些教師所講的哪些課程,或某位教師給哪些學生講授了哪些課程,或某門課程被哪些教師所教的學生所選三個二元聯系的語義在三元聯系中全有,反之則不然。如:“06010034”號同學是否選了“王紅”老師上的“C語言”在三個二元聯系中找不出!實體的聯系除基本聯系外,實踐中常遇到isa聯系和弱實體集聯系實體集及其子類的表示A與B是兩個實體集,如果B在具有A所具有的全部屬性的基礎上又具有自己的屬性,即B是A的一個子集。稱B為A的子類,A為B的超類(借用面向對象的概念),用isa(屬于)聯系。實例例如,學生與本科生、研究生的聯系:學生isaisa研究生本科生實例研究生和本科生除繼承了學生的屬性外,還各自具有自己的屬性。isa聯系實際上反映了超類和子類(supper-classandsubclass)間的聯系!實體的聯系弱實體沒有獨立標識,依賴于其它實體,需要從其所依賴的強實體借碼來標識自己還有兩種情況可能形成弱實體集:實體集B是實體集A的組成部分(形成層次結構),B為弱實體集。鏈接實體是弱實體集。弱實體集B到實體A必然是多對一聯系。(標識依賴聯系)A應為B的碼提供自己的碼。實例例如:學院與系即是一種層次結構,系是弱實體集。如下圖所示:學院Unitof系ER圖的繪制

bookstitleisbnpagetypeyearpricewriteBooknameidbirthplaceauthorsbegin_dateauthors實體集:用矩形表示聯系集:菱形表示屬性集:橢圓形表示線段:有向邊代表“1”,無向邊代表“n”注意:聯系本身也可能有屬性。ER圖到關系模型設計的轉換bookstitleisbnpageyeartypepriceidauthorsnamebirthplacewriteBookbook(title,isbn,page,type,year,price)author(Id,Name,country,City)writeBook(isbn,authorID,begin_date)1)多對多聯系集時,關系的鍵碼是兩個相關實體集的鍵碼。2)多對一聯系集時,關系的鍵碼是“多”基數實體集的鍵碼。3)一對一聯系集時,關系的鍵碼可以是任一個實體集的鍵碼。關系數據庫概述關系數據庫的基本概念基本關系六性質關系數據庫的基本要求關系的完整性關系數據庫的范式SQL簡介關系數據庫的基本概念關系(Relation):即表,一個關系對應一張表。元組(Tuple):表中的一行。屬性(Attribute):表中的一列,列的名稱即屬性名。主鍵(Key):表中可唯一確定一個元組的某個屬性組。域(Domain):屬性的取值范圍。分量(Component):元組中的一個屬性值。關系模式(RelationSchema):對關系的描述。在關系模型中,實體以及實體之間的聯系都用關系來表示。

基本關系六性質基本關系六性質列是同質的;不同列可出自同一個域,每一列為一個屬性,不同屬性(列)給不同屬性名;列的順序可任意交換;任意兩個元組不能完全相同;行的順序可任意交換;每一分量是不可分的數據項。關系數據庫的基本要求基于關系模型的關系數據庫的基本要素有三部分組成:數據結構:關系操作的對象和結果都是集合。一個表由表結構和記錄(數據)兩部分組成。一個關系數據庫可以包含一個或多個表。定義一個關系數據庫,就是對它所包含的所有表的結構進行描述。關系操作集合:查詢操作(包括專門的關系數據操作:選擇、投影、連接,和傳統集合操作中的并、交、差、笛卡爾積等),以及對數據庫的檢索和更新,包括增、刪、改操作。關系的完整性:數據及其聯系應具有的制約和依賴規則,包括:實體完整性(主鍵唯一性)、參照完整性(外鍵對應性)、用戶定義的完整性。數據結構關系操作集合關系的完整性專門的關系數據操作45從關系中找出滿足給定條件的行稱為選擇。選擇條件以邏輯表達式給出,使該邏輯表達式的值為真的行被選出.從關系的所有屬性中挑選若干屬性組成新的關系稱為投影。這是對列進行運算,相當于對關系進行垂直分解。聯接是將兩個關系的屬性名拼接在一起,形成一個更寬的關系模式,生成新的關系中包含滿足聯接條件的元組投影聯接選擇關系的完整性關系模型的三類完整性:實體完整性:參照完整性:用戶定義的完整性:實體完整性實體完整性:每一關系必有一主碼,構成主碼的各屬性值均不能取空值。例如學生選課關系“選修(學號,課程號,成績)”中,“學號、課程號”為主碼,則“學號”和“課程號”都不能取空值,而不是整體不為空。參照完整性參照完整性:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值例如,學生選課系統,選課關系的學號按實體完整性要求,不能為空;按參照完整性要求,只能選學生關系中的學號,表示語義關系“只有注冊的學生才能選課”。用戶定義的完整性用戶定義的完整性就是針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。關系的并、交、差關系R關系Sidnamesexnationbirthdayclassidhome011001葉海平男漢1986-01-23011山西011002景風男漢1986-06-25011重慶012001華麗佳女漢1987-05-20012大連012002范治華男漢1986-06-12012山東idnamesexnationbirthdayclassidhome012002范治華男漢1986-06-12012山東013001李佳佳女漢1986-03-01013湖南013002史慧敏女漢1986-10-11013湖北014001安靜女漢1986-03-23014山西關系的并Union

(R∪S)idnamesexnationbirthdayclassidhome011001葉海平男漢1986-01-23011山西011002景風男漢1986-06-25011重慶012001華麗佳女漢1987-05-20012大連012002范治華男漢1986-06-12012山東013001李佳佳女漢1986-03-01013湖南013002史慧敏女漢1986-10-11013湖北014001安靜女漢1986-03-23014山西RS關系的交Intersection

(R∩S)idnamesexnationbirthdayclassidhome012002范治華男漢1986-06-12012山東RSR∩S關系的差Difference

(R-S)idnamesexnationbirthdayclassidhome011001葉海平男漢1986-01-23011山西011002景風男漢1986-06-25011重慶012001華麗佳女漢1987-05-20012大連RSR-S廣義笛卡爾積關系R關系Cidnamesexnationbirthdayclassidhome011001葉海平男漢1986-01-23011山西011002景風男漢1986-06-25011重慶012001華麗佳女漢1987-05-20012大連012002范治華男漢1986-06-12012山東idCourse_idgrade011001100182011002100186011001200178廣義笛卡爾積

關系R的列數為n(4),關系C的列數為m(此例為3),笛卡爾積RC是一個n+m(7)列的元組集合。每個元組的前n個分量來自R,后m個分量來自C。若R有k1(4)行,C有k2(3)行,則RC有k1k2行(12)。idnamesexnationidCourse_idgrade011001葉海平男漢011001100182011001葉海平男漢011002100186011001葉海平男漢011001200178011002景風男漢011001100182011002景風男漢011002100186011002景風男漢011001200178012001華麗佳女漢011001100182012001華麗佳女漢011002100186012001華麗佳女漢011001200178012002范治華男漢011001100182012002范治華男漢011002100186012002范治華男漢011001200178關系數據庫的范式關系必須是規范化的,即關系必須滿足一定的規范條件:范式一(1NF):范式二(2NF):范式三(3NF):SQL簡介SQL的概念SQL的組成常用的SQL命令關系運算符連接運算符布爾運算符SQL的概念SQL(Structured

QueryLanguage),結構化查詢語言。SQL最早是由IBM的圣約瑟研究實驗室為其關系數據庫管理系統SYSTEMR開發的一種查詢語言。SQL語言結構簡潔,功能強大,簡單易學,自從IBM公司1981年推出以來,SQL語言得到了廣泛的應用,1986年,美國ANSI(美國國家標準協會)采用SQL作為關系數據庫管理系統的標準語言。SQL的組成SQL語言DMLDDLDCLDQL數據操縱語言DML(DataManipulationLanguage),例如INSERT、UPDATE、DELETE

數據控制語言DCL(DataControlLanguage),例如COMMIT、WORK、ROLLBACK、WORK數據定義語言DDL(DataDefinitionLanguage),例如CREATE、ALTER、DROP

數據查詢語言DQL(DataQueryLanguage),例如SELECT常用的SQL命令DDL命令創建表:Createtable刪除表:Droptable修改表:AlerttableDQL命令插入行:insert查詢數據:select語句更新數據:update語句刪除數據:delete語句練習創建表:Createtable格式(例如:)createtable表名(列名1數據類型【約束】,列名2數據類型【約束】,列名3數據類型【約束】)

varchar2(size)存放可變長字符數據,注:Derby數據格式見文檔char(size)存放定長字符數據number(l,d)存放數值型數據,l代表總位數,d代表小數點后的位數blob二進制大對象raw(size)純二進制數據date存放日期long存放可變長字符數據約束

null/notnullprimarykey要求進入該列的值是惟一的,且不為nullforeignkeyunique防止重復值進入該列,但允許為nullcheck限制屬性列的輸入值創建表:Createtable實例屬性:公司名company-name、卡號card-number、初值starting-value、余額value-left、初始密碼pin-number。設定:屬性company-name可具有多達25個字符,屬性value-left及starting-value用元及分來度量。屬性card-number屬性定義為主碼;將pin-number屬性定義為惟一碼。請用命名約束來書寫createtable。CreatetablecallingCard(companyNamevarchar(25),

cardNumbervarchar(20)primarykey,

startingValuedecimal(5,2),

valueLeftdecimal(5,2),

pinNumberchar(12)unique)創建表:Createtable實例屬性:公司名company-name、卡號card-number、初值starting-value、余額value-left、初始密碼pin-number。設定:屬性company-name可具有多達25個字符,屬性value-left及starting-value用元及分來度量。屬性card-number屬性定義為主碼;將pin-number屬性定義為惟一碼。請用命名約束來書寫createtable。CreatetablecallingCard(companyNamevarchar(25),

cardNumbervarchar(20)primarykey,

startingValuedecimal(5,2),

valueLeftdecimal(5,2),

pinNumberchar(12)unique);刪除表:Droptable格式droptable表名例如:Droptableprogrammer

Createtableprogrammer(empnovarchar2(3)primarykey,namevarchar2(25)notnull,

hiredatedate,projectvarchar2(3),languagevarchar2(15),

tasknonumber(2));empnoNamehiredateprojectLanguageTaskno201John1/1/95NPRVB52789richard08/31/98RNCJAVA11134Andy08/15/94NITC++89Insertintoprogrammer(empno,name,hire-date,project,language,tashno)values(‘201’,’John’,’1995-01-01’,’NPR’,’VB’,52)修改表:Alerttable對已存在的表添加屬性列對已存在的表修改屬性列從表中刪除約束在一個已存在的表中定義主鍵在一個已存在的表中定義外鍵對已存在的表添加屬性列Altertable表名

add新列名數據類型【約束】;例1:在dep表中,加入一個名為managerName的新列。假設該列可長達25個字符。altertabledepdropcolumnmanagerName

altertabledepaddmanagerNamevarchar(25)對已存在的表修改屬性列Altertable表名

altercolumn列名

setdatatype【數據類型/約束】;例1:在dep表中,增加name列大小。

altertabledepaltercolumnnamesetdatatypevarchar(45)從表中刪除約束Altertable表名

dropprimarykeyAltertable表名

dropuniqueAltertable表名

drop約束名在一個已存在的表中定義主鍵使用altertable命令:

altertable表名

add【constraint約束名】primarykey(列1[,列2…])例如:

altertabledepdropprimarykey

altertabledepaddprimarykey(id)在一個已存在的表中定義外鍵使用altertable命令:

altertable表名

add【constraint約束名】foreignkey(列名)references參照表名(列名);例如定義外鍵:altertabledepaddforeignkey(regionId)referencesregion(id)插入行:insert格式(例如:)insertinto表名(列1,列2,……列N)values(值1,值2……值N)一條語句只允許一次插入一行。如果寫在values子句中的數據項的順序與createtable命令中表的屬性順序相同,則不用在insertinto子句中寫出列名。插入行:insert實例將下列數據插入callingCard表移動123709643550.0012.45987234569871聯通5497443544100.0011.37433809835833InsertintocallingCard(companyName,cardNumber,startingValue,valueLeft,pinNumber)values('移動,'1237096435',15.00,11.37,'987234569871')InsertintocallingCard(companyName,cardNumber,startingValue,valueLeft,pinNumber)values('聯通','5497443544',100.00,11.37,'433809835833')注:所有的字符數據都放再單引號內。查詢數據:select語句Where子句的比較運算符:=,<>,<,<=,>,>=查詢表中所有列信息:select*from表名格式:(例1,例2)select列1,列2……列Nfrom表1,……表N【where條件】【orderby列1[asc|desc][列2[asc|desc]…]】查詢數據:select語句(例1)例1:使用callingCard表查詢移動公司發行的電話卡的卡號和初值。查詢顯示按卡號從小到大排列。selectcardNumber,startingValuefromcallingCardwherecompanyName='移動'orderbycardNumberasc查詢數據:select語句(例2)使用employee表顯示在會計部門工作的所有雇員的姓名及職務。

2.按雇員姓名的字母順序顯示上一個查詢結果。IDNAMEDEPTTITLE100SmithSalesClerk200JohnMarketingClerk300MartinAccountingClerk400BellAccountingSr.accountant1.Selectname,titlefromemployeewheredept='Accounting‘2.Selectname,titlefromemployeewheredept='Accounting'orderbyname更新數據:update語句例1:將卡號為1237096435的電話卡的公司名改為聯通。

updatecallingCardsetcompanyName='聯通'wherecardNumber='1237096435'格式:Update表名

set列1=新值1,……列N=新值Nwhere條件刪除數據:delete語句(例1)格式:

Deletefrom表名where條件;……刪除指定行

Delete表名;…………刪除表中所有數據例1:刪除callingCard表中聯通的所有電話卡記錄。

DeletefromcallingCardwherecompanyName='聯通'練習:創建emp表,屬性如下:列名描述/數據類型Id每個雇員惟一的標識號,最長為3個字符Name雇員的姓名,最長為20個字符Userid雇員登陸系統的ID,最長為8個字符StartDate雇員開始在公司工作的日期ManagerId雇員經理的ID,最長為3個字符Title雇員在公司里的職務,最長為25個字符DeptId雇員的部門ID,最長為3個字符Salary雇員的工資,共11位數,包括2位小數Commision雇員贏得的傭金百分率,共4位數,包括2位小數練習:創建emp表,屬性如下:

1.根據emp表,列出所有雇員的姓名、ID及職務,要求不同職務按字母順序排列,對相同職務的雇員,按其姓名的降序排列。2.給在部門41工作的所有雇員提高工資200元。對結果加以驗證。萬一出錯,確保所有的變化均能取消。如果操作有誤,用戶如何取消這些變化。Selectname,id,titleFromempOrderbytitle,name

descupdateempsetsalary=salary+200wheredepid=41select*fromempwheredepid=41關系運算符使用distinct取消重復的行select[all|distinct]列1,列2……列Nfrom表1,……表N【where條件】【orderby列1[asc|desc][列2[asc|desc]…]】;例:在emp表中,有多少不同的職務?selectdistincttitlefromemp連接運算符連接(join)運算允許我們將來自兩個或多個表的數據形成一個單一表。主要的連接類型:

等值連接:兩表通過共同的等值列而連接

自連接:一個表與其本身的連接

外連接:兩個表之間的連接,決定一個表的所有行在另一表中沒有匹配的元組。等值連接select表1.列1,表1.列2…,表2.列1,…表2.列Nfrom表1,表2where表1.列名=表2.列名;如果在兩個表中沒有相同的列,則沒有必要在列名前加表名。例1等值連接:例1列名描述/數據類型Id每個部門惟一的標識號,最長為3個字符Name部門名稱,最長為20個字符RegionId部門所在的區域id,最長為3個字符例1:查詢所有雇員的姓名及所在部門名稱。

S,Fromemp,depWhereemp.depid=dep.id;使用表別名:

SelectA.name,B.nameFromemp

A,depBWhereA.depid=B.id自連接自連接是一個表與其自身的連接例1:顯示每一個雇員的名字及他或她的管理者的名字。

selectE.nameasemployee,

M.nameasmanagerfromemp

E,empMwhereM.id=E.managerId外連接假設有兩個表的連接,有時我們想知道不滿足其中一個表指定條件的另一個表的行。例如,我們想知道還沒有管理者的雇員。

select表1.列1,表1.列2…,表2.列1,…表2.列Nfrom表1,表2where表1.列名(+)=表2.列名;用于計算在表1中所有與表2不匹配的行的外連接

select表1.列1,表1.列2…,表2.列1,…表2.列Nfrom表1,表2where表1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論