版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章Oracle12c數(shù)據(jù)庫(kù)簡(jiǎn)介目錄數(shù)據(jù)庫(kù)基礎(chǔ)使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)的發(fā)展Oracle12c數(shù)據(jù)庫(kù)體系結(jié)構(gòu)1.1
數(shù)據(jù)庫(kù)基礎(chǔ)
1.1.1與數(shù)據(jù)庫(kù)相關(guān)的概念1.1.2
數(shù)據(jù)庫(kù)的類型-3-數(shù)據(jù)1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念-4-數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)
數(shù)字、字符、聲音、圖像報(bào)名表中的數(shù)據(jù)?-5-1.1.1與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)可以理解為裝載數(shù)據(jù)的容器,在存儲(chǔ)數(shù)據(jù)時(shí),不會(huì)將所有數(shù)據(jù)雜亂無(wú)章地存放到一起,而是會(huì)把數(shù)據(jù)分類存放到不同的容器空間中,這些容器空間是數(shù)據(jù)表。-6-1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)就是各大廠商提供的數(shù)據(jù)庫(kù)軟件OracleSQLServerAccessMySQLDB2等-7-1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)管理系統(tǒng)圖書館的借閱系統(tǒng)學(xué)生選課系統(tǒng)OA辦公系統(tǒng)員工管理系統(tǒng)-8-1.1.2
數(shù)據(jù)庫(kù)的類型層次型數(shù)據(jù)庫(kù)網(wǎng)狀型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)-9-層次型數(shù)據(jù)庫(kù)層次型數(shù)據(jù)庫(kù)是以層次型的結(jié)構(gòu)來(lái)構(gòu)建的數(shù)據(jù),它是以樹狀結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)的代表產(chǎn)品IBM開(kāi)發(fā)的IMS數(shù)據(jù)庫(kù)-10-某商場(chǎng)部門員工商品某商場(chǎng)數(shù)據(jù)庫(kù)的層次型結(jié)構(gòu)網(wǎng)狀型數(shù)據(jù)庫(kù)網(wǎng)狀型數(shù)據(jù)庫(kù)網(wǎng)狀模型是層次型數(shù)據(jù)庫(kù)中層次模型的擴(kuò)展,它是以網(wǎng)狀的結(jié)構(gòu)來(lái)表示實(shí)體類型及其實(shí)體之間聯(lián)系的模型。第一個(gè)網(wǎng)狀數(shù)據(jù)庫(kù)管理系統(tǒng):IDS(美國(guó)通用)顧客商品購(gòu)買商品的信息某商場(chǎng)顧客購(gòu)買商品數(shù)據(jù)的網(wǎng)狀型結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)采用二維表的結(jié)構(gòu)來(lái)表示實(shí)體之間關(guān)系的模型,在設(shè)計(jì)和存取數(shù)據(jù)方面都很方便。最早關(guān)系模型1970年由IBM的研究員E.F.Codd博士提出關(guān)系型數(shù)據(jù)庫(kù)主流Oracle、MySQL、SQLServer等-12-文檔型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)主要用來(lái)存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)。在文檔型數(shù)據(jù)庫(kù)中,文檔就是數(shù)據(jù)庫(kù)中存儲(chǔ)的最小單位。文檔格式XML、YAML、JSON和BSON,也包括二進(jìn)制格式如PDF、Office文檔等。代表產(chǎn)品MongoDB、CouchDB、RavenDB等。-13-1.2
使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)1.2.1
什么是E-R圖1.2.2
使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)-14-1.2.1什么是E-R圖E-R圖表示的實(shí)體之間的關(guān)系實(shí)體是一個(gè)客觀存在的對(duì)象,在數(shù)據(jù)庫(kù)設(shè)計(jì)中,實(shí)體指的是表,而表中的列就是描述實(shí)體的屬性實(shí)體集實(shí)體集實(shí)際上就是將多個(gè)類似的實(shí)體聚集到一起形成的-15-1.2.1
什么是E-R圖(續(xù))關(guān)系是指兩個(gè)實(shí)體集之間的關(guān)系。對(duì)于兩個(gè)實(shí)體集之間的關(guān)系可以分為一對(duì)一關(guān)系、一對(duì)多關(guān)系以及多對(duì)多關(guān)系-16-1.2.2使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)-17-顧客實(shí)體集與商品實(shí)體集的E-R圖1.3Oracle數(shù)據(jù)庫(kù)的發(fā)展從1977年至今,開(kāi)發(fā)了多個(gè)版本。近幾年的版本如下:8.0:1997年,該版本也稱為對(duì)象關(guān)系數(shù)據(jù)庫(kù),支持多個(gè)新的數(shù)據(jù)類型。此外,在該版本中還支持了大表的分區(qū)8i:1999年,支持Internet計(jì)算9i:2001年,在該版本中引入了RAC(OracleRealApplicationClusters,Oracle實(shí)時(shí)應(yīng)用集群),能夠使多個(gè)實(shí)例同時(shí)訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)-18-1.3Oracle數(shù)據(jù)庫(kù)的發(fā)展(續(xù))10g:2003年,g代表Grid,支持網(wǎng)格計(jì)算、支持自動(dòng)管理11g:2009年,擴(kuò)展網(wǎng)格計(jì)算優(yōu)勢(shì)12c:2013年,c代表Cloud,該版本支持了JSON格式文檔的存儲(chǔ),并且支持使用SQL或REST接口查詢JSON數(shù)據(jù)19c:2019年,長(zhǎng)期支持版本(LTS),增強(qiáng)自動(dòng)化與安全性21c:2022年,首先發(fā)布的是Linux版本23ai:2024年,專注于數(shù)據(jù)與AI、數(shù)據(jù)與開(kāi)發(fā)以及數(shù)據(jù)與關(guān)鍵任務(wù)-19-1.4
Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)1.4.3Oracle數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)1.4.4Oracle數(shù)據(jù)庫(kù)的進(jìn)程結(jié)構(gòu)-20-1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)物理存儲(chǔ)結(jié)構(gòu)指實(shí)際的文件存儲(chǔ)形式數(shù)據(jù)文件數(shù)據(jù)文件的擴(kuò)展名是.dbf,主要用來(lái)存放系統(tǒng)數(shù)據(jù)、數(shù)據(jù)字典、索引、表等信息臨時(shí)文件也是數(shù)據(jù)文件,通常也是在創(chuàng)建Oracle數(shù)據(jù)庫(kù)時(shí)來(lái)指定的,臨時(shí)文件都存放在臨時(shí)表空間中-21-1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)(續(xù))控制文件控制文件的擴(kuò)展名是.ctl,是一個(gè)二進(jìn)制文件。它主要用來(lái)保存數(shù)據(jù)庫(kù)中的物理結(jié)構(gòu)信息。聯(lián)機(jī)重做日志文件可以說(shuō)是一個(gè)包含數(shù)據(jù)變更記錄的文件集合,它的擴(kuò)展名就是.log。-22-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)塊存儲(chǔ)空間中能夠使用或分配的最小的邏輯存儲(chǔ)單位。區(qū)區(qū)是由一個(gè)或多個(gè)數(shù)據(jù)塊構(gòu)成的。區(qū)是通過(guò)一次分配獲得特定數(shù)量的相鄰數(shù)據(jù)塊,用于存儲(chǔ)特定類型的信息。段是由一個(gè)或多個(gè)區(qū)構(gòu)成的。-23-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)(續(xù))表空間一個(gè)表空間是由多個(gè)段構(gòu)成的。表空間是邏輯存儲(chǔ)結(jié)構(gòu)中最大的存儲(chǔ)單位,它是與物理存儲(chǔ)結(jié)構(gòu)中的數(shù)據(jù)文件對(duì)應(yīng)的。-24-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)(續(xù))邏輯存儲(chǔ)單位的關(guān)系表空間段區(qū)塊-25-1.4.3Oracle數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)系統(tǒng)全局區(qū)(SGA)數(shù)據(jù)庫(kù)緩沖區(qū)重做日志緩沖區(qū)共享池大型池Java池?cái)?shù)據(jù)流池固定的SGA
程序共享區(qū)(PGA)SQL工作區(qū)會(huì)話內(nèi)存私有SQL區(qū)用戶全局區(qū)(UGA)軟件代碼區(qū)-26-1.4.4Oracle數(shù)據(jù)庫(kù)的進(jìn)程結(jié)構(gòu)客戶端進(jìn)程也稱為用戶進(jìn)程,當(dāng)運(yùn)行一個(gè)應(yīng)用程序后,操作系統(tǒng)就會(huì)創(chuàng)建一個(gè)客戶端進(jìn)程來(lái)運(yùn)行應(yīng)用程序服務(wù)端進(jìn)程是用來(lái)接收客戶端進(jìn)程中的請(qǐng)求的,也就是用于建立客戶端與數(shù)據(jù)庫(kù)的通信后臺(tái)進(jìn)程所謂后臺(tái)進(jìn)程實(shí)際是一種特殊的服務(wù)器進(jìn)程,用于完成數(shù)據(jù)庫(kù)的后臺(tái)管理工作-27-習(xí)題1.填空題1)Oracle數(shù)據(jù)庫(kù)屬于_____________類型數(shù)據(jù)庫(kù)。2)E-R圖是用于描述____________和___________之間的關(guān)系的模型。3)在Oracle數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)文件包括___________________________。-28-習(xí)題2.簡(jiǎn)答題1)分別說(shuō)明Oracle8i中的i,Oracle10g中的g,以及Oracle12c中的c都代表什么?2)簡(jiǎn)述Oracle數(shù)據(jù)庫(kù)的邏輯存儲(chǔ)結(jié)構(gòu)3)Oracle數(shù)據(jù)庫(kù)中的常見(jiàn)的后臺(tái)進(jìn)程都包含什么?(列舉3個(gè))-29-
第1章Oracle12c數(shù)據(jù)庫(kù)簡(jiǎn)介目錄數(shù)據(jù)庫(kù)基礎(chǔ)使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)的發(fā)展Oracle12c數(shù)據(jù)庫(kù)體系結(jié)構(gòu)1.1
數(shù)據(jù)庫(kù)基礎(chǔ)
1.1.1與數(shù)據(jù)庫(kù)相關(guān)的概念1.1.2
數(shù)據(jù)庫(kù)的類型-33-數(shù)據(jù)1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念-34-數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)
數(shù)字、字符、聲音、圖像報(bào)名表中的數(shù)據(jù)?-35-1.1.1與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)可以理解為裝載數(shù)據(jù)的容器,在存儲(chǔ)數(shù)據(jù)時(shí),不會(huì)將所有數(shù)據(jù)雜亂無(wú)章地存放到一起,而是會(huì)把數(shù)據(jù)分類存放到不同的容器空間中,這些容器空間是數(shù)據(jù)表。-36-1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)就是各大廠商提供的數(shù)據(jù)庫(kù)軟件OracleSQLServerAccessMySQLDB2等-37-1.1.1
與數(shù)據(jù)庫(kù)相關(guān)的概念(續(xù))數(shù)據(jù)庫(kù)管理系統(tǒng)圖書館的借閱系統(tǒng)學(xué)生選課系統(tǒng)OA辦公系統(tǒng)員工管理系統(tǒng)-38-1.1.2
數(shù)據(jù)庫(kù)的類型層次型數(shù)據(jù)庫(kù)網(wǎng)狀型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)-39-層次型數(shù)據(jù)庫(kù)層次型數(shù)據(jù)庫(kù)是以層次型的結(jié)構(gòu)來(lái)構(gòu)建的數(shù)據(jù),它是以樹狀結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)的代表產(chǎn)品IBM開(kāi)發(fā)的IMS數(shù)據(jù)庫(kù)-40-某商場(chǎng)部門員工商品某商場(chǎng)數(shù)據(jù)庫(kù)的層次型結(jié)構(gòu)網(wǎng)狀型數(shù)據(jù)庫(kù)網(wǎng)狀型數(shù)據(jù)庫(kù)網(wǎng)狀模型是層次型數(shù)據(jù)庫(kù)中層次模型的擴(kuò)展,它是以網(wǎng)狀的結(jié)構(gòu)來(lái)表示實(shí)體類型及其實(shí)體之間聯(lián)系的模型。第一個(gè)網(wǎng)狀數(shù)據(jù)庫(kù)管理系統(tǒng):IDS(美國(guó)通用)顧客商品購(gòu)買商品的信息某商場(chǎng)顧客購(gòu)買商品數(shù)據(jù)的網(wǎng)狀型結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)采用二維表的結(jié)構(gòu)來(lái)表示實(shí)體之間關(guān)系的模型,在設(shè)計(jì)和存取數(shù)據(jù)方面都很方便。最早關(guān)系模型1970年由IBM的研究員E.F.Codd博士提出關(guān)系型數(shù)據(jù)庫(kù)主流Oracle、MySQL、SQLServer等-42-文檔型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)主要用來(lái)存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)。在文檔型數(shù)據(jù)庫(kù)中,文檔就是數(shù)據(jù)庫(kù)中存儲(chǔ)的最小單位。文檔格式XML、YAML、JSON和BSON,也包括二進(jìn)制格式如PDF、Office文檔等。代表產(chǎn)品MongoDB、CouchDB、RavenDB等。-43-1.2
使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)1.2.1
什么是E-R圖1.2.2
使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)-44-1.2.1什么是E-R圖E-R圖表示的實(shí)體之間的關(guān)系實(shí)體是一個(gè)客觀存在的對(duì)象,在數(shù)據(jù)庫(kù)設(shè)計(jì)中,實(shí)體指的是表,而表中的列就是描述實(shí)體的屬性實(shí)體集實(shí)體集實(shí)際上就是將多個(gè)類似的實(shí)體聚集到一起形成的-45-1.2.1
什么是E-R圖(續(xù))關(guān)系是指兩個(gè)實(shí)體集之間的關(guān)系。對(duì)于兩個(gè)實(shí)體集之間的關(guān)系可以分為一對(duì)一關(guān)系、一對(duì)多關(guān)系以及多對(duì)多關(guān)系-46-1.2.2使用E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)-47-顧客實(shí)體集與商品實(shí)體集的E-R圖1.3Oracle數(shù)據(jù)庫(kù)的發(fā)展從1977年至今,開(kāi)發(fā)了多個(gè)版本。近幾年的版本如下:8.0:1997年,該版本也稱為對(duì)象關(guān)系數(shù)據(jù)庫(kù),支持多個(gè)新的數(shù)據(jù)類型。此外,在該版本中還支持了大表的分區(qū)8i:1999年,支持Internet計(jì)算9i:2001年,在該版本中引入了RAC(OracleRealApplicationClusters,Oracle實(shí)時(shí)應(yīng)用集群),能夠使多個(gè)實(shí)例同時(shí)訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)-48-1.3Oracle數(shù)據(jù)庫(kù)的發(fā)展(續(xù))10g:2003年,g代表Grid,支持網(wǎng)格計(jì)算、支持自動(dòng)管理11g:2009年,擴(kuò)展網(wǎng)格計(jì)算優(yōu)勢(shì)12c:2013年,c代表Cloud,該版本支持了JSON格式文檔的存儲(chǔ),并且支持使用SQL或REST接口查詢JSON數(shù)據(jù)19c:2019年,長(zhǎng)期支持版本(LTS),增強(qiáng)自動(dòng)化與安全性21c:2022年,首先發(fā)布的是Linux版本23ai:2024年,專注于數(shù)據(jù)與AI、數(shù)據(jù)與開(kāi)發(fā)以及數(shù)據(jù)與關(guān)鍵任務(wù)-49-1.4
Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)1.4.3Oracle數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)1.4.4Oracle數(shù)據(jù)庫(kù)的進(jìn)程結(jié)構(gòu)-50-1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)物理存儲(chǔ)結(jié)構(gòu)指實(shí)際的文件存儲(chǔ)形式數(shù)據(jù)文件數(shù)據(jù)文件的擴(kuò)展名是.dbf,主要用來(lái)存放系統(tǒng)數(shù)據(jù)、數(shù)據(jù)字典、索引、表等信息臨時(shí)文件也是數(shù)據(jù)文件,通常也是在創(chuàng)建Oracle數(shù)據(jù)庫(kù)時(shí)來(lái)指定的,臨時(shí)文件都存放在臨時(shí)表空間中-51-1.4.1Oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)(續(xù))控制文件控制文件的擴(kuò)展名是.ctl,是一個(gè)二進(jìn)制文件。它主要用來(lái)保存數(shù)據(jù)庫(kù)中的物理結(jié)構(gòu)信息。聯(lián)機(jī)重做日志文件可以說(shuō)是一個(gè)包含數(shù)據(jù)變更記錄的文件集合,它的擴(kuò)展名就是.log。-52-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)塊存儲(chǔ)空間中能夠使用或分配的最小的邏輯存儲(chǔ)單位。區(qū)區(qū)是由一個(gè)或多個(gè)數(shù)據(jù)塊構(gòu)成的。區(qū)是通過(guò)一次分配獲得特定數(shù)量的相鄰數(shù)據(jù)塊,用于存儲(chǔ)特定類型的信息。段是由一個(gè)或多個(gè)區(qū)構(gòu)成的。-53-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)(續(xù))表空間一個(gè)表空間是由多個(gè)段構(gòu)成的。表空間是邏輯存儲(chǔ)結(jié)構(gòu)中最大的存儲(chǔ)單位,它是與物理存儲(chǔ)結(jié)構(gòu)中的數(shù)據(jù)文件對(duì)應(yīng)的。-54-1.4.2Oracle數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)(續(xù))邏輯存儲(chǔ)單位的關(guān)系表空間段區(qū)塊-55-1.4.3Oracle數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)系統(tǒng)全局區(qū)(SGA)數(shù)據(jù)庫(kù)緩沖區(qū)重做日志緩沖區(qū)共享池大型池Java池?cái)?shù)據(jù)流池固定的SGA
程序共享區(qū)(PGA)SQL工作區(qū)會(huì)話內(nèi)存私有SQL區(qū)用戶全局區(qū)(UGA)軟件代碼區(qū)-56-1.4.4Oracle數(shù)據(jù)庫(kù)的進(jìn)程結(jié)構(gòu)客戶端進(jìn)程也稱為用戶進(jìn)程,當(dāng)運(yùn)行一個(gè)應(yīng)用程序后,操作系統(tǒng)就會(huì)創(chuàng)建一個(gè)客戶端進(jìn)程來(lái)運(yùn)行應(yīng)用程序服務(wù)端進(jìn)程是用來(lái)接收客戶端進(jìn)程中的請(qǐng)求的,也就是用于建立客戶端與數(shù)據(jù)庫(kù)的通信后臺(tái)進(jìn)程所謂后臺(tái)進(jìn)程實(shí)際是一種特殊的服務(wù)器進(jìn)程,用于完成數(shù)據(jù)庫(kù)的后臺(tái)管理工作-57-習(xí)題1.填空題1)Oracle數(shù)據(jù)庫(kù)屬于_____________類型數(shù)據(jù)庫(kù)。2)E-R圖是用于描述____________和___________之間的關(guān)系的模型。3)在Oracle數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)文件包括___________________________。-58-習(xí)題2.簡(jiǎn)答題1)分別說(shuō)明Oracle8i中的i,Oracle10g中的g,以及Oracle12c中的c都代表什么?2)簡(jiǎn)述Oracle數(shù)據(jù)庫(kù)的邏輯存儲(chǔ)結(jié)構(gòu)3)Oracle數(shù)據(jù)庫(kù)中的常見(jiàn)的后臺(tái)進(jìn)程都包含什么?(列舉3個(gè))-59-第2章安裝Oracle數(shù)據(jù)庫(kù)目錄在Windows下安裝Oracle
數(shù)據(jù)庫(kù)卸載Oracle數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)自帶工具介紹
2.1在Windows下安裝Oracle數(shù)據(jù)庫(kù)
2.1.1安裝條件2.1.2安裝過(guò)程-63-
2.1.1安裝條件
1、軟件條件
2、硬件條件
-64-2.2.2安裝過(guò)程1、下載軟件在官網(wǎng)上下載Oracle12c數(shù)據(jù)庫(kù)的安裝文件,官網(wǎng)的地址是:
/-65-2.2.2安裝過(guò)程(續(xù))2、配置安全更新-66-2.2.2安裝過(guò)程(續(xù))3、選擇安裝選項(xiàng)創(chuàng)建和配置數(shù)據(jù)庫(kù)-67-2.2.2安裝過(guò)程(續(xù))4、選擇安裝數(shù)據(jù)庫(kù)所在的系統(tǒng)桌面類-68-2.2.2安裝過(guò)程(續(xù))5、典型安裝配置-69-2.2.2安裝過(guò)程(續(xù))6、先決條件檢查-70-2.2.2安裝過(guò)程(續(xù))7、顯示概要信息-71-2.2.2安裝過(guò)程(續(xù))8、安裝產(chǎn)品-72-2.2.2安裝過(guò)程(續(xù))9、完成安裝-73-
2.2卸載Oracle數(shù)據(jù)庫(kù)
-74-
2.3Oracle12c數(shù)據(jù)庫(kù)自帶工具介紹
2.3.1SQLPlus2.3.2SQLDeveloper2.3.3企業(yè)管理器(OEM)-75-
2.3.1SQLPlus
-76-
2.3.2SQLDeveloper-77-
2.3.3企業(yè)管理器(OEM)
https://localhost:5500/em/login-78-
習(xí)題
1.問(wèn)答題1)安裝Oracle數(shù)據(jù)庫(kù)時(shí),計(jì)算機(jī)的操作系統(tǒng)需要滿足的條件是什么?2)卸載Oracle12c數(shù)據(jù)庫(kù)時(shí),使用的批處理文件在什么位置?3)在哪個(gè)文件查找到SQLDeveloper中所需的連接配置?-79-
習(xí)題
2.操作題1)安裝并卸載Oracle12c數(shù)據(jù)庫(kù)2)在SQLDeveloper工具中新建連接,并測(cè)試3)在SQLPlus中使用CONNECT命令連接數(shù)據(jù)庫(kù)-80-第3章數(shù)據(jù)庫(kù)管理、配置與維護(hù)目錄管理Oracle12c數(shù)據(jù)庫(kù)配置數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)服務(wù)維護(hù)表空間
3.1管理Oracle12c數(shù)據(jù)庫(kù)
3.1.1使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)3.1.2刪除數(shù)據(jù)庫(kù)
3.1.1使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)
DBCA:指Oracle12c中自帶的一個(gè)數(shù)據(jù)庫(kù)配置工具DatabaseConfigurationAssistant。3.1.1使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)(續(xù))1、打開(kāi)DBCA工具3.1.1使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)(續(xù))2、創(chuàng)建數(shù)據(jù)庫(kù)3.1.1使用DBCA創(chuàng)建數(shù)據(jù)庫(kù)(續(xù))3、完成數(shù)據(jù)庫(kù)創(chuàng)建
1、打開(kāi)DBCA工具并選擇刪除數(shù)據(jù)庫(kù)2、選擇要?jiǎng)h除的數(shù)據(jù)庫(kù)3.1.2刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)3.2配置數(shù)據(jù)庫(kù)3.2.1配置監(jiān)聽(tīng)服務(wù)3.2.2啟動(dòng)和停止監(jiān)聽(tīng)服務(wù)3.2.3配置網(wǎng)絡(luò)服務(wù)名配置監(jiān)聽(tīng)程序1、打開(kāi)NetConfigurationAssistant工具2、選擇添加監(jiān)聽(tīng)程序3、添加監(jiān)聽(tīng)程序名稱4、選擇協(xié)議5、設(shè)置協(xié)議的端口號(hào)6、監(jiān)聽(tīng)程序配置完成
3.2.1配置監(jiān)聽(tīng)服務(wù)配置監(jiān)聽(tīng)服務(wù)1、打開(kāi)NetManager工具2、選擇監(jiān)聽(tīng)程序3、添加數(shù)據(jù)庫(kù)4、保存配置
OracleNetManager工具3.2.1配置監(jiān)聽(tīng)服務(wù)啟動(dòng)監(jiān)聽(tīng)服務(wù)1、在windows操作系統(tǒng)的服務(wù)中啟動(dòng)
2、使用命令啟動(dòng)3.2.2啟動(dòng)和停止監(jiān)聽(tīng)服務(wù)停止監(jiān)聽(tīng)服務(wù)1、在windows操作系統(tǒng)的服務(wù)中停止
2、使用命令停止3.2.2啟動(dòng)和停止監(jiān)聽(tīng)服務(wù)1、打開(kāi)NetConfigurationAssistant工具2、選擇網(wǎng)絡(luò)服務(wù)名的操作3、添加要連接的數(shù)據(jù)庫(kù)名或服務(wù)名4、選擇協(xié)議5、輸入主機(jī)名和端口號(hào)6、測(cè)試網(wǎng)絡(luò)服務(wù)名7、填寫網(wǎng)絡(luò)服務(wù)名3.2.3配置網(wǎng)絡(luò)服務(wù)名1、打開(kāi)NetConfigurationAssistant工具本地網(wǎng)絡(luò)服務(wù)名配置3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))2、選擇網(wǎng)絡(luò)服務(wù)名的操作添加服務(wù)名3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))3、添加要連接的數(shù)據(jù)庫(kù)名或服務(wù)名服務(wù)名3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))4、選擇協(xié)議選擇協(xié)議3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))5、輸入主機(jī)名和端口號(hào)主機(jī)名端口號(hào)3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))6、測(cè)試網(wǎng)絡(luò)服務(wù)名3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))7、填寫網(wǎng)絡(luò)服務(wù)名網(wǎng)絡(luò)服務(wù)名3.2.3配置網(wǎng)絡(luò)服務(wù)名(續(xù))3.3.1啟動(dòng)和停止數(shù)據(jù)庫(kù)1、啟動(dòng)數(shù)據(jù)庫(kù)2、停止數(shù)據(jù)庫(kù)3.3.2更改數(shù)據(jù)庫(kù)服務(wù)的啟動(dòng)類型1、打開(kāi)查看服務(wù)界面2、查看數(shù)據(jù)庫(kù)服務(wù)的屬性3、更改服務(wù)的啟動(dòng)類型3.3管理數(shù)據(jù)庫(kù)服務(wù)1、啟動(dòng)數(shù)據(jù)庫(kù)啟動(dòng)數(shù)據(jù)庫(kù)3.3.1啟動(dòng)和停止數(shù)據(jù)庫(kù)2、停止數(shù)據(jù)庫(kù)停止數(shù)據(jù)庫(kù)3.3.1啟動(dòng)和停止數(shù)據(jù)庫(kù)(續(xù))1、打開(kāi)查看服務(wù)界面3.3.2更改數(shù)據(jù)庫(kù)服務(wù)的啟動(dòng)類型2、查看數(shù)據(jù)庫(kù)服務(wù)的屬性啟動(dòng)類型3.3.2更改數(shù)據(jù)庫(kù)服務(wù)的啟動(dòng)類型3、更改服務(wù)的啟動(dòng)類型更改啟動(dòng)類型為“手動(dòng)”3.3.2更改數(shù)據(jù)庫(kù)服務(wù)的啟動(dòng)類型3.4維護(hù)表空間3.4.1創(chuàng)建表空間3.4.2設(shè)置默認(rèn)表空間與臨時(shí)表空間3.4.3修改表空間3.4.4刪除表空間創(chuàng)建表空間的語(yǔ)法--[TEMPORARY]:在創(chuàng)建表空間時(shí)加上該關(guān)鍵字,用于創(chuàng)建臨時(shí)表空間,否則創(chuàng)建的就是永久表空間--tablespace_name:表空間的名稱3.4.1創(chuàng)建表空間--TEMPFILE|DATAFILE:創(chuàng)建表空間中的臨時(shí)文件或數(shù)據(jù)文件。--AUTOEXTENDOFF:不允許自動(dòng)擴(kuò)展數(shù)據(jù)文件大小。--AUTOEXTENDON:允許擴(kuò)展數(shù)據(jù)文件的大小。--ONLINE|OFFLINE:選擇ONLINE時(shí),表空間創(chuàng)建完成后可以直接使用;選擇OFFLINE時(shí),表空間創(chuàng)建完成后暫時(shí)不能使用,只有將表空間狀態(tài)更改成ONLINE狀態(tài)才能使用。默認(rèn)情況下,創(chuàng)建完表空間就是ONLINE狀態(tài)。3.4.1創(chuàng)建表空間(續(xù))【例3-1】創(chuàng)建一個(gè)名為tablespace_test的表空間
CREATETABLESPACEtablespace_testDATAFILE'testdatafile.dbf'size10MAUTOEXTENDOFF;3.4.1創(chuàng)建表空間(續(xù))設(shè)置默認(rèn)表空間與臨時(shí)表空間語(yǔ)法
其中,DEFAULT關(guān)鍵字代表的是默認(rèn)表空間,默認(rèn)表空間必須是永久表空間;TEMPORARY關(guān)鍵字代表的是臨時(shí)表空間。3.4.2設(shè)置默認(rèn)表空間與臨時(shí)表空間修改表空間語(yǔ)法--ADD子句:用于添加數(shù)據(jù)文件。--DROP子句:用于刪除數(shù)據(jù)文件,但是不能刪除表空間中第一個(gè)數(shù)據(jù)文件。--RENAME子句:用于重命名表空間。3.4.3修改表空間【例3-2】在表空間tablespace_test中添加一個(gè)名為test_datafile1的數(shù)據(jù)文件。
ALTERTABLESPACEtablespace_testADDDATAFILE'test_datafile1.dbf'SIZE1M;3.4.3修改表空間(續(xù))刪除表空間語(yǔ)法其中:--INCLUDINGCONTENTS子句:用于將表空間中的數(shù)據(jù)庫(kù)對(duì)象也一并刪除,如果在其后面加上了ANDDATAFILES子句,用于將表空間中的數(shù)據(jù)文件也一并刪除;如果在其后面加上了KEEPDATAFILES子句,表示在刪除表空間之后,保留表空間中的數(shù)據(jù)文件。--CASCADECONSTRAINTS子句:用于刪除表空間中的數(shù)據(jù)文件,但是只能刪除表空間中最新創(chuàng)建的數(shù)據(jù)文件。3.4.4刪除表空間【例3-3】刪除表空間tablespace_test的同時(shí)也將其中的數(shù)據(jù)文件一并刪除。DROPTABLESPACEtablespace_testINCLUDINGCONTENTSANDDATAFILES;3.4.4刪除表空間(續(xù))
習(xí)題
1.填空題1)Oracle數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)服務(wù)文件保存在_____文件中。2)Oracle數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)配置文件保存在______文件中。3)一個(gè)表空間中至少有____個(gè)數(shù)據(jù)文件。2.簡(jiǎn)答題1)如何開(kāi)啟和關(guān)閉數(shù)據(jù)庫(kù)的服務(wù)?2)如何配置網(wǎng)絡(luò)服務(wù)名?3)system表空間的作用是什么?可以將其直接刪除嗎?
習(xí)題
3.操作題根據(jù)題目要求完成如下操作1)創(chuàng)建一個(gè)名為DB_TEST的數(shù)據(jù)庫(kù)2)在該數(shù)據(jù)庫(kù)中分別創(chuàng)建一個(gè)永久表空間TS_TEST和臨時(shí)表空間TS_TEMP3)將system用戶的默認(rèn)表空間設(shè)置成TS_TEST4)在TS_TEST表空間中添加一個(gè)數(shù)據(jù)文件5)刪除TS_TEST和TS_TEMP表空間,并將其中的數(shù)據(jù)文件也一并刪除
第4章表管理目錄SQL分類數(shù)據(jù)類型創(chuàng)建表修改表刪除表表約束4.1SQL語(yǔ)言分類
數(shù)據(jù)定義語(yǔ)言(DDL)
數(shù)據(jù)操縱語(yǔ)言(DML)
數(shù)據(jù)查詢語(yǔ)言(DQL)
事務(wù)控制語(yǔ)言(TCL)
數(shù)據(jù)控制語(yǔ)言(DCL)4.2.1數(shù)值型4.2.2字符型4.2.3日期型4.2.4其他數(shù)據(jù)類型
4.2數(shù)據(jù)類型
數(shù)值型就是用來(lái)存放數(shù)字的數(shù)據(jù)類型,包括整數(shù)和小數(shù)。
NUMBERFLOATBINARY_FLOATBINARY_DOUBLE
4.2.1數(shù)值型
在數(shù)據(jù)庫(kù)中存放的值,字符型的值是最多的,比如,在商品信息表中,存放商品的名稱、產(chǎn)地、類型等信息時(shí),都需要字符型的值。
VARCHAR2NVARCHAR2LONGCHAR
4.2.2字符型
日期型是用于存放日期數(shù)據(jù)的,包括年、月、日、時(shí)、分、秒、毫秒。DATETIMESTAMP
4.2.3日期型
存放數(shù)據(jù)量比較大的數(shù)據(jù)時(shí),可以選用BLOB或CLOB類型存放文件時(shí),可以選用BFILE類型
4.2.4其他數(shù)據(jù)類型
創(chuàng)建表的語(yǔ)法其中:--table_name:表名--column_namen:列名4.3創(chuàng)建表
--datatype:指定列的數(shù)據(jù)類型--default:設(shè)置列的默認(rèn)值--constraint:約束--tablespace:表空間4.3創(chuàng)建表(續(xù))
【例4-1】在system用戶的默認(rèn)表空間中創(chuàng)建物品評(píng)價(jià)信息表(product_rating)。
4.3創(chuàng)建表(續(xù))
CREATETABLEproduct_rating(idvarchar2(20),namevarchar2(20),ratingnumber(2,1),contentsvarchar2(800),ratingtimedate,useridnumber(6));4.4.1修改列4.4.2添加列4.4.3刪除列4.4.4重命名列4.4.5重命名表4.4修改表
修改表的語(yǔ)法其中:--ADD:向表中添加列。--MODIFY:修改列。--DROPCOLUMN:刪除表中的列。4.4修改表(續(xù))
【例4-2】將物品評(píng)價(jià)表(product_rating)中的評(píng)價(jià)內(nèi)容列(contents)的長(zhǎng)度改為100。4.4.1修改列
ALTERTABLEproduct_ratingMODIFYcontentsvarchar2(100);【例4-3】向物品評(píng)價(jià)表(product_rating)添加一列“購(gòu)買次數(shù)(times)”。
ALTERTABLEproduct_ratingADDtimesnumber(4);4.4.2添加列
4.4.3刪除列【例4-4】將物品評(píng)價(jià)表(product_rating)中的購(gòu)買次數(shù)(times)列刪除。ALTERTABLEproduct_ratingDROPCOLUMNtimes;重命名列的語(yǔ)法ALTERTABLEtable_nameRENAMECOLUMNold_nameTOnew_name;其中,old_name是原來(lái)的表名,new_name是新表名。4.4.4重命名列
【例4-5】將物品評(píng)價(jià)表(product_rating)中的“ratingtime”列改成“rating_time”。
ALTERTABLEproduct_ratingRENAMECOLUMNratingtimeTOrating_time;4.4.4重命名列(續(xù))
重命名表的語(yǔ)法(1)RENAMEold_tableTOnew_table(2)ALTERTABLEold_tableRENAMETOnew_table
其中:old_table是原來(lái)的表名,new_table是新表名。4.4.5重命名表【例4-6】分別使用2種方法將物品評(píng)價(jià)表(product_rating)重命名為new_product_rating。
ALTERTABLEproduct_ratingRENAMETOnew_product_rating;4.4.5重命名表(續(xù))RENAMEproduct_ratingTOnew_product_rating;4.5刪除表4.5.1刪除表4.5.2截?cái)啾?.5.1刪除表刪除表的語(yǔ)法
DROPTABLEtable_name[CASCADECONSTRAINTS];其中:table_name是表名
[CASCADECONSTRAINTS]是級(jí)聯(lián)刪除約束4.5.1刪除表(續(xù))【例4-7】將物品評(píng)價(jià)表(product_rating)刪除。DROPTABLEproduct_ratingCASCADECONSTRAINTS;4.5.2截?cái)啾斫財(cái)啾淼恼Z(yǔ)法TRUNCATETABLEtable_name;
其中,table_name是表名。【例4-8】截?cái)辔锲吩u(píng)價(jià)表(product_rating)。
TRUNCATETABLEproduct_rating;4.6表約束4.6.1主鍵約束4.6.2非空約束4.6.3唯一約束4.6.4檢查約束4.6.5外鍵約束4.6.6修改約束4.6.1主鍵約束主鍵約束在每個(gè)表中只能有一個(gè),但是可以由多個(gè)列構(gòu)成一個(gè)主鍵約束,它的主要作用是用來(lái)標(biāo)識(shí)記錄的唯一性。4.6.1主鍵約束(續(xù))添加主鍵約束
在列級(jí)添加主鍵約束,語(yǔ)法如下所示。
在表級(jí)添加主鍵約束,語(yǔ)法如下所示。4.6.1主鍵約束(續(xù))【例4-9】創(chuàng)建物品評(píng)價(jià)表(product_rating),并將編號(hào)id列設(shè)置為主鍵。CREATETABLEproduct_rating(idvarchar2(20)PRIMARYKEY,namevarchar2(20),ratingnumber(2,1),contentsvarchar2(800),ratingtimedate,useridnumber(6));4.6.1主鍵約束(續(xù))修改主鍵約束語(yǔ)法其中:--constraint_name:約束名--column_namen:列名
4.6.1主鍵約束(續(xù))【例4-10】假設(shè)已經(jīng)存在物品評(píng)價(jià)表(product_rating),現(xiàn)為其編號(hào)列(id)添加主鍵約束。ALTERTABLEproduct_ratingADDCONSTRAINTpk_idPRIMARYKEY(id);
4.6.1主鍵約束(續(xù))刪除主鍵約束(1)使用通用的方式刪除ALTERTABLEtable_nameDROPCONSTRAINTconstraint_name;(2)使用專用的方式刪除ALTERTABLEtable_nameDROPPRIMARYKEY;
4.6.1主鍵約束(續(xù))【例4-11】將物品評(píng)價(jià)表(product_rating)中的主鍵約束刪除。ALTERTABLEproduct_ratingDROPCONSTRAINTpk_id;
4.6.2非空約束添加非空約束的語(yǔ)法
NOTNULL關(guān)鍵字,就為該列設(shè)置了非空約束。4.6.2非空約束(續(xù))修改表時(shí)添加非空約束的語(yǔ)法
--直接使用修改列的語(yǔ)句即可為列添加非空約束。這里,如果將NOTNULL更改成NULL,那么,就為該列取消了非空約束。
4.6.3唯一約束唯一約束用UNIQUE關(guān)鍵字表示,其作用就是確保該列的值唯一。它與主鍵約束一樣,都能夠確保列值的唯一性,但是唯一約束,可允許列中有一個(gè)值是空值。唯一約束的設(shè)置方法與主鍵約束類似。
4.6.4檢查約束檢查約束用CHECK關(guān)鍵字表示,其作用是檢查每一列輸入的值是否能滿足表的需求。檢查約束的設(shè)置方法與主鍵約束類似。
4.6.5外鍵約束外鍵約束是唯一一個(gè)涉及2張表之間關(guān)系的約束。它的作用就保證數(shù)據(jù)的一致性。
添加外鍵約束的語(yǔ)法
(1)在列級(jí)設(shè)置外鍵約束
這里,table_name2是主表,column_name是列名,是table_name2表中的主鍵。4.6.5外鍵約束(續(xù))添加外鍵約束的語(yǔ)法(2)在列級(jí)設(shè)置外鍵約束
這里,F(xiàn)OREIGNKEY(column_name)中的列名是table_name1表中的列。[ONDELETECASCADE]子句的作用是將table_name2表中的數(shù)據(jù)刪除后,也將table_name1中的相應(yīng)數(shù)據(jù)一并刪除。4.6.5外鍵約束(續(xù))修改表時(shí)添加外鍵約束的語(yǔ)法
刪除外鍵約束的語(yǔ)法與刪除主鍵約束的通用語(yǔ)法一樣,請(qǐng)參考刪除主鍵約束的語(yǔ)法。4.6.6修改約束1、修改約束名稱ALTERTABLEtable_nameRENAMECONSTRAINTold_nameTOnew_name;其中,old_name是原來(lái)的約束名稱,new_name是新約束名稱。2、修改約束狀態(tài)ALTERTABLEtable_nameDISABLE|ENABLECONSTRAINTconstraint_name;其中,DISABLE代表的是禁用,ENABLE代表的是啟用。習(xí)題1.填空題1)SQL語(yǔ)句可以分_______________________。2)創(chuàng)建表、修改表以及刪除表的語(yǔ)句都屬于SQL語(yǔ)句中的_______________語(yǔ)句。3)約束包括_____________________________。2.簡(jiǎn)答題1)刪除表與截?cái)啾淼膮^(qū)別是什么?2)重命名表中的列,語(yǔ)句是什么?3)主鍵約束與唯一約束的區(qū)別是什么?習(xí)題3.操作題根據(jù)如下要求,創(chuàng)建表和相關(guān)約束。1)創(chuàng)建餐品信息表(foodinfo),包括餐品編號(hào)、名稱、價(jià)格、類型編號(hào)等。為餐品編號(hào)設(shè)置主鍵約束。2)創(chuàng)建餐品類型表(typeinfo),包括類型編號(hào)、類型名稱。為類型編號(hào)列設(shè)置主鍵約束。3)在餐品信息表中,將類型編號(hào)列與餐品信息表中的類型編號(hào)列設(shè)置外鍵約束。
第5章操作表中的數(shù)據(jù)目錄向表中添加數(shù)據(jù)修改表中的數(shù)據(jù)刪除表中的數(shù)據(jù)
5.1向表中添加數(shù)據(jù)5.1.1基本語(yǔ)法5.1.2向表中添加指定的數(shù)據(jù)
5.1.3向表中添加特殊值5.1.4復(fù)制表中的數(shù)據(jù)向表中添加數(shù)據(jù)的語(yǔ)法:INSERTINTO:關(guān)鍵詞,用于向表中添加數(shù)據(jù)。table_name:表名。column_list:列集合,此參數(shù)可以省略。VALUES:關(guān)鍵詞,它后面的括號(hào)中列出了要增加的數(shù)據(jù),每個(gè)數(shù)據(jù)之間用逗號(hào)隔開(kāi),并且數(shù)據(jù)類型要與column_list中列出列的類型一一對(duì)應(yīng)。
5.1.1基本語(yǔ)法
5.1.2向表中添加指定的數(shù)據(jù)
【例5-1】添加書上表5-2所示的數(shù)據(jù)到電影信息表(movieinfo)中。
5.1.3向表中插入特殊值
所謂特殊值就是指這些值有可能是數(shù)據(jù)庫(kù)中的關(guān)鍵字或者是一些特殊字符,不能夠直接作為數(shù)值型或字符型直接插入的值,比如,NULL值、“&”符號(hào)等。(1)添加NULL值
5.1.3向表中插入特殊值
(2)特殊符號(hào)
--&符號(hào):有2種方法可以添加,一種是在SQLPlus中將識(shí)別自定義變量符號(hào)的設(shè)置關(guān)閉,一種是直接使用ASCII碼來(lái)插入,chr(38)就代表的是“&”符號(hào)。--單引號(hào):有2種方法可以添加,一種是轉(zhuǎn)義字符,一種是使用ASCII碼來(lái)添加,chr(39)代表的是單引號(hào)。
5.1.4復(fù)制表中的數(shù)據(jù)復(fù)制表中數(shù)據(jù)的語(yǔ)法
其中:table1:是準(zhǔn)備增加數(shù)據(jù)的表名column_list1:是表中的列名,放在括號(hào)中,中間用逗號(hào)隔開(kāi)column_list2:表示查詢的列名,多個(gè)列名之間用逗號(hào)隔開(kāi)table2:數(shù)據(jù)來(lái)源表的表名。
5.2修改表中的數(shù)據(jù)5.2.1基本語(yǔ)法5.2.2修改表中的全部數(shù)據(jù)5.2.3按條件修改表中的數(shù)據(jù)5.2.1基本語(yǔ)法修改表中數(shù)據(jù)的語(yǔ)法其中:UPDATE:關(guān)鍵字,用于修改數(shù)據(jù)。table_name:表名。SET:關(guān)鍵字,用于設(shè)置表中的值。column1=value1:column1指的是表中的列名,value1指的是要給表中的列設(shè)置的新值。[WHEREcondition;]:WHERE子句是可選的,它作為指定修改條件時(shí)使用。5.2.2修改表中的全部數(shù)據(jù)【例5-2】將電影信息表(movieinfo)中的電影名稱前面都加上一個(gè)“*”。5.2.3按條件修改表中的數(shù)據(jù)【例5-3】將電影信息表(movieinfo)中全部“劇情”類的影片名稱前面加上“#”。
5.3刪除表中的數(shù)據(jù)5.3.1基本語(yǔ)法5.3.2刪除表中的全部數(shù)據(jù)5.3.3按條件刪除數(shù)據(jù)5.3.1基本語(yǔ)法刪除表的語(yǔ)法其中:--DELETE[FROM]:關(guān)鍵字,刪除表中數(shù)據(jù)時(shí)使用。FROM可以省略。table_name:表名。[WHEREcondition]:WHERE子句是可選的,它作為指定刪除條件時(shí)使用。5.3.2刪除表中的全部數(shù)據(jù)【例5-3】將電影信息表(movieinfo)中的數(shù)據(jù)復(fù)制到new_movieinfo中,然后將表new_movieinfo中的數(shù)據(jù)全部刪除。5.3.3按條件刪除數(shù)據(jù)
【例5-4】刪除電影信息表(movieinfo)中上映時(shí)間是“2014.11”的電影。
習(xí)題1.填空題1)DML語(yǔ)句包含_____、______、______語(yǔ)句。2)關(guān)閉識(shí)別自定義變量的命令是____________________________。3)刪除表中全部數(shù)據(jù)可以使用_____________和____________語(yǔ)句。2.簡(jiǎn)答題1)復(fù)制表數(shù)據(jù)有哪些方法?2)添加特殊字符有哪些方法?3)如何向表中添加NULL值或特殊字符?習(xí)題3.操作題基于本章中使用的電影信息表(movieinfo),完成如下操作。1)向表中任意添加2條數(shù)據(jù)。2)復(fù)制電影信息表的所有數(shù)據(jù)到movieinfo_test表中。3)修改movieinfo_test表,將所有電影的上映日期更改成“2022.2”。4)修改movieinfo_test表,將“動(dòng)作”類型的電影,影片名稱后面加上“動(dòng)作”,并將內(nèi)容簡(jiǎn)介修改成“無(wú)”。5)刪除movieinfo_test表中所有“動(dòng)作”類型的電影。
第6章函數(shù)目錄系統(tǒng)函數(shù)自定義函數(shù)
6.1系統(tǒng)函數(shù)6.1.1數(shù)值函數(shù)6.1.2字符函數(shù)6.1.3日期函數(shù)6.1.4轉(zhuǎn)換函數(shù)6.1.5聚合函數(shù)6.1.6其他函數(shù)
6.1.1數(shù)值函數(shù)
1、絕對(duì)值函數(shù)(ABS)用ABS(n)來(lái)表示,n代表輸入的數(shù),n的數(shù)據(jù)類型要求是數(shù)值類型的,也可以是能隱式轉(zhuǎn)換成數(shù)值類型的值。2、取余函數(shù)(MOD)取余函數(shù)用MOD(n1,n2)表示,返回的結(jié)果是n1除以n2的余數(shù),其中n1和n2這個(gè)參數(shù)的類型必須是數(shù)值類型或是可以隱式轉(zhuǎn)成數(shù)值類型。
6.1.1數(shù)值函數(shù)(續(xù))
3、取整函數(shù)(CEIL、FLOOR)CEIL(n)和FLOOR(n)函數(shù)是用于取整的,作用分別是用于返回大于等于輸入?yún)?shù)的最小整數(shù)和小于等于輸入?yún)?shù)的最大整數(shù)。4、四舍五入函數(shù)(ROUND)ROUND(n,i)是四舍五入函數(shù),在參數(shù)列表中有2個(gè)參數(shù),第一個(gè)參數(shù)用于輸入需要四舍五入的值;第二參數(shù)是用于指定四舍五入的位置,可以為正數(shù)、負(fù)數(shù)、0。
6.1.1數(shù)值函數(shù)(續(xù))
5、冪函數(shù)(POWER)冪函數(shù)的表示形式是POWER(n,i)函數(shù),這里,n和i都是數(shù)值類型的值,或者可以隱式轉(zhuǎn)換成數(shù)值類型的數(shù)據(jù)。6、求平方根函數(shù)(SQRT)用SQRT(n)表示,n是數(shù)值類型的正數(shù),或者可以隱式轉(zhuǎn)換成正數(shù)的數(shù)據(jù)類型。
6.1.1數(shù)值函數(shù)(續(xù))
7、三角函數(shù)SIN(n)正弦函數(shù)ASIN(n)反正弦函數(shù)TAN(n)正切函數(shù)ATAN(n)反正切函數(shù)COS(n)余弦函數(shù)ACOS(n)反余弦函數(shù)等三角函數(shù)中的參數(shù)n的值是數(shù)值型的,或者是能隱式轉(zhuǎn)換成數(shù)值型的。
6.1.2字符函數(shù)
1、計(jì)算字符長(zhǎng)度函數(shù)(LENGTH)LENGTH(c)用于計(jì)算字符的長(zhǎng)度,c要是字符類型的值,或者是能隱式轉(zhuǎn)化成字符型的值。2、截取字符串函數(shù)(SUBSTR)SUBSTR(c,p[,str_length])是用于截取字符串的函數(shù),前2個(gè)參數(shù)是必填的,后一個(gè)參數(shù)是可選的。c代表的是要截取的字符串;p是整數(shù),代表的是截取的位置;str_length代表的要截取字符串的長(zhǎng)度。
6.1.2字符函數(shù)(續(xù))3、字符大小寫轉(zhuǎn)換函數(shù)(LOWER、UPPER)LOWER(c)將字符轉(zhuǎn)換成小寫UPPER(c)將字符轉(zhuǎn)換成大寫4、首字母大寫轉(zhuǎn)換函數(shù)(INITCAP)INITCAP(c)將字符串的首字母大寫
6.1.2字符函數(shù)(續(xù))5、字符串連接函數(shù)(CONCAT)CONCAT(c1,c2),其中,c1和c2都是字符類型的數(shù)據(jù),返回的結(jié)果就是2個(gè)字符串連接到一起。6、字符串查找函數(shù)(INSTR)INSTR(c1,c2[,n[,m]]),c1是給定的一個(gè)字符串;c2是要在c1中查找的字符串;n表示在c1字符串中第n個(gè)位置查找字符串c2,m用于指定c2是在c1中第m次出現(xiàn)的位置。
6.1.2字符函數(shù)(續(xù))7、替換函數(shù)(REPLACE)REPLACE(c1,c2[,c3]),c1是要進(jìn)行替換的字符串,c2是要替換c1中子字符串,c3是要將c2替換的字符串。8、其他函數(shù)RPAD(c1,n[,c2])、LPAD(c1,n[,c2])TRIM([LEADING|TRAILING|BOTH][c2FROM]c1)RTRIM(c1[,c2])LTRIM(c1[,c2])
6.1.3日期函數(shù)1、獲取系統(tǒng)時(shí)間函數(shù)(SYSDATE)獲取系統(tǒng)時(shí)間的函數(shù)是SYSDATE,不帶任何的參數(shù)。獲取的日期格式是DD-MON-RR,即12-12月-15,表示2015年12月12日。2、添加月份函數(shù)(ADD_MONTHS)ADD_MONTHS(d,n)函數(shù),d是日期類型的值,n是一個(gè)整數(shù),該函數(shù)返回的是在指定的日期d上加上n個(gè)月。如果n為正數(shù),直接加上相應(yīng)的月份;如果n為負(fù)數(shù),就減去相應(yīng)的月份。
6.1.3日期函數(shù)(續(xù))3、返回指定日期所在月的最后一天(LAST_DAY)LAST_DAY(d)函數(shù),用于返回指定日期d所在月的最后一天4、返回指定日期后的周幾(NEXT_DAY)NEXT_DAY(d,c)函數(shù),返回的是日期d所對(duì)應(yīng)的后對(duì)應(yīng)的星期c。
6.1.3日期函數(shù)(續(xù))5、計(jì)算月份差(MONTHS_BETWEEN)MONTHS_BETWEEN(c1,c2)函數(shù),用于計(jì)算c1和c2這2個(gè)日期之間的月份差,即c1-c2,如果c1<c2,那么就會(huì)得到負(fù)數(shù)。6、從日期中提取指定的數(shù)據(jù)(EXTRACT)EXTRACT(c1FROMc2),表示的是從c2日期中取得相應(yīng)的c1部分。
6.1.4轉(zhuǎn)換函數(shù)1、數(shù)值型轉(zhuǎn)換成字符型(TO_CHAR)TO_CHAR(n[,fmt])函數(shù),表示將數(shù)值型的n轉(zhuǎn)化成字符型,fmt參數(shù)是轉(zhuǎn)化成字符型的格式。2、將日期型轉(zhuǎn)化成字符型(TO_CHAR)TO_CHAR(d[,fmt]),其中d是日期型的數(shù)據(jù),fmt是轉(zhuǎn)化成字符的格式,省略fmt后,就轉(zhuǎn)化默認(rèn)的格式。
6.1.4轉(zhuǎn)換函數(shù)(續(xù))3、將字符型數(shù)據(jù)轉(zhuǎn)換成日期型(TO_DATE)TO_DATE(c[,fmt])函數(shù),返回的是將字符型數(shù)據(jù)c按照指定的格式fmt轉(zhuǎn)化成日期型數(shù)據(jù),fmt是可以省略的,省略后就轉(zhuǎn)化默認(rèn)的日期格式。4、將字符型轉(zhuǎn)換成數(shù)值型(TO_CHAR)TO_NUMBER(c[,fmt])函數(shù),用于返回將字符型數(shù)據(jù)c按照f(shuō)mt的格式轉(zhuǎn)換成數(shù)值型數(shù)據(jù),這里,fmt省略后,采用的默認(rèn)的數(shù)值型格式。
6.1.5聚合函數(shù)1、求平均值函數(shù)(AVG)AVG([distinctDISTINCT|ALLall]n1),n1代表一個(gè)數(shù)值類型的值或者是表中數(shù)值類型的列名。2、求最大值、最小值函數(shù)(MAX,MIN)MAX([DISTINCT|ALL]n1)),用于求最大值MIN([DISTINCT|ALL]n1)),用于求最小值參數(shù)的用法與平均值函數(shù)一樣
6.1.5聚合函數(shù)(續(xù))3、計(jì)數(shù)函數(shù)(COUNT)COUNT(*|[DISTINCT][ALL]column_name),計(jì)算查詢結(jié)果中的記錄行數(shù)。4、求和函數(shù)(SUM)SUM([DISTINCT|ALL]n1),計(jì)算n1列的和。
6.1.6其他函數(shù)序號(hào)函數(shù)說(shuō)明1USER該函數(shù)返回當(dāng)前會(huì)話的登錄名。2USERENV(p1)該函數(shù)返回p1參數(shù)所對(duì)應(yīng)的信息。比如,p1為L(zhǎng)ANGUAGE時(shí),可以返回當(dāng)前環(huán)境中用的語(yǔ)言;當(dāng)p1為DB_NAME時(shí),返回當(dāng)前環(huán)境中所使用的數(shù)據(jù)庫(kù)。關(guān)于p1參數(shù)的具體說(shuō)明可以參考Oracle的官方文檔。3NULLIF(p1,p2)p1和p2是2個(gè)字符型的表達(dá)式。該函數(shù)用于比較這2個(gè)表達(dá)式的值,如果相等返回NULL,否則返回第一個(gè)表達(dá)式。4COALESCE(p1[,p2[,p3…]])p1、p2…都是字符型的表達(dá)式。該函數(shù)用于返回第一個(gè)非空表達(dá)式的結(jié)果。5VSIZE(p1)p1是字符型數(shù)據(jù)。該函數(shù)用于返回p1的字節(jié)數(shù)。6.2自定義函數(shù)6.2.1創(chuàng)建函數(shù)6.2.2刪除函數(shù)6.2.1創(chuàng)建函數(shù)創(chuàng)建函數(shù)的語(yǔ)法:其中:[ORREPLACE]:覆蓋同名函數(shù)。schema:模式名稱。fun_name:函數(shù)名稱。parameter1,parameter2…:參數(shù)列表,RETURNdatatype:函數(shù)返回值類型。{IS|AS}:選擇其一即可。后面是函數(shù)中業(yè)務(wù)邏輯部分。declare_section:聲明在業(yè)務(wù)邏輯部分要使用的變量。statements:實(shí)現(xiàn)業(yè)務(wù)邏輯部分的語(yǔ)句,即PL/SQL語(yǔ)句塊。6.2.1創(chuàng)建函數(shù)(續(xù))【例6-1】創(chuàng)建函數(shù)fun。用于輸入商品價(jià)格,然后將其打六折后輸出。CREATEFUNCTIONfun(priceNUMBER)RETURNNUMBERISBEGINRETURNprice*0.6;END;6.2.2刪除函數(shù)刪除函數(shù)的語(yǔ)法:
DROPFUNCTIONfun_name;
這里,fun_name是函數(shù)的名稱。【例6-2】刪除函數(shù)fun。DROPFUNCTIONfun;習(xí)題1.填空題1)數(shù)值函數(shù)主要包括________________________________。(列舉3個(gè))2)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)主要包括_____________________________。(列舉3個(gè))3)獲取系統(tǒng)日期的函數(shù)是_____________。2.簡(jiǎn)答題1)將日期型轉(zhuǎn)換成字符型可以使用哪些方式。2)如何計(jì)算從2015年新年至今的天數(shù)。3)如何查看系統(tǒng)中自定義的函數(shù)?習(xí)題3.操作題1)使用函數(shù)實(shí)現(xiàn),給定字符串“abcdefg123456”,返回g123。2)使用函數(shù)實(shí)現(xiàn),給定數(shù)值“123456.6”,返回“+123,456.6”格式的值。3)創(chuàng)建函數(shù)fun_test,用于實(shí)現(xiàn)將傳入的2個(gè)字符合并后返回。4)將函數(shù)fun_test重新編譯。
第7章查詢目錄運(yùn)算符基本查詢語(yǔ)句帶條件的查詢語(yǔ)句分組查詢多表查詢子查詢7.1運(yùn)算符7.1.1算術(shù)運(yùn)算符7.1.2比較運(yùn)算符7.1.3邏輯運(yùn)算符7.1.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符在聯(lián)合使用時(shí),優(yōu)先級(jí)是先乘除,后加減,先算括號(hào)里面的,并按照從左到右的順序計(jì)算。7.1.2比較運(yùn)算符做比較,得到的結(jié)果是布爾類型的值。比較運(yùn)算符的優(yōu)先級(jí)無(wú)差別,優(yōu)先級(jí)低于算術(shù)運(yùn)算符。7.1.3邏輯運(yùn)算符可以用于連接不同的使用比較運(yùn)算符得到的結(jié)果。優(yōu)先級(jí)由高到低是not、and、or。和其他運(yùn)算符一起使用時(shí),優(yōu)先順序是算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符。7.2基本查詢語(yǔ)句7.2.1基本語(yǔ)法7.2.2查詢表中全部數(shù)據(jù)7.2.3查詢表中指定列7.2.4給列設(shè)置別名7.2.5去除表中重復(fù)記錄7.2.6對(duì)查詢結(jié)果排序7.2.7在查詢中使用表達(dá)式7.2.8使用CASE…WHEN語(yǔ)句查詢7.2.1基本語(yǔ)法基本語(yǔ)法其中:--[DISTINCT|ALL]:是否去除重復(fù)記錄。DISTINCT用于去除重復(fù)記錄,ALL用于查詢?nèi)坑涗洠J(rèn)選項(xiàng)。--select_list:查詢列的列表。在列表中,可以是1到多列,多列之間用逗號(hào)隔開(kāi)。如果要查詢表中的全部列,可以用“*”來(lái)代替。--table_list:查詢的表名。在FROM語(yǔ)句后面,可以放置1到多個(gè)表名,多個(gè)表名之間也是用逗號(hào)隔開(kāi)即可。7.2.1基本語(yǔ)法(續(xù))[WHERE_CLAUSE]:查詢條件。[GROUP_BY_CLAUSE]:分組語(yǔ)句。
[HAVINGconditions]:用在分組語(yǔ)句中的條件判斷。
[ORDER_BY_CLAUSE]:對(duì)查詢結(jié)果排序。7.2.2查詢表中全部數(shù)據(jù)兩種方式:一種方式是在SELECT語(yǔ)句后面列出表中的所有列。一種方式是在SELECT后面只寫一個(gè)“*”,表示查詢所有的列?!纠?-1】查詢課程類型表(typeinfo)中的全部數(shù)據(jù)。7.2.3查詢表中的指定列查詢表中部分列的值,只要將需要查看的列,放置到SELECT關(guān)鍵字后面即可。【例7-2】查詢出課程信息表(course)中課程名稱和課程價(jià)格。7.2.4給列設(shè)置別名AS關(guān)鍵字隔開(kāi)列名和別名在為列設(shè)置別名時(shí),不能給別名加上單引號(hào),否則就會(huì)出現(xiàn)“未找到要求的FROM關(guān)鍵字”的錯(cuò)誤提示7.2.5去除表中的重復(fù)記錄SELECT語(yǔ)句后面加上DISTINCT關(guān)鍵字?!纠?-3】查詢課程信息表,去除重復(fù)的課程名稱。7.2.6對(duì)查詢結(jié)果排序SELECT語(yǔ)句后面加上ORDERBY子句。ORDERBY子句放在SELECT語(yǔ)句的最后。expr:表達(dá)式。position:表中列的位置。column_alias:別名。7.2.6對(duì)查詢結(jié)果排序(續(xù))column_name:列名。ASC|DESC:排序方式。ASC代表的是升序排列,默認(rèn)方式;DESC代表是降序排列。7.2.7在查詢中使用表達(dá)式在查詢中使用表達(dá)式,能夠改變顯示效果,但不會(huì)更新表的數(shù)據(jù)?!纠?-4】查詢課程信息,顯示結(jié)果中的課程價(jià)格打8折。7.2.8使用CASE…WHEN語(yǔ)句查詢針對(duì)不同的值進(jìn)行判斷,可以使用CASE…WHEN語(yǔ)句實(shí)現(xiàn)。語(yǔ)句放到SELECT語(yǔ)句后面第1種形式的CASE…WHEN語(yǔ)句,在CASE語(yǔ)句后面是列名,如果列的值等于value1,那么就顯示result1的值,如果都不滿足,顯示ELSE語(yǔ)句后面的result的值。ELSE語(yǔ)句可以省略。第2種形式的CASE…WHEN語(yǔ)句,被稱為CASE搜索函數(shù),在CASE后面不用寫任何表達(dá)式,在其下面的WHEN語(yǔ)句后面寫上布爾表達(dá)式,如果布爾表達(dá)式的值為真,就顯示then后面的相應(yīng)的result值,如果前面的判斷都不滿足,顯示ELSE語(yǔ)句后面的result值。ELSE語(yǔ)句可以省略。7.3帶條件的查詢語(yǔ)句7.3.1查詢帶NULL值的列7.3.2使用ROWNUM查詢指定數(shù)目的行7.3.3范圍查詢7.3.4模糊查詢7.3.1查詢帶NULL值的列其中,ISNULL是用來(lái)判斷列為NULL的;ISNOTNULL是用來(lái)判斷列不為NULL。查詢表中的列值是否為NULL時(shí),不能使用簡(jiǎn)單的“=”或者是“!=”對(duì)NULL值進(jìn)行判斷7.3.2使用ROWNUM查詢指定數(shù)目的行ROWNUM,用于指定查詢結(jié)果中顯示的行數(shù),它不是某張表的列。一般直接使用ROWNUM<N的形式查詢數(shù)據(jù)ROWNUM與ROWID是不一樣的
7.3.3范圍查詢使用OR運(yùn)算符連接2個(gè)表達(dá)式使用BETWEEN…AND…的形式使用IN關(guān)鍵字
7.3.4模糊查詢使用模糊查詢的關(guān)鍵詞是“LIKE”,它主要與2個(gè)通配符一起使用,實(shí)現(xiàn)模糊查詢的功能:“_”:替代一個(gè)字符。“%”:替代0到多個(gè)字符。【例7-5】查詢課程中以“基礎(chǔ)”為后綴的課程信息。
7.4分組查詢7.4.1在分組查詢中使用聚合函數(shù)7.4.2帶條件的分組查詢7.4.3對(duì)分組查詢結(jié)果排序
7.4.1在分組查詢中使用聚合函數(shù)【例7-6】統(tǒng)計(jì)同名課程的數(shù)量。2026/1/28
7.4.2帶條件的分組查詢?cè)诜纸M查詢中,應(yīng)用條件時(shí),可以使用其專屬的HAVING子句或者使用WHERE語(yǔ)句:HAVING子句是在分組之后對(duì)結(jié)果進(jìn)行篩選。WHERE子句是在先篩選查詢結(jié)果后,再對(duì)其分組查詢。【例7-7】統(tǒng)計(jì)每類課程的平均價(jià)格,并且要求平均價(jià)格大于200。
7.4.3對(duì)分組查詢結(jié)果排序無(wú)論是何種查詢語(yǔ)句,對(duì)結(jié)果的排序子句ORDERBY必須要放置到查詢語(yǔ)句最后,也可以按照多列進(jìn)行排序【例7-8】統(tǒng)計(jì)每類課程的平均價(jià)格,并按平均價(jià)格降序排序。7.5
多表查詢7.5.1笛卡爾積7.5.2內(nèi)連接查詢7.5.3外連接查詢7.5.4交叉連接查詢
7.5.1笛卡爾積笛卡爾積可以理解是在多表查詢中不使用條件語(yǔ)句時(shí)形成的。【例7-9】查詢課程信息表和課程類型信息表。
7.5.2內(nèi)連接查詢分為等值連接和非等值連接等值連接是應(yīng)用到主外鍵連接的表,使用等號(hào)作為連接條件。不等值連接則是在條件中使用比較運(yùn)算符,比如,“>”、“>=”、“<=”、“<”、“!=”、“<>”等等。使用INNERJOIN表示內(nèi)連接,ON后面是表連接的條件,可以依次在FROM后面連接多個(gè)表
7.5.2內(nèi)連接查詢(續(xù))【例7-10】查詢課程信息表和課程類型信息表,顯示課程名稱和類型名稱。
7.5.3外連接查詢左外連接:除了查詢出滿足條件匹配的數(shù)據(jù)外,還能查詢出左表中未匹配的數(shù)據(jù)。右外連接:除了查詢出滿足條件匹配的數(shù)據(jù)外,還能查詢出右表中未匹配的數(shù)據(jù)。全外連接:返回所有匹配成功的記錄,并返回左表未匹配成功的記錄,也返回右表未匹配成功的記錄。LEFT代表左外連接,RIGHT代表由外連接,F(xiàn)ULL代表全連接。在OUTERJOIN左邊的表稱為左表,右邊的表稱為右表。OUTERJOIN代表外連接。
7.5.3外連接查詢(續(xù))【例7-11】使用右外連接查詢課程信息表和課程類型表的信息。7.5.4交叉連接查詢交叉連接查詢會(huì)產(chǎn)生笛卡爾積【例7-12】使用交叉連接,查詢出課程名稱和課程類型名稱。7.6子查詢7.6.1WHERE子句中的子查詢7.6.2FROM子句中的子查詢
7.6.1WHERE子句中的子查詢適用復(fù)雜查詢,表示從子查詢數(shù)據(jù)中再次篩選數(shù)據(jù)=:當(dāng)子查詢只返回一個(gè)值時(shí),where可以用“=”連接子查詢。ANY:表示滿足子查詢結(jié)果的任何一個(gè)。和<,<=搭配,表示小于等于列表中的最大值;而和>,>=配合時(shí)表示大于等于列表中的最小值。SOME:與ANY類似。ALL:表示滿足子查詢結(jié)果的所有結(jié)果。和<,<=搭配,表示小于等于列表中的最小值;而和>,>=配合時(shí)表示大于等于列表中的最大值。IN:表示范圍。
7.6.1WHERE子句中的子查詢(續(xù))【例7-13】查詢“張老師”或者“王老師”所教授的課程信息。
7.6.2FROM子句中的子查詢?cè)贔ROM子句中使用子查詢,可以將FROM后面的查詢作為結(jié)果集來(lái)查詢。在FROM子句中使用的子查詢也可以返回一行、多行。【例7-14】查詢比每一類課程平均價(jià)格高的課程名稱和課程價(jià)格。習(xí)題1.填空題1)模糊查詢使用的關(guān)鍵字是________________。2)外連接包括___________________。3)笛卡爾積是______________________。2.簡(jiǎn)答題1)ROWNUM與ROWID的區(qū)別?2)給表和列設(shè)置別名的方法是什么?3)分組查詢中SELECT子句后面的列需要注意什么?3.操作題使用本章創(chuàng)建的網(wǎng)絡(luò)課程銷售系統(tǒng)所涉及的表,完成如下操作。1)查詢出課程名稱、講師姓名、課程類型以及價(jià)格。2)查詢課程中含有“開(kāi)發(fā)”字樣的課程的授課教師姓名以及課程價(jià)格。3)查詢出每個(gè)講師講授的課程數(shù)目。
第8章視圖與索引目錄管理視圖管理索引
8.1管理視圖
8.1.1視圖的作用與分類8.1.2創(chuàng)建視圖8.1.3刪除視圖8.1.4使用DML語(yǔ)句操作視圖
8.1.1視圖的作用與分類視圖中的數(shù)據(jù)是都來(lái)源于其他表的,通常將這些表稱為源表或基表。視圖的主要作用如下:簡(jiǎn)化SQL語(yǔ)句提升數(shù)據(jù)庫(kù)安全性簡(jiǎn)化用戶權(quán)限的管理8.1.2創(chuàng)建視圖基本語(yǔ)法:--ORREPLACE:創(chuàng)建同名視圖,覆蓋之前創(chuàng)建的同名視圖。--[NO]FORCE:即FORCE或NOFORCE,表示是否強(qiáng)制創(chuàng)建視圖。--WITHREADONLY:設(shè)置視圖只讀。不能夠修改視圖。--WITHCHECKOPTION[CONSTRAINTconstraint]:設(shè)置限制視圖的條件。
8.1.2創(chuàng)建視圖(續(xù))【例8-1】創(chuàng)建單表視圖v_question1,用于查詢面試試題信息表中的題目和答案。8.1.3刪除視圖基本語(yǔ)法
DROPVIEW[schema.]view_name;
這
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年深圳中考語(yǔ)文重難點(diǎn)突破試卷(附答案可下載)
- 2026年深圳中考英語(yǔ)壓軸題突破試卷(附答案可下載)
- 《GA 2188-2024警鞋 移民管理警察夏作訓(xùn)靴》專題研究報(bào)告
- 2025年養(yǎng)老服務(wù)質(zhì)量管理手冊(cè)
- 網(wǎng)絡(luò)安全管理技術(shù)要領(lǐng)
- 列車蓄電池緊急牽引技術(shù)
- ??谛@消防演練
- 2024-2025學(xué)年廣東深圳龍華區(qū)八年級(jí)(上)期中語(yǔ)文試題及答案
- 切爾西酒店介紹
- 專題08 2026議論文主體段寫作指導(dǎo):5種常見(jiàn)結(jié)構(gòu)講與練 (課件)-【筆下生輝】備戰(zhàn)2026年高考語(yǔ)文議論文寫作秘籍
- 藥店物價(jià)收費(fèi)員管理制度
- 數(shù)據(jù)風(fēng)險(xiǎn)監(jiān)測(cè)管理辦法
- 國(guó)家開(kāi)放大學(xué)《公共政策概論》形考任務(wù)1-4答案
- 肝惡性腫瘤腹水護(hù)理
- 兒童語(yǔ)言發(fā)育遲緩課件
- 2025年河南省鄭州市中考一模英語(yǔ)試題及答案
- 《高等職業(yè)技術(shù)院校高鐵乘務(wù)專業(yè)英語(yǔ)教學(xué)課件》
- DB15T 3758-2024基本草原劃定調(diào)整技術(shù)規(guī)程
- 醫(yī)學(xué)類單招入學(xué)考試題庫(kù)及答案(修正版)
- 腦機(jī)接口技術(shù)在疼痛管理中的應(yīng)用研究
- 《項(xiàng)目經(jīng)理安全管理培訓(xùn)課件》
評(píng)論
0/150
提交評(píng)論