Oracle數(shù)據(jù)庫概述
《Oracle數(shù)據(jù)庫概述》由會(huì)員分享,可在線閱讀,更多相關(guān)《Oracle數(shù)據(jù)庫概述(11頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 n n 更多企業(yè)學(xué)院: 《中小企業(yè)管理全能版》 183套講座+89700份資料 《總經(jīng)理、高層管理》 49套講座+16388份資料 《中層管理學(xué)院》 46套講座+6020份資料? 《國學(xué)智慧、易經(jīng)》 46套講座 《人力資源學(xué)院》 56套講座+27123份資料 《各階段員工培訓(xùn)學(xué)院》 77套講座+ 324份資料 《員工管理企業(yè)學(xué)院》 67套講座+ 8720份資料 《工廠生產(chǎn)管理學(xué)院》 52套講座+ 13920份資料 《財(cái)務(wù)管理學(xué)院》 53套講座+ 17945份資料?
2、 《銷售經(jīng)理學(xué)院》 56套講座+ 14350份資料 《銷售人員培訓(xùn)學(xué)院》 72套講座+ 4879份資料 目錄 ?Oracle部分 ?PL/SQL部分 ?JDBC部分 第一章 數(shù)據(jù)庫介紹 一、數(shù)據(jù)的儲(chǔ)存方法: 第一種方法:用大腦來記住數(shù)據(jù) 第二種方法:寫在紙上
3、 第三種方法:寫在計(jì)算機(jī)的內(nèi)存中 第四種方法:寫成磁盤文件 二、數(shù)據(jù)庫能做什么? 1.存儲(chǔ)大量數(shù)據(jù),方便檢索和訪問 2.保持?jǐn)?shù)據(jù)的一致、完整 3.共享和安全 4.通過組合分析,產(chǎn)生新的有用信息 三、數(shù)據(jù)庫的發(fā)展史 萌芽階段--文件系統(tǒng) ★使用磁盤文件儲(chǔ)存數(shù)據(jù) 初級(jí)階段--第一代數(shù)據(jù)庫 ★出現(xiàn)了網(wǎng)狀模型、層次模型的數(shù)據(jù)庫 中級(jí)階段--第一代數(shù)據(jù)數(shù)據(jù)庫 ★關(guān)系型數(shù)據(jù)庫和結(jié)構(gòu)化查詢語言 高級(jí)階段--新一代數(shù)據(jù)庫 ★“關(guān)系-對(duì)象”型數(shù)據(jù)庫 四、當(dāng)前的數(shù)據(jù)庫產(chǎn)品 Oracle ------甲骨文 BD2 -------IBM SQL Serve
4、r ------微軟 Sybase -------賽貝思 MySql -------SUN 五、數(shù)據(jù)庫和應(yīng)用程序 六、數(shù)據(jù)庫相關(guān)的基本概念 概念模型:基于客戶的想法和觀點(diǎn)所形成的認(rèn)識(shí)和對(duì)象 實(shí)體(Entiy):客觀存在的、可以被描述的事物。如員工 、部門 屬性(Attribute):用于描述實(shí)體所具有的特征或特性,如使用編號(hào)、姓名、部門、工資等屬性員工的特征。 關(guān)系(Relationship):實(shí)體之間的聯(lián)系。如部門和員工之間有一對(duì)多的關(guān)系。 數(shù)據(jù)模型:也叫關(guān)系模型,是實(shí)體、屬性、關(guān)系在數(shù)據(jù)庫中的具體表現(xiàn)。 關(guān)系數(shù)據(jù)庫:用于儲(chǔ)存各種類型的“倉庫”,是二維表的集合 表
5、:實(shí)體的映射 行和列:行代表一個(gè)具體的實(shí)體數(shù)據(jù)。也叫一條記錄。列是屬性的映射,用于描述實(shí)體的 主鍵和外鍵 七、數(shù)據(jù)庫管理系統(tǒng)(DBMS) 第二章 Oracle簡介 快速掌握Oracle 課程目標(biāo): ● Oracle安裝及配置 ● 有關(guān)數(shù)據(jù)庫的DDL操作 ● 有關(guān)數(shù)據(jù)表的DDL操作 ● 有關(guān)數(shù)據(jù)表的CRUD操作 ● 事物控制 ● 索引 視圖 ● 存儲(chǔ)過程 ● 觸發(fā)器 ● 權(quán)限管理 ● 數(shù)據(jù)庫的備份與恢復(fù) ● 數(shù)據(jù)庫設(shè)計(jì) Oracle是一個(gè)生產(chǎn)中間件和數(shù)據(jù)庫的較大生產(chǎn)商,Oracel的原本含義是“神喻”,指
6、的是神說的話。在中國的商朝的時(shí)代,把一些刻在龜殼上的文字當(dāng)成了上天的指示,所以在中國也將Oracle翻譯成“甲骨文”。 Oracle的發(fā)展實(shí)際上依靠了IMB公司。 Oracle的創(chuàng)始人是:Larry Ellision創(chuàng)辦了Oracle公司。 Oracle的版本分為: Oracle 8 Oracle 8i:Internet表示此時(shí)Oracle公司開始開始正式進(jìn)軍互聯(lián)網(wǎng). Oracle 9i: Oracle 8i和Oracle 9i相比是非常相似的 Oracle 10g: g表示網(wǎng)格技術(shù) 網(wǎng)格技術(shù):如我們?cè)诎俣壬舷螺d一個(gè)軟件,那么這個(gè)軟件在離我們的遠(yuǎn)處有一個(gè),在我們的近處也有一個(gè),
7、有可能我們通過搜索引擎下載的是遠(yuǎn)的那個(gè)。忽略了近處的資源,這樣就造成了資源的浪費(fèi)。所以就產(chǎn)生了網(wǎng)格技術(shù)。就是將網(wǎng)絡(luò)劃為了多個(gè)小格。通過網(wǎng)絡(luò)表示區(qū)域。 ◇Oracle 是由甲骨文公司生產(chǎn)的以高級(jí)結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一 。 ◇是目前市場占用率極高的一款數(shù)據(jù)庫產(chǎn)品 特點(diǎn): ◆提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。 ◆支持大量多媒體數(shù)據(jù),如二進(jìn)制圖形、聲音、動(dòng)畫以
8、及多維數(shù)據(jù)結(jié)構(gòu)等。 ◆提供了與第三代高級(jí)語言的接口 ◆提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對(duì)稱復(fù)制的技術(shù)。 一、存儲(chǔ)結(jié)構(gòu): 物理結(jié)構(gòu): ORACLE數(shù)據(jù)庫在物理上是存儲(chǔ)于硬盤的各種文件。它是活動(dòng)的,可擴(kuò)充的,隨著數(shù)據(jù)的添加和應(yīng)用程序的增大而變化。 邏輯結(jié)構(gòu): ORACLE數(shù)據(jù)庫在邏輯上是由許多表空間構(gòu)成。主要分為系統(tǒng)表空間和非系統(tǒng)表空間。非系統(tǒng)表空間內(nèi)存儲(chǔ)著各項(xiàng)應(yīng)用的數(shù)據(jù)、索引、程序等相關(guān)信息。 二、啟動(dòng)Oracle 在Window平臺(tái)下必須啟動(dòng)的Oracle服務(wù)有: 1.OracleServiceSID 數(shù)據(jù)庫服務(wù),這個(gè)服
9、務(wù)會(huì)自動(dòng)地啟動(dòng)和停止數(shù)據(jù)庫。如果安裝了一個(gè)數(shù)據(jù)庫,它的缺省啟動(dòng)類型為自動(dòng)。服務(wù)進(jìn)程為ORACLE.EXE. 2.OracleHOME_NAMETNSListener 監(jiān)聽器服務(wù)。 3.sqlplus工具 sqlplus工具 登錄數(shù)據(jù)庫有以下幾種方式: (1).sqlplus:以命令的方式進(jìn)入數(shù)據(jù)庫連接 (2).sqlplusw:以窗口的形式啟動(dòng)命令行 在使用此命令時(shí),會(huì)提示一個(gè)主機(jī)的字符串,如果一臺(tái)電腦上有多個(gè)數(shù)據(jù)庫的話,則要在此處輸入數(shù)據(jù)庫的名稱,如果不輸入,會(huì)進(jìn)行默認(rèn)的,一般默認(rèn)的是最后一個(gè)數(shù)據(jù)庫。 那么登錄帳戶以后,就可以在數(shù)據(jù)庫中進(jìn)行增、刪、改、查等操作。 如我們可
10、以查看表:SELECT * FROM emp;(emp表是數(shù)據(jù)庫自帶的表) 當(dāng)我們對(duì)表進(jìn)行查看時(shí),有時(shí)候顯示的表并不規(guī)范,如本來是一行的內(nèi)容,可是有一部分被補(bǔ)到了下一行。這樣看下來表就很混亂,不規(guī)范。所以我們要對(duì)其環(huán)境 進(jìn)行一下設(shè)置。 如設(shè)置每行顯示的長度:set linesize 300; 有時(shí)候標(biāo)題行還會(huì)重復(fù)出現(xiàn),在這因?yàn)樵贠racle中數(shù)據(jù)是一頁一頁的顯示方式進(jìn)行輸出的。所我們可修改每頁顯示行數(shù)。 如set pagesize 20; 4.命令 我們通常使用的sqlplusw 在sqlplusw中存在著大量的命令。 在sqlplusw下編輯代碼時(shí),出現(xiàn)了錯(cuò)誤,不允許我們使用
11、向左方向鍵向右移動(dòng)到相應(yīng)的位置上進(jìn)行修改,很不方便,所以通常我們使用記事本進(jìn)行代碼的編輯,直接在命令行中輸入“ed 文件名名稱即可”。如 ed test,輸入之后會(huì)提示找不到test.sql文件,要?jiǎng)?chuàng)建新文件嗎?我們選擇“是”,那么就創(chuàng)建了一個(gè)test文件,我們就可以在test文本中寫相應(yīng)的代碼。創(chuàng)建完成之后,可以通過@文件名稱的方式執(zhí)行命令。如@test,就會(huì)執(zhí)行在test中寫的代碼。 除了在sqlplus中創(chuàng)建文件之外,也可以通過@符找到磁盤上的文件,如我們?cè)贒盤上建立一個(gè)demo.txt的文件,里邊寫上查詢指令。執(zhí)行的時(shí)候,要指定文件的路徑:@路徑,如@D:\demo.txt,也會(huì)執(zhí)行
12、demo中的指令。效果也完全一樣的。 “\”可以省略。如@D:demo.txt.如果文件的后綴是.sql,則不寫后綴名稱也可以找到。如:@D:demo。所以默認(rèn)找到的后綴是“*.sql”。 在sqlplusw中可以使用“/”表示重復(fù)執(zhí)行上一句命令的操作。 第三章 用戶、權(quán)限 一、用SQLPLUS登錄Oracle 1.Sqlplus 用戶/密碼 [as 身份] 如登錄系統(tǒng)帳戶:conn sys/system as sysdba; conn:連接到數(shù)據(jù)庫的關(guān)鍵字 sys:系統(tǒng)用戶名 system:是驗(yàn)證密碼 as sysdba:是身份驗(yàn)證 2.Oracle 內(nèi)置帳戶
13、 sys具有最大的權(quán)限。 Oracle數(shù)據(jù)庫服務(wù)器啟動(dòng)后,一般至少有以下幾個(gè)用戶: Internal,它不是一個(gè)真實(shí)的用戶名,而是具有SYSDBA優(yōu)先級(jí)的Sys用戶的別名,它由DBA用戶使用來完成數(shù)據(jù)庫的管理任務(wù),包括啟動(dòng)和關(guān)閉數(shù)據(jù)庫; sys:它是一個(gè) DBA用戶名,具有最大的數(shù)據(jù)庫操作權(quán)限; system:它也是一個(gè) DBA用戶名,權(quán)限僅次于 Sys用戶 scott:它是一個(gè)oracle示例/學(xué)習(xí)帳戶 3.停止和啟動(dòng)Oracle 啟動(dòng)/停止windows服務(wù) Sqlplus /nolog 利用這個(gè)命令可以在DOS下不利用任何身份進(jìn)入到SQL的狀態(tài)。之后再利用身份登錄
14、 Connect /as sysdba Shutdown/startup /是以操作系統(tǒng)認(rèn)證進(jìn)行登錄 Nolog不創(chuàng)建初始聯(lián)接 4.創(chuàng)建、刪除用戶 △創(chuàng)建帳戶: CREATE USER username IDENTIFIED BY password [DEFAULT TABLESPACE tablespace1]------>默認(rèn)表空間 [TEMPORARY TABLESPACE tablespace2]------>臨時(shí)表空間 [QUOTA n K ON
15、 tablespace1];------>不足時(shí)自動(dòng)增加nK或nM M UNLIMITED----------------------->沒有限制 如創(chuàng)建一個(gè)hellen的帳戶:create user hellen identified by abcd; △刪除帳戶: 基本語法:DROP USER userName [cascade]; 如果加上cascade關(guān)鍵字可刪除該用戶所創(chuàng)建的對(duì)象。 如:刪除用戶hellen: drop user hellen;
16、 △用戶修改密碼: 基本語法:ALTER USER userName IDENTIFIED BY password; 如: alter user hellen identified by abc123; △用戶解鎖: 基本語法:ALTER USER userName ACCOUNT UNLOCK; 如:alter user hellen account unlock; △查看當(dāng)前登錄用戶 SHOW USER; △查看系統(tǒng)有哪些用戶: SELECT USERNAME FROM DBA_USERS; 如: 第一步:desc dba_users; 第二步:sele
17、ct username, USER_ID, ACCOUNT_STATUS FROM DBA_USERS; △查看用戶的默認(rèn)表空間 select username,default_tablespace from dba_users; △查看用戶有哪些表空間 select distinct tablespace_name from dba_tables where owner=‘USER'; △確定用戶帳戶所授予的權(quán)限 select * from DBA_tab_privs ; 直接授予用戶帳戶的對(duì)象權(quán)限 select * from DBA_role_privs ; 授予用戶帳戶的角色
18、 select * from DBA_sys_privs WHERE GRANTEE=?; 授予用戶帳戶的系統(tǒng)權(quán)限 5.授于用戶連接Oracle數(shù)據(jù)庫的權(quán)限 格式:grant 權(quán)限 to 帳戶名。 如授予可以連接到數(shù)據(jù)庫的權(quán)限:grant hellen to scott; 常用的權(quán)限有: connect (8) 連上Oracle,做最基本操作 resource(5) 具有程序開發(fā)最基本的權(quán)限 dba (77)數(shù)據(jù)庫管理員所有權(quán)限 exp-full-database 可把數(shù)據(jù)庫整個(gè)備份輸出的權(quán)限 imp-full-datsabase 可把數(shù)據(jù)庫整個(gè)備份
19、恢復(fù)輸入的權(quán)限 6.回收權(quán)限 基本語法: REVOKE 權(quán)限 FROM 用戶名; REVOKE 實(shí)體權(quán)限|ALL ON 表空間 FROM 用戶名|角色名|PUBLIC; 如授回連接到數(shù)據(jù)庫的權(quán)限:revoke connect from hellen; 常見的實(shí)體權(quán)限:見附錄 第四章 Oracle數(shù)據(jù)類型 Oracle 提供了22 種不同的SQL數(shù)據(jù)類型供我們使用: ★ CHAR:這是一個(gè)定長字符串,會(huì)用空格填充來達(dá)到其最大長度。非null 的CHAR(12.)總是包含12字節(jié)信息。CHAR 字段最多可以存儲(chǔ)2,000 字節(jié)的信息。 ★ NCHAR:這是一個(gè)包含UNICO
20、DE 格式數(shù)據(jù)的定長字符串。最多可以存儲(chǔ)2,000 字節(jié)的信息。 ★ VARCHAR2:這是一個(gè)變長字符串,與CHAR 類型不同,它不會(huì)用空格填充至最大長度。VARCHAR2(12)可能包含0~12字節(jié)的信息。VARCHAR2 最多可以存儲(chǔ)4,000 字節(jié)的信息。 ★ NVARCHAR2:這是一個(gè)包含UNICODE 格式數(shù)據(jù)的變長字符串。NVARCHAR2(12)可以包含0~12字符的信息。NVARCHAR2 最多可以存儲(chǔ)4,000 字節(jié)的信息。 ★ NUMBER:這種數(shù)據(jù)類型能存儲(chǔ)精度最多達(dá)38 位的數(shù)字。這些數(shù)介于12×12(-130)-1— —12×12(126)之間。 用法:n
21、umber(p,s);p和s是可以選的,用于表示整數(shù)部分和小數(shù)部分的精度 ★ BINARY_FLOAT:這是Oracle 10g Release 1 及以后版本中才有的一種新類型。它是一個(gè)32位單精度浮點(diǎn)數(shù),可以支持至少6 位精度,占用磁盤上5 字節(jié)的存儲(chǔ)空間。 ★ BINARY_DOUBLE:這也是10g中新的一種類型 ★ CLOB:在Oracle9i 及以前的版本中,這種數(shù)據(jù)類型允許存儲(chǔ)最多4GB 的數(shù)據(jù),在Oracle 10g及以后的版本中允許存儲(chǔ)最多(4GB)×(數(shù)據(jù)庫塊大?。┳止?jié)的數(shù)據(jù)。這種數(shù)據(jù)類型很適合存儲(chǔ)純文本信息。 ★ BLOB:在Oracle9i 及以前的版本中,這種
22、數(shù)據(jù)類型允許存儲(chǔ)最多4GB 的數(shù)據(jù),在Oracle 10g及以后的版本中允許存儲(chǔ)最多(4GB)×(數(shù)據(jù)庫塊大小)字節(jié)的數(shù)據(jù)。適合于存儲(chǔ)圖片/文檔 ★ LONG:這種類型能存儲(chǔ)最多2G 的字符數(shù)據(jù)----建議使用CLOB代替 ★ DATE:這是一個(gè)7 字節(jié)的定寬日期/時(shí)間數(shù)據(jù)類型。其中總包含7 個(gè)屬性,包括:世紀(jì)、世紀(jì)中哪一年、月份、月中的哪一天、小時(shí)、分鐘和秒。 ★ TIMESTAMP:這是一個(gè)7 字節(jié)或12.字節(jié)的定寬日期/時(shí)間數(shù)據(jù)類型。它與DATE 數(shù)據(jù)類型不同,因?yàn)門IMESTAMP 可以包含小數(shù)秒(fractional second);帶小數(shù)秒的TIMESTAMP 在小數(shù)點(diǎn)右邊最
23、多可以保留9 位。 ★ TIMESTAMP WITH TIME ZONE:與前一種類型類似,這是一個(gè)12.字節(jié)的定寬TIMESTAMP,不過它還提供了時(shí)區(qū)(TIME ZONE)支持。數(shù)據(jù)中會(huì)隨TIMESTAMP 存儲(chǔ)有關(guān)時(shí)區(qū)的額外信息,所以原先插入的TIME ZONE 會(huì)與數(shù)據(jù)一同保留。 ★ ROWID:ROWID 實(shí)際上是數(shù)據(jù)庫中一行的12字節(jié)地址。ROWID 中編碼有足夠的信息,足以在磁盤上定位這一行,以及標(biāo)識(shí)ROWID 指向的對(duì)象。 (1)Oracle 中偽列就像一個(gè)表列,但是它并沒有存儲(chǔ)在表中 (2)偽列可以從表中查詢,但不能插入、更新和刪除它們的值 (3)常用的偽列有ROW
24、ID和ROWNUM ROWID 是表中行的存儲(chǔ)地址,該地址可以唯一地標(biāo)識(shí)數(shù)據(jù)庫中的一行,可以使用 ROWID 偽列快速地定位表中的一行。 ROWNUM 是查詢返回的結(jié)果集中行的序號(hào),可以使用它來限制查詢返回的行數(shù) 例: 列的類型主要有如下幾種: NUMBER(4):表示是數(shù)字,長度為4 VARCAHR2(10):表示的是字符串,只能10的個(gè)的長度 DATE:表示日期 NUMBER(7,2): 表示是數(shù)字,其中小數(shù)位占2位,整數(shù)位占5位,總共是7位。 第五章 SQL語句概述 SQL語句概述 ○ SQL結(jié)構(gòu)化查詢語言(Structured Query La
25、nguage) 一般讀作:[si:kju:] 或者是字母 S Q L 的發(fā)音。 ○ 目前數(shù)據(jù)庫廠商實(shí)現(xiàn)的都是SQL92標(biāo)準(zhǔn),還沒有任何一家廠商通過SQL99標(biāo)準(zhǔn)認(rèn)證 ○ Oracle對(duì)SQL92做了擴(kuò)展,所以稱自己為加強(qiáng)版SQL(SQLPLUS)。 對(duì)于不同的數(shù)據(jù)庫來講,重點(diǎn)都是掌握SQL語句,因?yàn)楝F(xiàn)在的數(shù)據(jù)庫全部是以SQL操作的標(biāo)準(zhǔn),在實(shí)際中,各個(gè)數(shù)據(jù)庫就是提供的函數(shù)不同。 SQL語言主要用于與數(shù)據(jù)庫的通訊。SQL語言功能強(qiáng)大 ,主要分為以下同種:DML DDL DCL 事物控制語言。 一、SQL語句分類 1.DDL(Data Definition Language)數(shù)據(jù)定義語
26、言:定義數(shù)據(jù)庫對(duì)象(表空間,表,列,索引等) 如:CREATE,DROP,ALTER,TRUNCATE 等 2.DML(Data Manipulation Language)數(shù)據(jù)操縱語言:完成對(duì)數(shù)據(jù)記錄的操作 如:INSERT,DELETE,UPDATE,SELECT 等。 3.DCL(Data Control Language)數(shù)據(jù)控制語言:定義用戶的訪問權(quán)限和安全級(jí)別 如:GRANT,REVOKE 4.事物控制(Transaction Control)事物控制:如:COMMIT,ROLLBACK (1)事務(wù)是最小的工作單元,作為一個(gè)整體進(jìn)行工作 (2)保證事務(wù)的
27、整體成功或失敗,稱為事務(wù)控制 用于事務(wù)控制的語句有: (4)COMMIT - 提交并結(jié)束事務(wù)處理 當(dāng)向表插入一個(gè)新值的時(shí)候,該事物并沒有被永久的寫到磁盤上去 ,重新打開窗口再次查詢?cè)摫碇械臄?shù)據(jù)時(shí),發(fā)現(xiàn)并沒有剛才插入的記錄,這是因?yàn)檫@個(gè)事物還沒有結(jié)束,當(dāng)遇到commit或rollback才認(rèn)為是結(jié)束了。 如果要永久性的提交可以執(zhí)行:commit命令,再次打開新的窗口時(shí)該記錄已被寫到表中了。 (5)ROLLBACK - 撤銷事務(wù)中已完成的工作 當(dāng)我們做了和系列的操作以后,都沒有執(zhí)行commit命令,也就是沒有提交,我們執(zhí)行了rollback就可要回到原點(diǎn)了,也就是剛才所做的都等于沒做
28、,所有rollback回退是將所有的回退。 (6)SAVEPOINT – 標(biāo)記事務(wù)中可以回滾的點(diǎn) 因?yàn)閞ollback回退是將所有的都回退了,這明顯不太好,那么我們可以設(shè)置幾個(gè)回退點(diǎn),使再次回退的時(shí)候,不讓其回退到原點(diǎn),而是回退到我們固定的位置上去。 如: UPDATE 表名 set id=2 WHERE id=3----->將id=3改為id=2 SAVEPOINT mark1------>設(shè)置一個(gè)還原點(diǎn)mark1 DELETE FROM 表名 WHERE id=5---->刪除id=5 SAVEPOINT mark2;----->再設(shè)置一個(gè)還原點(diǎn)mark2 二、Orac
29、le支持的SQL操作符的分類:算術(shù)操作符 比較操作符 邏輯操作符 集合操作符 連接操作符 1.算術(shù)操作符: 算術(shù)操作符用于執(zhí)行數(shù)值計(jì)算 可以在SQL語句中使用算術(shù)表達(dá)式,算術(shù)表達(dá)式由數(shù)值數(shù)據(jù)類型的列名、數(shù)值常量和連接它們的算術(shù)操作符組成 算術(shù)操作符包括加(+)、減(-)、乘(*)、除(/)。 2.連接操作符用于將多個(gè)字符串或數(shù)據(jù)值合并成一個(gè)字符串 例:要求查出雇員的編號(hào)、姓名、工作但是顯示的格式是: 編號(hào)是:7369的雇員,姓名是:SMITH,工作是:CLERK SELECT '編號(hào)是:'||empno||'的雇員,姓名是:'||ename||'工作是'||job;---->使
30、用了連接操作符 在查詢中也可以 使用四則運(yùn)算功能。如我們要查每個(gè)雇員的姓名及年薪。 SELECT ename,sal*12 FROM emp;----->月薪*12表示年薪------>使用了算術(shù)操作符 3.比較操作符用于比較兩個(gè)表達(dá)式的值 比較操作符包括 =、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL等 例: SQL> SELECT itemdesc, re_level FROM itemfile WHERE qty_hand < max_level/2; SQL> SELECT orderno FROM o
31、rder_master WHERE del_date IN (‘06-1月-05’,‘05-2月-05'); SQL> SELECT vencode,venname,tel_no FROM vendor_master WHERE venname LIKE 'j___s'; 4.邏輯操作符 邏輯操作符用于組合多個(gè)計(jì)較運(yùn)算的結(jié)果以生成一個(gè)或真或假的結(jié)果。 邏輯操作符包括與(AND)、或(OR)和非(NOT)。 例:顯示 2005-5月-10 至 2005-5月-26的訂單信息 SQL> SELECT * FROM order_master
32、 WHERE odate > ‘10-5月-05' AND del_date < ‘26-5月-05’; 5.集合操作符將兩個(gè)查詢的結(jié)果組合成一個(gè)結(jié)果,集合操作符有:UNION、UNION ALL、INTERSECT、MINUS (1)UNION:將兩個(gè)表中的所有的記錄合到一起,但重復(fù)的只合一遍 如:用法有兩個(gè)表(id 和 name) SELECT * FROM 表A UNION SELECT * FROM 表B; 結(jié)果:A與B重復(fù)的行只拿一次 (2)UNION ALL:重復(fù)的行復(fù)取,也就是取出所有的(A+B) SELECT * FROM A UNI
33、ON ALL SELECT * FROM B; (3)INTERSECT:返回公有的(A與B的交集) (4)MINUS 差積(A-B或B-A) 用法都與UNION相同。 注一:在求差積時(shí),如果A放前,去掉公共的行時(shí),剩余的都是A中的,而B中剩余了什么并不管。如果B放前去掉公共行時(shí),剩余都是B中的。 注二、在使用集合操作符時(shí),兩個(gè)表的類型一定要相同。 三、SQL 操作符的優(yōu)先級(jí)從高到低的順序是: 算術(shù)操作符 --------最高優(yōu)先級(jí) 連接操作符 比較操作符 NOT 邏輯操作符 AND 邏輯操作符 OR 邏輯操作符 --------最低優(yōu)先級(jí)
34、 第六章 表空間 表空間 1.創(chuàng)建表空間 基本語法: CREATE TABLESPACE spacename [LOGGING] | NOLOGGING DATAFILE ‘d:\javasky.dbf’ SIZE 200M AUTOEXTEND ON NEXT 200M; 如: create tablespace javasky ---->表空間名 datafile 'd:\javasky.dbf'----->目錄地址 size 20M----------------------->大小為20M autoext
35、end on next 5M;-------->當(dāng)空間不足時(shí)自動(dòng)增加5M; 2.刪除表空間 基本語法: DROP TABLESPACE “TABLESPANCENAME” 注意表空間的名字需要使用雙引號(hào)包圍,并且表空間的名稱需要大寫。 如:drop tablespace "JAVASKY"; 3.查看表空間的名稱和狀態(tài) select tablespace_name,status from dba_tablespaces; 表空間的狀態(tài)屬性主要有在線(ONLINE)、離線(OFFLINE)、只讀(READ ONLY)和讀寫(READ WRITE)4種
36、 4.修改表空間的狀態(tài) alter tablespace 表空間名 狀態(tài);可以修改表空間的狀態(tài) 第七章 表 查看該帳戶下所有的表: 第一種、select * from cat; 第二種、select * from tab; ● 建表 CREATE TABLE 表名(列名 列類型,…); 如:create table student(id int,name varchar2(5),address varchar2(10)); --創(chuàng)建一個(gè)具有ID NAME ADDRESS 的學(xué)生信息表 創(chuàng)建完表以后可以利用:desc 表名 來查看 如 dest studen
37、t; 如名稱、類型、是否為空。 ● 修改表 1.增加新列 ALTER TABLE 表名 ADD 列名 列類型 [ADD 列 類型]; 如新一個(gè)電話的列:alter table student add tel number; 增加一個(gè)新的列后給其賦值:update student set tel=15114562383 where id=2; 2.刪除舊列 ALTER TABLE 表名 DROP COLUMN 列名; 3.修改列類型(要求,列中無數(shù)據(jù)) ALTER TABLE 表名 MODIFY 列名 列類型 4.修改列名 ALTER TABLE 表
38、名 RENAME COLUMN 列名 TO 新列名; 5.修改表名 RENAME 表名 TO 新表名; ● 插入(記錄)數(shù)據(jù),也就是給列賦值 1.給其相應(yīng)的字段賦值:INSERT INTO表名[(列名1,,,,)] VALUES(值1,,,); 注:[]中的內(nèi)容可寫可不寫 如:INSERT INTO student(id,name,addredd) VALUES(1,'李小龍','河北省'); 2.賦全值 INSERT INTO student VALUES(1,'李小龍','河北省'); 3.賦值以后查看該表的內(nèi)容: select * from student;
39、4.插入日期格式的值: INSERT INTO 列名(列名) VALUES (TO_DATE('2005-10-18', 'YYYY-MM-DD')); ● 修改記錄 UPDATE 表名 SET 列名=值,…. [WHERE 條件]; 如 update 表名 set tname='李小龍' where tname='李建龍'; ----->這是一個(gè)條件限制 ● 刪除(記錄)數(shù)據(jù) 第一種方法: DELETE FROM 表名 [WHERE 條件]; 第二種方法: TRUNCATE TABLE 表名; ● 利用現(xiàn)有的表創(chuàng)建
40、表
語法:
CREATE TABLE
41、 AS SELECT * FROM itemfile WHERE 1 = 2;------>建表時(shí)的條件,這里是1=2,明顯為假,但是可是以建表,但是空的內(nèi)容為空。 ● 不帶條件的DELETE和TRUNCATE TABLE的區(qū)別: *在功能上,TRUNCATE TABLE是清空一個(gè)表的內(nèi)容,它相當(dāng)于DELETE FROM table_name。 *DELETE是dml操作,truncate table是ddl操作;因此DELETE可以回滾,TRUNCATE TABLE不可回滾。 *TRUNCATE TABLE 調(diào)整high water mark 而
42、DELETE不;TRUNCATE TABLE之后,TABLE的HWM退回到 INITIAL和 NEXT的位置(默認(rèn))delete 則不可以。 *TRUNCATE TABLE 只能對(duì)TABLE進(jìn)行操作, DELETE可以是table,view,synonym。 *TRUNCATE TABLE不會(huì)觸發(fā) DELETE觸發(fā)器 *日志記錄方式不同, DELETE逐行記錄刪除日志,TRUNCATE TABLE只記錄在磁盤上某一 第八章 函數(shù) 函數(shù) 數(shù)據(jù)庫系統(tǒng)中,每個(gè)數(shù)據(jù)庫之中唯一最大的區(qū)別就是函數(shù)的支持上,使用函數(shù)可以完成一系列的操作能。Oracle 提供一系列用于執(zhí)行特定操作的函
43、數(shù)。 SQL 函數(shù)帶有一個(gè)或多個(gè)參數(shù)并返回一個(gè)值 以下是SQL函數(shù)的分類:單行函數(shù)、分組函數(shù)、分析函數(shù) 一、單行函數(shù) 單行函數(shù)對(duì)于從表中查詢的每一行只返回一個(gè)值 可以出現(xiàn)在 SELECT 子句中和 WHERE 子句中 單行函數(shù)可以大致劃分為: 字符函數(shù):接受字符輸入并且返回字符或數(shù)值 數(shù)值函數(shù):接受數(shù)值輸入并返回?cái)?shù)值 日期函數(shù):對(duì)日期型數(shù)據(jù)進(jìn)行操作 轉(zhuǎn)換函數(shù):從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型 通用函數(shù):NVL函數(shù)、DECODE函數(shù) 單行函數(shù)的的語法: function_name(columnle expression,[arg1,arg2.....])
44、 function_name:函數(shù)的名稱 culumnle:數(shù)據(jù)庫列名 expression:字符串或計(jì)算表達(dá)式 arg1,arg2:函數(shù)中使用的參數(shù) 時(shí)間類型函數(shù) SYSDATE返回當(dāng)前的系統(tǒng)時(shí)間 ADD_MONTHS(date,x)返回加上x月后的日期DATE的值,X可以是任意的整數(shù),如果結(jié)果的月份中所包含的日份量不于DATE的月份的日份量,則返回結(jié)果月份的最后一天,如果不小于,則結(jié)果與DATE的日份量相同。 LAST_DAY(日期)指定日期所在月份的最后一天的日期, TRUNC(日期,‘MONTH\YEAR’)返回指定月份的第一天。 日期運(yùn)算: 日期函數(shù)對(duì)日期值進(jìn)行運(yùn)算,并生成日期數(shù)據(jù)類型或數(shù)值類型的結(jié)果 日期函數(shù)包括:ADD_MONTHS、MONTHS_BETWEEN、LAST_DAY、ROUND、NEXT_DAY、TRUNC 范例一:
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案