數(shù)據(jù)庫基本原理及應(yīng)用介紹.ppt_第1頁
數(shù)據(jù)庫基本原理及應(yīng)用介紹.ppt_第2頁
數(shù)據(jù)庫基本原理及應(yīng)用介紹.ppt_第3頁
數(shù)據(jù)庫基本原理及應(yīng)用介紹.ppt_第4頁
數(shù)據(jù)庫基本原理及應(yīng)用介紹.ppt_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理及應(yīng)用,主要內(nèi)容,數(shù)據(jù)庫基本概念 數(shù)據(jù)庫 數(shù)據(jù)庫管理系統(tǒng) ER圖 規(guī)范化 數(shù)據(jù)查詢 數(shù)據(jù)操作 表和視圖 SQL內(nèi)置函數(shù),基本概念,數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫是在計(jì)算機(jī)上組織、存儲和共享數(shù)據(jù)的方法,數(shù)據(jù)庫系統(tǒng)是由普通的文件系統(tǒng)發(fā)展而來的。數(shù)據(jù)庫系統(tǒng)具有較高的數(shù)據(jù)獨(dú)立性,即不依賴于特定的數(shù)據(jù)庫應(yīng)用程序;數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)冗余小,可以節(jié)省數(shù)據(jù)的存儲空間;另外數(shù)據(jù)庫系統(tǒng)還很容易實(shí)現(xiàn)多個(gè)用戶的數(shù)據(jù)共享。 數(shù)據(jù)庫系統(tǒng)成熟的標(biāo)志就是數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn)。數(shù)據(jù)庫管理系統(tǒng)(DataBase Managerment System,簡稱DBMS)是對數(shù)據(jù)庫的一種完整和統(tǒng)一的管理和控制機(jī)制。數(shù)據(jù)庫管理系統(tǒng)

2、不僅讓我們能夠?qū)崿F(xiàn)對數(shù)據(jù)的快速檢索和維護(hù),還為數(shù)據(jù)的安全性、完整性、并發(fā)控制和數(shù)據(jù)恢復(fù)提供了保證。數(shù)據(jù)庫管理系統(tǒng)的核心是一個(gè)用來存儲大量數(shù)據(jù)的數(shù)據(jù)庫。,一個(gè)真正的數(shù)據(jù)庫系統(tǒng)由硬件和軟件兩個(gè)方面構(gòu)成。 比如我們要使用Oracle數(shù)據(jù)庫,需要安裝Oracle公司提供的數(shù)據(jù)庫服務(wù)器軟件和一臺用于安裝數(shù)據(jù)庫管理系統(tǒng)的高性能的計(jì)算機(jī)服務(wù)器。 數(shù)據(jù)庫系統(tǒng)的發(fā)展經(jīng)歷了層次模型、網(wǎng)狀模型及關(guān)系模型幾個(gè)階段。當(dāng)今應(yīng)用最普遍的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。 目前,市場上流行的幾種大型數(shù)據(jù)庫,如Oracle、DB2、Sybase、MS SQL Server等都是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。Oracle數(shù)據(jù)庫是一種面向?qū)ο蟮年P(guān)系

3、型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),是基于標(biāo)準(zhǔn)SQL語言的數(shù)據(jù)庫產(chǎn)品。,基本概念,在數(shù)據(jù)庫的設(shè)計(jì)階段,需要創(chuàng)建邏輯模型。關(guān)系數(shù)據(jù)庫的邏輯模型叫做實(shí)體關(guān)系模型。 實(shí)體模型化最常用的工具是實(shí)體關(guān)系圖,簡稱ER(EntityRelationship)圖,它是一種簡單的圖形技術(shù),用來定義數(shù)據(jù)庫中需要的表、字段和關(guān)系。它用于數(shù)據(jù)庫設(shè)計(jì)的第一步,與我們使用的具體的數(shù)據(jù)庫管理系統(tǒng)無關(guān)。實(shí)體關(guān)系模型的優(yōu)點(diǎn)是: 有效地搜集和表示組織的信息需求。 提供一個(gè)容易理解的系統(tǒng)描述圖。 易于開發(fā)和提煉。 明確定義了信息需求的范圍。 將業(yè)務(wù)需求信息與業(yè)務(wù)執(zhí)行活動分開。 根據(jù)業(yè)務(wù)說明或描述創(chuàng)建實(shí)體關(guān)系圖。,實(shí)體關(guān)系模型,典型的

4、實(shí)體關(guān)系模型有以下三個(gè)要素: 實(shí)體:客觀存在并可以相互區(qū)分的事物稱為實(shí)體,包括有意義的人、地方或事物,如學(xué)生、教師、課程、成績等。 屬性:實(shí)體所具有的某一特性稱為屬性,一個(gè)實(shí)體可以用若干屬性來刻畫,如學(xué)生實(shí)體具有學(xué)號、姓名、性別等屬性。 關(guān)系:兩個(gè)實(shí)體之間的相關(guān)性,如學(xué)生與課程之間的關(guān)系,教師與課程之間的關(guān)系。,實(shí)體關(guān)系模型三要素,實(shí)體關(guān)系,實(shí)體之間的關(guān)系有三種類型: 一對一:表示一個(gè)實(shí)體中的一種情況只與另一個(gè)實(shí)體中的一種情況有關(guān)系。比如:學(xué)生與學(xué)生證,一個(gè)學(xué)生只對應(yīng)一個(gè)學(xué)生證,一個(gè)學(xué)生證只對應(yīng)一個(gè)學(xué)生。 一對多:表示一個(gè)實(shí)體中的一種情況與另一個(gè)實(shí)體中的多種情況有關(guān)系。比如:班級與學(xué)生,一個(gè)班

5、級可有多個(gè)學(xué)生,而一個(gè)學(xué)生只能屬于某一個(gè)班級。 多對多:表示一個(gè)實(shí)體中的一種情況與另一個(gè)實(shí)體中的多種情況有關(guān)系,而第二個(gè)實(shí)體中的一種情況也與第一個(gè)實(shí)體中的多種情況有關(guān)系。比如:教師與學(xué)生,一個(gè)學(xué)生有多個(gè)教師為其上課,一個(gè)教師要為多個(gè)學(xué)生上課,ER圖,在ER模型圖中,用實(shí)線表示實(shí)體之間必須有關(guān)系,用虛線表示實(shí)體之間是可選的關(guān)系,用三角表示一對多關(guān)系。 在實(shí)體的屬性中,在屬性前用“*”表示必須有的屬性,用“#”表示惟一屬性,小寫字母“o”代表可選屬性。在每一實(shí)體上,要定義一個(gè)惟一表示該實(shí)體的標(biāo)識符,稱為UID(UNIQUE IDENTIFIER),UID是屬性之間的組合。圖1-3表示了三個(gè)實(shí)體之間

6、關(guān)系的ER圖,其中系部ID、專業(yè)ID和教師ID分別是三個(gè)實(shí)體的UID。,目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 基本語法 排序查詢 條件查詢 高級查詢 數(shù)據(jù)操作 表和視圖 SQL內(nèi)置函數(shù),數(shù)據(jù)庫查詢語言SQL,主要特點(diǎn): SQL語言可以在Oracle數(shù)據(jù)庫中創(chuàng)建、存儲、更新、檢索和維護(hù)數(shù)據(jù),其中主要的功能是實(shí)現(xiàn)數(shù)據(jù)的查詢和數(shù)據(jù)的插入、刪除、修改等操作。 SQL語言在書寫上類似于英文,簡潔清晰,易于理解。它由關(guān)鍵字、表名、字段名,表達(dá)式等部分構(gòu)成。 分類: SQL語言按功能可分為DDL語言、DML語言、DCL語言和數(shù)據(jù)庫事務(wù)處理語言四個(gè)類別。 SQL語言的主要關(guān)鍵字有:ALTER、DROP、REVOKE

7、、AUDIT、GRANT、ROLLBACK、COMMIT、INSERT、SELECT、COMMENT、LOCK、UPDATE、CREATE、NOAUDIT、VALIDATE、DELETE、RENAME等。,SQL語言的分類,按照SQL語言的不同功用,可以進(jìn)一步對SQL語言進(jìn)行劃分。下表給出了SQL語言 的分類和功能簡介。,由主句和若干個(gè)從句組成,主句和從句都由關(guān)鍵字引導(dǎo)。 主句表示該語句的主要功能 從句表示一些條件或限定,有些從句是可以省略的。 在語句中會引用到列名、表名或表達(dá)式。另外還有如下一些說明: 關(guān)鍵字、字段名、表名等之間都要用空格或逗號等進(jìn)行必要的分隔。 語句的大小寫不敏感(查詢的內(nèi)

8、容除外)。 語句可以寫在一行或多行。 語句中的關(guān)鍵字不能略寫和分開寫在兩行。 要在每條SQL語句的結(jié)束處添加“;”號。 為了提高可讀性,可以使用縮進(jìn)。 從句一般寫在另一行的開始處。,SQL基本語法,查詢語句是最常見的SQL語句,它從給定的表中,把滿足條件的內(nèi)容檢索出來。以下是最基本的SELECT語句語法。 SELECT (字段名列表|*) FROM 表名 WHERE 條件; SELECT為查詢語句的關(guān)鍵字,該關(guān)鍵字不能省略。 字段名列表代表要查詢的字段。 FROM 也是查詢語句關(guān)鍵字,后面跟要查詢的表名,該關(guān)鍵字不能省略。 WHERE條件限定檢索特定的記錄,滿足“條件”的記錄被顯示出來,不滿足

9、條件的被過濾掉。 語句查詢的結(jié)果往往是表的一部分行和列。如果字段名列表使用*,將檢索全部的字段。如果省略WHERE條件,將檢索全部的記錄。 SELECT * FROM emp WHERE deptno=10;,SQL查詢語句,基本查詢語句,1基本查詢 select * from dept; 2顯示行號 ROWNUM 每個(gè)表都有一個(gè)虛列ROWNUM,它用來顯示結(jié)果中記錄的行號。我們在查詢中也可以顯示這個(gè)列。SELECT rownum,ename FROM emp; select * from(select rownum no ,id,name from student) where no2; s

10、elect * from (select rownum no,id,name from student where rownum=2; 3顯示計(jì)算列 在查詢語句中可以有算術(shù)表達(dá)式,它將形成一個(gè)新列,用于顯示計(jì)算的結(jié)果,通常稱為計(jì)算列。表達(dá)式中可以包含列名、算術(shù)運(yùn)算符和括號。括號用來改變運(yùn)算的優(yōu)先次序。常用的算術(shù)運(yùn)算符包括: +:加法運(yùn)算符。 ?:減法運(yùn)算符。 *:乘法運(yùn)算符。 /:除法運(yùn)算符。,基本查詢語句,4 連接運(yùn)算符 在前面,我們使用到了包含數(shù)值運(yùn)算的計(jì)算列,顯示結(jié)果也是數(shù)值型的。我們也可以使用字符型的計(jì)算列,方法是在查詢中使用連接運(yùn)算。連接運(yùn)算符是雙豎線“|”。通過連接運(yùn)算可以將兩個(gè)字

11、符串連接在一起。 5 使用別名 as 我們可以為表的列起一個(gè)別名,它的好處是,可以改變表頭的顯示。特別是對于計(jì)算列,可以為它起一個(gè)簡單的列別名以代替計(jì)算表達(dá)式在表頭的顯示。 說明:表頭顯示的是列別名,轉(zhuǎn)換為漢字顯示。在列名和別名之間要用AS分隔,如ename和它的別名“名稱”之間用AS隔開。AS也可以省略,如sal和它的別名“工資”之間用空格分割。 注意:如果用空格分割,要區(qū)別好列名和別名,前面為列名,后面是別名。 別名如果含有空格或特殊字符或大小寫敏感,需要使用雙引號將它引起來。,6消除重復(fù)行 如果在顯示結(jié)果中存在重復(fù)行,可以使用的關(guān)鍵字DISTINCT消除重復(fù)顯示。 SELECT DIST

12、INCT job FROM emp; 7. 查詢結(jié)果的排序 SELECT 字段列表 FROM 表名 WHERE 條件ORDER BY 字段名1 ASC|DESC,字段名 ASC|DESC.; ASC 升序(默認(rèn))|DESC 降序 SELECT ename, sal FROM emp ORDER BY sal; 可以按多列進(jìn)行排序,先按第一列,然后按第二列 如果要對計(jì)算列排序,可以為計(jì)算列指定別名,然后按別名排序。,基本查詢語句,條件查詢,簡單條件查詢 要對顯示的行進(jìn)行限定,可在FROM從句后使用WHERE從句,在WHERE從句中給出限定的條件,因?yàn)橄薅l件是一個(gè)表達(dá)式,所以稱為條件表達(dá)式。條件

13、表達(dá)式中可以包含比較運(yùn)算,表達(dá)式的值為真的記錄將被顯示。 例子:,條件查詢,復(fù)合條件查詢 可以用邏輯運(yùn)算符構(gòu)成復(fù)合的條件查詢,即把兩個(gè)或多個(gè)條件,用邏輯運(yùn)算符連接成一個(gè)條件。有3個(gè)邏輯運(yùn)算符,如下表所示。 運(yùn)算的優(yōu)先順序是NOT,AND,OR。如果要改變優(yōu)先順序,可以使用括號。,條件查詢條件特殊表示法,特殊條件查詢,Between.and In Is Not Null LIKE 使用LIKE操作符可完成按通配符查找字符串的查詢操作,該操作符適合于對數(shù)據(jù)進(jìn)行模糊查詢。其語句法為: NOT LIKE 匹配模式 匹配模式中除了可以包含固定的字符之外,還可以包含以下的通配符: %:代表0個(gè)或多個(gè)任意字

14、符。 _ :代表一個(gè)任意字符。,函數(shù)-數(shù)值型函數(shù),函數(shù)字符型函數(shù),函數(shù)日期型函數(shù),函數(shù)類型轉(zhuǎn)換函數(shù),1自動類型轉(zhuǎn)換 Oracle可以自動根據(jù)具體情況進(jìn)行如下的轉(zhuǎn)換: * 字符串到數(shù)值。 * 字符串到日期。 * 數(shù)值到字符串。 * 日期到字符串。,2日期類型轉(zhuǎn)換 將日期型轉(zhuǎn)換成字符串時(shí),可以按新的格式顯示。 如格式Y(jié)YYY-MM-DD HH24:MI:SS表示“年-月-日 小時(shí):分鐘:秒”。Oracle的日期類型是包含時(shí)間在內(nèi)的。,日期類型轉(zhuǎn)換,日期類型轉(zhuǎn)換2,數(shù)值轉(zhuǎn)換符,其他常用函數(shù),目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 基本語法 排序查詢 條件查詢 高級查詢 數(shù)據(jù)操作 表和視圖 SQL內(nèi)置函數(shù),高

15、級查詢,多表聯(lián)合查詢 通過連接可以建立多表查詢,多表查詢的數(shù)據(jù)可以來自多個(gè)表,但是表之間必須有適當(dāng)?shù)倪B接條件。為了從多張表中查詢,必須識別連接多張表的公共列。一般是在WHERE子句中用比較運(yùn)算符指明連接的條件。 忘記說明表的連接條件是常見的一種錯(cuò)誤,這時(shí)查詢將會產(chǎn)生表連接的笛卡爾積(即一個(gè)表中的每條記錄與另一個(gè)表中的每條記錄作連接產(chǎn)生的結(jié)果)。一般N個(gè)表進(jìn)行連接,需要至少N-1個(gè)連接條件,才能夠正確連接。兩個(gè)表連接是最常見的情況,只需要說明一個(gè)連接條件。 相等連接。 不等連接。 外連接。 自連接。,相等連接 通過兩個(gè)表具有相同意義的列,可以建立相等連接條件。使用相等連接進(jìn)行兩個(gè)表的查詢時(shí),只有

16、連接列上在兩個(gè)表中都出現(xiàn)且值相等的行才會出現(xiàn)在查詢結(jié)果中。 外連接 相等連接有一個(gè)問題:如果某個(gè)值內(nèi)容在另一張表中沒有對應(yīng)的記錄存在,那么在查詢中就不會出現(xiàn)相應(yīng)的結(jié)果; 為了解決這個(gè)問題可以用外連,即除了顯示滿足相等連接條件的記錄外,還顯示那些不滿足連接條件的行,不滿足連接條件的行將顯示在最后。 不等連接 自連接 自連接就是一個(gè)表,同本身進(jìn)行連接。對于自連接可以想像存在兩個(gè)相同的表(表和表的副本),可以通過不同的別名區(qū)別兩個(gè)相同的表。,聯(lián)合查詢,統(tǒng)計(jì)查詢,通常需要對數(shù)據(jù)進(jìn)行統(tǒng)計(jì),匯總出數(shù)據(jù)庫的統(tǒng)計(jì)信息。這個(gè)功能可以由統(tǒng)計(jì)查詢完成。 Oracle提供了一些函數(shù)來完成統(tǒng)計(jì)工作,這些函數(shù)稱為組函數(shù),

17、組函數(shù)不同于前面介紹和使用的函數(shù)(單行函數(shù))。組函數(shù)可以對分組的數(shù)據(jù)進(jìn)行求和、求平均值等運(yùn)算。組函數(shù)只能應(yīng)用于SELECT子句、HAVING子句或ORDER BY子句中。組函數(shù)也可以稱為統(tǒng)計(jì)函數(shù)。,分組函數(shù)中SUM和AVG只應(yīng)用于數(shù)值型的列,MAX、MIN和COUNT可以應(yīng)用于字符、數(shù)值和日期類型的列。組函數(shù)忽略列的空值。 使用GROUP BY 從句可以對數(shù)據(jù)進(jìn)行分組。所謂分組,就是按照列的相同內(nèi)容,將記錄劃分成組,對組可以應(yīng)用組函數(shù)。 如果不使用分組,將對整個(gè)表或滿足條件的記錄應(yīng)用組函數(shù)。 在組函數(shù)中可使用DISTINCT或ALL關(guān)鍵字。ALL表示對所有非NULL值(可重復(fù))進(jìn)行運(yùn)算(COU

18、NT除外)。DISTINCT 表示對每一個(gè)非NULL值,如果存在重復(fù)值,則組函數(shù)只運(yùn)算一次。如果不指明上述關(guān)鍵字,默認(rèn)為ALL。 對分組查詢的結(jié)果進(jìn)行過濾,要使用HAVING從句。HAVING從句過濾分組后的結(jié)果,它只能出現(xiàn)在GROUP BY從句之后,而WHERE從句要出現(xiàn)在GROUP BY從句之前。,統(tǒng)計(jì)查詢,我們可能會提出這樣的問題,在雇員中誰的工資比SCOTT高? 第一步查詢雇員SCOTT的工資 第二步查詢工資高于SCOTT的雇員。 通過把一個(gè)查詢的結(jié)果作為另一個(gè)查詢的一部分,可以實(shí)現(xiàn)這樣的查詢功能。 第一個(gè)查詢可以作為第二個(gè)查詢的一部分出現(xiàn)在第二個(gè)查詢的條件中,這就是子查詢。出現(xiàn)在其他

19、查詢中的查詢稱為子查詢,包含其他查詢的查詢稱為主查詢。 子查詢一般出現(xiàn)在SELECT語句的WHERE子句中,Oracle也支持在FROM或HAVING子句中出現(xiàn)子查詢。子查詢比主查詢先執(zhí)行,結(jié)果作為主查詢的條件,在書寫上要用圓括號擴(kuò)起來,并放在比較運(yùn)算符的右側(cè)。子查詢可以嵌套使用,最里層的查詢最先執(zhí)行。子查詢可以在SELECT、INSERT、UPDATE、DELETE等語句中使用。,子查詢,集合運(yùn)算,多個(gè)查詢語句的結(jié)果可以做集合運(yùn)算,結(jié)果集的字段類型、數(shù)量和順序應(yīng)該一樣。,目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 數(shù)據(jù)操作 表和視圖 SQL內(nèi)置函數(shù),數(shù)據(jù)庫操作語句DML,插入數(shù)據(jù) 可以使用INSERT命

20、令,向已經(jīng)存在的表插入數(shù)據(jù),語法格式如下: INSERT INTO 表名 (字段列表) VALUES(表達(dá)式1, 表達(dá)式2,.)|QUERY語句; 修改數(shù)據(jù) 修改數(shù)據(jù)的語句UPDATE對表中指定字段的數(shù)據(jù)進(jìn)行修改,一般需要通過添加WHERE條件來限定要進(jìn)行修改的行,如果不添加WHERE條件,將對所有的行進(jìn)行修改。 (1)修改數(shù)據(jù)的語句UPDATE的基本語法如下:UPDATE 表名 SET 字段名1=表達(dá)式1, 字段名2=表達(dá)式2, . WHERE 條件; (2)UPDATE語句的另外一種用法:UPDATE 表名 SET(字段名1, 字段名2, .)=SELECT (字段名1, 字段名2, .)

21、 FROM 另外的表名WHERE條件; 刪除數(shù)據(jù) DELETE FROM表名 WHERE 條件;,數(shù)據(jù)庫操作語句,目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 數(shù)據(jù)操作 表和視圖 表的創(chuàng)建和操作 數(shù)據(jù)完整和約束條件 SQL內(nèi)置函數(shù),Oracle數(shù)據(jù)庫對象,CREATE TABLE 表名(列名 數(shù)據(jù)類型(寬度)DEFAULT 表達(dá)式COLUMN CONSTRAINT,. TABLE CONSTRAINT TABLE_PARTITION_CLAUSE ); 由此可見,創(chuàng)建表最主要的是要說明表名、列名、列的數(shù)據(jù)類型和寬度,多列之間用“,”分隔。 可以是用中文或英文作為表名和列名。 表名最大長度為30個(gè)字符。在同一

22、個(gè)用戶下,表不能重名,但不同用戶表的名稱可以相重。另外,表的名稱不能使用Oracle的保留字。在一張表中最多可以包含2000列。該語法中的其他部分根據(jù)需要添加,作用如下: DEFAULT 表達(dá)式:用來定義列的默認(rèn)值。 COLUMN CONSTRAINT:用來定義列級的約束條件。 TABLE CONSTRAINT:用來定義表級的約束條件。 TABLE_PARTITION_CLAUSE:定義表的分區(qū)子句。,表的創(chuàng)建,create table TEST ( ID NUMBER(6,2) not null , NAME VARCHAR2(20) default mao not null, AGE NU

23、MBER, DEPTNO NUMBER not null, COMM VARCHAR2(50) not null, primary key(id), foreign key (DEPTNO) references DEPT (DEPTNO), check (age0 and age150) ),通過子查詢創(chuàng)建表 如果要創(chuàng)建一個(gè)同已有的表結(jié)構(gòu)相同或部分相同的表,可以采用以下的語法: CREATE TABLE 表名(列名.) AS SQL查詢語句; 該語法既可以復(fù)制表的結(jié)構(gòu),也可以復(fù)制表的內(nèi)容,并可以為新表命名新的列名。新的列名在表名后的括號中給出,如果省略將采用原來表的列名。復(fù)制的內(nèi)容由查詢語句

24、的WHERE條件決定。 刪除已創(chuàng)建的表 DROP TABLE 表名CASCADE CONSTRAINTS; 表的刪除者必須是表的創(chuàng)建者或具有DROP ANY TABLE權(quán)限。CASCADE CONSTRAINTS表示當(dāng)要刪除的表被其他表參照時(shí),刪除參照此表的約束條件。有關(guān)內(nèi)容請參考下一節(jié)。,表的創(chuàng)建和刪除,表的重命名 RENAME 舊表名 TO 新表名; 清空表 TRUNCATE TABLE 表名;DDL 清空表可刪除表的全部數(shù)據(jù)并釋放占用的存儲空間。有關(guān)訓(xùn)練請參照DELETE(DML)語句部分,注意兩者的區(qū)別。 添加注釋 (1) 為表添加注釋:COMMENT ON TABLE 表名 IS .

25、; (2) 為列添加注釋:COMMENT ON COLUMN 表名.列名 IS . 查看表 可以通過對數(shù)據(jù)字典USER_OBJECTS的查詢,顯示當(dāng)前模式用戶的所有表。SELECT object_name FROM user_objects WHERE object_type=TABLE;,表的操作,目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 數(shù)據(jù)操作 表和視圖 表的創(chuàng)建和操作 數(shù)據(jù)完整和約束條件 視圖的創(chuàng)建和操作 SQL內(nèi)置函數(shù),數(shù)據(jù)完整性和約束條件,表的數(shù)據(jù)有一定的取值范圍和聯(lián)系,多表之間的數(shù)據(jù)有時(shí)也有一定的參照關(guān)系。在創(chuàng)建表和修改表時(shí),可通過定義約束條件來保證數(shù)據(jù)的完整性和一致性。約束條件是一些規(guī)則

26、,在對數(shù)據(jù)進(jìn)行插入、刪除和修改時(shí)要對這些規(guī)則進(jìn)行驗(yàn)證,從而起到約束作用。 完整性包括數(shù)據(jù)完整性和參照完整性 數(shù)據(jù)完整性定義表數(shù)據(jù)的約束條件: 主鍵(PRIMARY KEY) 非空(NOT NULL) 惟一(UNIQUE) 檢查(CHECK)約束條件定義 參照完整性定義數(shù)據(jù)之間的約束條件。參照完整性由外鍵(FOREIGN KEY)約束條件定義。,外鍵約束,第一種語法,如果子記錄存在,則不允許刪除主記錄: CONSTRANT 約束名 FOREIGN KEY(列名1,列名2,.)REFERENCES 表名(列名1,列名2,.) 第二種語法,如果子記錄存在,則刪除主記錄時(shí),級聯(lián)刪除子記錄: CONST

27、RANT 約束名 FOREIGN KEY(列名1,列名2,.)REFERENCES 表名(列名1,列名2,.)on delete cascade 第三種語法,如果子記錄存在,則刪除主記錄時(shí),將子記錄置成空: CONSTRANT 約束名 FOREIGN KEY(列名1,列名2,.)REFERENCES 表名(列名1,列名2,.)on delete set null其中的表名為要參照的表名。,數(shù)據(jù)字典USER_CONSTRAINTS中包含了當(dāng)前模式用戶的約束條件信息。其中,CONSTRAINTS_TYPE 顯示的約束類型為: C:CHECK約束。 P:PRIMARY KEY約束。 U:UNIQUE

28、約束。 R:FOREIGN KEY約束。 其他信息可根據(jù)需要進(jìn)行查詢顯示,可用DESCRIBE命令查看USER_CONSTRAINTS的結(jié)構(gòu)。 SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,SEARCH_CONDITION FROM USER_CONSTRAINTS WHERE TABLE_NAME=圖書; 使約束條件失效:ALTER TABLE 表名 DISABLE CONSTRANT 約束名; 使約束條件生效:ALTER TABLE 表名 ENABLE CONSTRANT 約束名;,查看約束條件,目錄,數(shù)據(jù)庫基本概念 數(shù)據(jù)查詢 數(shù)據(jù)操作 表和視圖 表的創(chuàng)建和

29、操作 數(shù)據(jù)完整和約束條件 視圖的創(chuàng)建和操作 SQL內(nèi)置函數(shù),視圖的概念,視圖是基于一張表或多張表或另外一個(gè)視圖的邏輯表。 視圖不同于表,視圖本身不包含任何數(shù)據(jù)。表是實(shí)際獨(dú)立存在的實(shí)體,是用于存儲數(shù)據(jù)的基本結(jié)構(gòu)。而視圖只是一種定義,對應(yīng)一個(gè)查詢語句。視圖的數(shù)據(jù)都來自于某些表,這些表被稱為基表。通過視圖來查看表,就像是從不同的角度來觀察一個(gè)(或多個(gè))表。 可以提高數(shù)據(jù)訪問的安全性,通過視圖往往只可以訪問數(shù)據(jù)庫中表的特定部分,限制了用戶訪問表的全部行和列。 簡化了對數(shù)據(jù)的查詢,隱藏了查詢的復(fù)雜性。視圖的數(shù)據(jù)來自一個(gè)復(fù)雜的查詢,用戶對視圖的檢索卻很簡單。 一個(gè)視圖可以檢索多張表的數(shù)據(jù),因此用戶通過訪問一個(gè)視圖,可完成對多個(gè)表的訪問。 視圖是相同數(shù)據(jù)的不同表示,通過為不同的用戶創(chuàng)建同一個(gè)表的不同視圖,使用戶可分別訪問同一個(gè)表的不同部分。 視圖可以在表能夠使用的任何地方使用,但在對視圖的操作上同表相比有些限制,特別是插入和修改操作。對視圖的操作將傳遞到基表,所以在表上定義的約束條件和觸

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論