1oracle數(shù)據(jù)庫基礎(chǔ)_第1頁
1oracle數(shù)據(jù)庫基礎(chǔ)_第2頁
1oracle數(shù)據(jù)庫基礎(chǔ)_第3頁
1oracle數(shù)據(jù)庫基礎(chǔ)_第4頁
1oracle數(shù)據(jù)庫基礎(chǔ)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、oracle數(shù)據(jù)庫基礎(chǔ)2目標(biāo) oracle 簡介簡介 oracle 數(shù)據(jù)庫組件數(shù)據(jù)庫組件 oracle 的結(jié)構(gòu)化查詢工具的結(jié)構(gòu)化查詢工具 oracle主要數(shù)據(jù)類型主要數(shù)據(jù)類型 oracle的的數(shù)據(jù)完整性數(shù)據(jù)完整性 sql 語言語言 sql 命令的類別命令的類別3oracle 簡介 關(guān)系數(shù)據(jù)庫:是建立在關(guān)系數(shù)據(jù)庫模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。目前主流的關(guān)系數(shù)據(jù)庫有oracle、sqlserver、mysql、access、db2、sybase等。 oracle是一種對象關(guān)系數(shù)據(jù)庫管理系統(tǒng) (ordbms)。 oracle提供了關(guān)系數(shù)據(jù)庫系統(tǒng)和面向?qū)ο髷?shù)據(jù)庫系

2、統(tǒng)這二者的功能 oracle產(chǎn)品基于一種稱為“客戶機/服務(wù)器技術(shù)”的概念 客戶機 - 用戶和數(shù)據(jù)庫之間的接口 服務(wù)器 - 存儲和管理數(shù)據(jù) 使用 internet 文件系統(tǒng) 該系統(tǒng)是一種基于java的應(yīng)用程序,它可以使數(shù)據(jù)庫成為基于internet的開發(fā)平臺4oracle 數(shù)據(jù)庫組件 數(shù)據(jù)庫由下列組件構(gòu)成: database file 數(shù)據(jù)庫文件(*.dbf) control file 控制文件(*.ctl) redo log files 恢復(fù)日志文件(*.log) tablespaces 表空間 segments 段 extents 擴展區(qū) 上面的組件可以分類如下: 物理組件 邏輯組件物理組件

3、物理組件是數(shù)據(jù)實際所在的操作系統(tǒng)的文件。而用戶無法直接訪問這些文件中的信息,用戶需要使用邏輯組件訪問這些信息。物理組件是構(gòu)成數(shù)據(jù)庫的操作系統(tǒng)文件物理組件為數(shù)據(jù)庫信息提供了實際的物理存儲器 操作系統(tǒng)文件有三種類型:數(shù)據(jù)庫文件或數(shù)據(jù)文件(*.dbf)包括所有數(shù)據(jù)庫數(shù)據(jù),如用戶數(shù)據(jù)、系統(tǒng)數(shù)據(jù)和overhead數(shù)據(jù)的數(shù)據(jù)已創(chuàng)建好的數(shù)據(jù)庫至少包括一個數(shù)據(jù)文件,數(shù)據(jù)文件只可屬于一個數(shù)據(jù)庫數(shù)據(jù)文件中的數(shù)據(jù)以塊為單位一個或多個數(shù)據(jù)文件形成了數(shù)據(jù)庫的一個邏輯單位,這些邏輯單位稱為表空間。數(shù)據(jù)文件可與一個而且只能與一個表空間相關(guān)??刂莆募?*.ctl)創(chuàng)建數(shù)據(jù)庫時,就創(chuàng)建了控制文件 已建好的數(shù)據(jù)庫具有一個控件文件

4、。控件文件是存儲在硬盤上的物理文件。它存儲數(shù)據(jù)庫的物理結(jié)構(gòu),即與數(shù)據(jù)庫相關(guān)的所有文件的信息。該信息包括:數(shù)據(jù)庫的名稱、數(shù)據(jù)文件和恢復(fù)日志文件的名稱及其位置、時間戳只要數(shù)據(jù)庫實例啟動,控件文件將用于查找和定位數(shù)據(jù)庫組件。在出錯及恢復(fù)數(shù)據(jù)庫的過程中也將使用控件文件?;謴?fù)日志文件(*.log)恢復(fù)日志文件是操作系統(tǒng)文件集,由rdbms用于記錄對數(shù)據(jù)庫所做的更改。如果數(shù)據(jù)庫出現(xiàn)故障,則可從恢復(fù)日志中訪問并重新應(yīng)用對數(shù)據(jù)庫所做的更改,這樣即可保護已完成的工作不受損失恢復(fù)日志以循環(huán)方式工作?;謴?fù)日志的功能受數(shù)據(jù)庫運行運行的模式控制:noarchivelog mode(不歸檔模式)、 archivelog

5、mode(歸檔模式)邏輯組件 邏輯組件決定數(shù)據(jù)庫中物理空間的使用。 數(shù)據(jù)庫有下列邏輯組件: tablespace (表空間表空間) segments (段段) extents (擴展區(qū)擴展區(qū)) schema object (架構(gòu)對象架構(gòu)對象) 表空間、段和擴展區(qū)是邏輯結(jié)構(gòu),它們決定模式對象存儲空間的使用情況。表空間1數(shù)據(jù)庫由稱為表空間的邏輯單位組成一個數(shù)據(jù)庫為可以包含一個或多個表空間表空間包含一組相關(guān)的數(shù)據(jù)庫對象邏輯表空間具有一個或多個與之相關(guān)的物理數(shù)據(jù)庫文件,但是一個數(shù)據(jù)文件只能與一個表空間相關(guān)聯(lián)。 oracle 數(shù)據(jù)庫中的典型表空間是: system 表空間 用于存儲數(shù)據(jù)庫管理自身所需的所

6、有信息,即數(shù)據(jù)詞典信息 data 表空間 用于存儲實際數(shù)據(jù) user 表空間 用于存儲關(guān)于用戶的信息 tools 表空間 用于存儲不同工具所需的數(shù)據(jù)庫對象 temp 表空間 用于存儲在大型排序操作過程中所創(chuàng)建存儲的所有臨時表。它一般在處理過程中用作緩沖空間表空間2 數(shù)據(jù)庫數(shù)據(jù)庫 data1.ora 1mb data2.ora 1mb system 表空間 data3.ora 4mb user 表空間 數(shù)據(jù)文件 1 數(shù)據(jù)文件 2 數(shù)據(jù)文件 3 上圖闡明了如下情況:上圖闡明了如下情況:每個數(shù)據(jù)庫都在邏輯上分成一個或多個表空間將為每個表空間顯式創(chuàng)建一個或多個數(shù)據(jù)文件,以將所有物理結(jié)構(gòu)的數(shù)據(jù)存儲在一個

7、表空間之內(nèi)表空間數(shù)據(jù)文件的組合大小是表空間的總的存儲容量(system表空間具有2mb存儲容量,user表空間有4mb)數(shù)據(jù)庫表空間的組合存儲容量是數(shù)據(jù)庫的總的存儲容量(6m)表空間3 表空間可以用于:控制數(shù)據(jù)庫對象的空間分配,如表和索引設(shè)置數(shù)據(jù)庫用戶的空間配額通過使單個表空間聯(lián)機或脫機來控制數(shù)據(jù)的可用性備份或恢復(fù)數(shù)據(jù)10段 表空間中的邏輯單位形式上為段 表空間中的數(shù)據(jù)存儲在分配的數(shù)據(jù)庫空間中,稱為段 段被定義成給邏輯數(shù)據(jù)庫結(jié)構(gòu)分配的擴展區(qū)集合 不同類型的段: 數(shù)據(jù)段數(shù)據(jù)段 索引段索引段 回滾段回滾段 臨時段臨時段擴展區(qū)1 擴展區(qū)由一定數(shù)目的相鄰數(shù)據(jù)塊組成,段是擴展區(qū)的集合 增量擴展區(qū)是與上次

8、該段中分配的擴展區(qū)大小相同或更大的后續(xù)擴展區(qū) oracle 使用獨立的算法搜索整個自由空間查找第一個具有與增量擴展區(qū)具有相同的或更大容量的自由、臨近數(shù)據(jù)塊集合 擴展區(qū)2 一旦 oracle 在表空間中找到并分配了必需的可用空間,則它將分配一部分與新增擴展區(qū)大小相對應(yīng)的可用空間 oracle 更新段標(biāo)題和數(shù)據(jù)詞典,以顯示新的擴展區(qū)已經(jīng)被分配而且分配的空間不再可用 13數(shù)據(jù)塊 數(shù)據(jù)塊代表數(shù)據(jù)庫存儲粒度的最細(xì)級別。數(shù)據(jù)塊大小定義為一定數(shù)目的字節(jié)數(shù),此數(shù)目通常取決于操作系統(tǒng)。 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k

9、 b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 2 k b 數(shù)據(jù)塊擴展區(qū) 擴展區(qū) 段 14oracle 的結(jié)構(gòu)化查詢工具主要的sql工具包括 : sql*plus 它是一個可以接受和執(zhí)行 sql 命令以及 pl/sql 塊的工具,它可以用于: 輸入、編輯、存儲、檢索和運行sql命令以及pl/sql塊 為任

10、意表列出列定義 在sql數(shù)據(jù)庫之間訪問和復(fù)制數(shù)據(jù) 向用戶發(fā)送消息,并從用戶接受響應(yīng)isql*plus 與 sql*plus 類似,但它主要用在web的工作方式上,也就是說,它可以通過瀏覽器進行訪問 它還提供了可以修改sql語句的聯(lián)機編輯功能 還可以使用 isql*plus 將查詢結(jié)果格式化為基本報告 isql*plus既可以訪問遠(yuǎn)程數(shù)據(jù)庫,也可以訪問本地數(shù)據(jù)庫。pl/sql 是 sql 的擴展,它將 sql 的數(shù)據(jù)操縱能力和過程語言的數(shù)據(jù)處理能力結(jié)合到了一起sql 語言15 sql:即為structured query language(結(jié)構(gòu)化查詢語言) sql的優(yōu)點: 它是一種非過程語言,因

11、為可以同時訪問多個記錄,而不是一次只能訪問一個記錄它是所有關(guān)系數(shù)據(jù)庫的公用語言。也就是說,它是可以移植的,只需對它作極少的修改即可用于其它的數(shù)據(jù)庫用于查詢、插入、刪除以及修改數(shù)據(jù)和對象的命令非常簡單sql 命令的類別類 別功 能舉 例數(shù)據(jù)庫控制語言(dcl)控制對數(shù)據(jù)庫的訪問,啟動和關(guān)閉等對系統(tǒng)權(quán)限進行授權(quán)和回收。如:grant、revoke 等命令語句數(shù)據(jù)庫定義語言 (ddl)用來創(chuàng)建、刪除及修改數(shù)據(jù)庫對象如:create、alter 和 drop 等命令語句數(shù)據(jù)庫操縱語言 (dml)用來操縱數(shù)據(jù)庫的內(nèi)容,包括查詢查詢、插入、刪除、修改和鎖定操作。如:select、insert、update

12、、delete、lock table 等命令語句數(shù)據(jù)庫事務(wù)處理控制語言(tpcl)實現(xiàn)對數(shù)據(jù)的交互過程的完整控制與數(shù)據(jù)庫事物 處理相關(guān)。如:commit 、 rollback 、savepoint、set transaction 等命令語句sql命令的分類數(shù)據(jù)定義語言(ddl) 數(shù)據(jù)定義語言:用于創(chuàng)建對象(如:表)、修改對象的結(jié)構(gòu)以及刪除所創(chuàng)建的對象。 表:是以行和列的形式存儲數(shù)據(jù)的存儲單元。用于定義表的數(shù)據(jù)定義語言可以被歸類為下列的四個命令:create 命令alter 命令truncate 命令drop 命令數(shù)據(jù)定義語言create table 命令1create table 命令創(chuàng)建表的

13、語法如下所示: create table schema.table (column datatype default expr , ); 其中關(guān)鍵字 schema 表示對象所有者的名字。如果我們在自己的方案中創(chuàng)建表,則不需要指定所有者的姓名。table表示該表的名稱。default 則用于在 insert 語句中省略了列值時為其指定默認(rèn)值。column 表示列的名稱。datatype 表示列的數(shù)據(jù)類型以及長度。創(chuàng)建表時,應(yīng)指定下列內(nèi)容: 表的唯一名稱 表中各列的唯一名稱 列的數(shù)據(jù)類型及寬度 數(shù)據(jù)定義語言 create table 命令2 表名的命名規(guī)則,應(yīng)該嚴(yán)格遵循下列準(zhǔn)則在對表進行命名時,第

14、一個字母應(yīng)該是字母表中的字母oracle保留字不能用來對表命名表名的最大長度應(yīng)=30個字符兩個不同的表不能有相同的名稱可以使用下劃線、數(shù)字和字母,但不能使用空格和單引號如果用戶使用了雙引號對表進行命名,如“inf”,則要區(qū)分大小寫。例如:“inf”,“inf”,和“inf”并不相同oracle主要數(shù)據(jù)類型 1 character 數(shù)據(jù)類型 number 數(shù)據(jù)類型 date 數(shù)據(jù)類型 raw 和 long raw 數(shù)據(jù)類型 lob 數(shù)據(jù)類型oracle主要數(shù)據(jù)類型 2character 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途char長度介于1到2000個字節(jié)之間。默認(rèn)長度為一個

15、字節(jié)。如果用戶輸入一個小于指定長度的值,則數(shù)據(jù)庫會使用空格填補的方式達到固定長度。如果用戶輸入大于指定長度的值,數(shù)據(jù)庫將返回一條錯誤信息。固定長度的字符串。存儲字母、數(shù)字值。一個字符占兩個字節(jié)。此數(shù)據(jù)類型的格式是:char(n)其中,n是長度。varchar2長度介于1到4000個字節(jié)之間。定義此數(shù)據(jù)類型時,應(yīng)該指定大小。如果用戶輸入一個小于指定長度的值,則數(shù)據(jù)庫中只會占用實際輸入的數(shù)據(jù)的長度。如果用戶輸入大于指定長度的值,數(shù)據(jù)庫將返回一條錯誤信息。支持可變長度的字符串。存儲字母、數(shù)字值。使用varchar2數(shù)據(jù)類型比使用char節(jié)省磁盤空間。一個字符占兩個字節(jié)。此數(shù)據(jù)類型的格式是:varch

16、ar2(n)其中,n是長度。oracle主要數(shù)據(jù)類型3character 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途nvarchar2長度介于1到4000個字節(jié)之間。nvarchar2不區(qū)分中英文,比如說:你定義了nvarchar2 (20),你可以存入20個英文字母/漢字或中英文組合,這個20定義的是字符數(shù)而不是字節(jié)數(shù) 。此數(shù)據(jù)類型的格式是:nvarchar2(n)其中,n是長度。long最大大小為2gb。其它特征與varchar2相似。用于存儲可變長度的字符數(shù)據(jù)。當(dāng)在表中某個列使用long數(shù)據(jù)類型時要有以下限制:1、表中只有一列可以為long數(shù)據(jù)類型2、long列不能定義為唯

17、一或主鍵約束3、不能在long列上建立索引4、過程或存儲過程中不能接受long數(shù)據(jù)類型作為參數(shù)此數(shù)據(jù)類型的格式是:longoracle主要數(shù)據(jù)類型 4number 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途number此數(shù)據(jù)類型的格式是:number(p, s)。用法如下:1、column_name number p=38, s=02、column_name number(p) 整型3、column_name number(p, s) 浮點其中,p是精度,指總的數(shù)字?jǐn)?shù),可以為1至38不等;s指小數(shù)位數(shù),即小數(shù)點右邊的數(shù)字?jǐn)?shù),它可以是 -84 至 127 不等。可以存儲正數(shù)、負(fù)數(shù)、

18、零、定點數(shù)以及精度為38的浮點數(shù)。這種數(shù)據(jù)類型是在 oracel 進程中運算。如果希望用來存儲金融數(shù)值,則必須用number。oracle主要數(shù)據(jù)類型 5浮點數(shù)據(jù)類型: binary_double、 binary_float 這兩種類型是 oracle 10g 新引進的數(shù)值類型。在 oracle 10g 之前是沒有這兩種類型的,這兩種數(shù)據(jù)類型是在硬盤上執(zhí)行運算,因而它們的運算速度要快很多,但它們的精度卻很小。數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途binary_double可存儲14位精度的小數(shù)位是一種ieee固有的雙精度浮點數(shù)。在小數(shù)位14位時,對第15位做四舍五入binary_fl

19、oat可存儲8位精度的小數(shù)位是一種ieee固有的單精度浮點數(shù)。在小數(shù)位8位時,對第9位做四舍五入oracle主要數(shù)據(jù)類型 6date 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途date介于公元前4712年1月1日 至 公元4712年12月31日用于在表中存儲日期和時間。2011.10.20 11:19:34 格式:2011-10-20 11:19:34timestamp用于存儲日期和時間,時間甚至包括以小數(shù)表示的秒,還包括上下午。2011.10.20 11:19:34 格式:20-10月-11 11.19.34.000000 上午interval day to second將時間

20、存儲為日、小時、分鐘直至秒的時間間隔。從日期到秒各加一個單位,通過這種語句來操作:interval 1 1:1:1 day to second 或 1 1:1:1顯示出來的格式:+01 01:01:01.000000interval year to month將時間存儲為年和月的時間間隔。從年到月各加一個單位,通過這種語句來操作:interval 1-1 year to month 或 1-1 顯示出來的格式:+01-01timestamp with local time zone在存儲數(shù)據(jù)時,數(shù)據(jù)將被規(guī)范化為數(shù)據(jù)庫時區(qū);而在檢索數(shù)據(jù)時,數(shù)據(jù)將被調(diào)整為與客戶機的時區(qū)相匹配。2011.10.20

21、 11:19:34 格式:20-10月-11 11.19.34.000000 上午timestamp with time zone表示日期和時間值,及其相關(guān)的時區(qū)設(shè)置。2011.10.20 11:19:34 格式:20-10月-11 11.19.34.000000 上午 +08:00oracle主要數(shù)據(jù)類型 7raw 和 long raw 數(shù)據(jù)類型:用于存儲二進制數(shù)據(jù)的數(shù)據(jù)類型。數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途raw長度介于1至2000個字節(jié)。使用這個類型時,應(yīng)該指定其大小,因為它沒有默認(rèn)大小。用于存儲面向字節(jié)的數(shù)據(jù),如二進制數(shù)據(jù)或字節(jié)串。long raw最大介可以為2gb用于

22、存儲可變長度的二進制數(shù)據(jù)。當(dāng)在表中某個列使用 long raw 數(shù)據(jù)類型時要有以下限制:1、表中只有一列可以為 long raw 數(shù)據(jù)類型2、long raw 列不能定義為唯一或主鍵約束3、不能在 long raw 列上建立索引4、過程或存儲過程不能接受 long raw 數(shù)據(jù)類型作為參數(shù)此數(shù)據(jù)類型的格式是:long raworacle主要數(shù)據(jù)類型 8lob 數(shù)據(jù)類型:lob也稱為 large object數(shù)據(jù)類型。此數(shù)據(jù)類型可以存儲非結(jié)構(gòu)化的信息,如:聲音剪輯、視頻文件等,它是最大大小為4gb。此數(shù)據(jù)類型允許有效、隨機、分段地訪問數(shù)據(jù)。數(shù)據(jù)類型數(shù)據(jù)類型值的大小范圍值的大小范圍用途用途clob

23、clob 全稱 character lob (字符lob),它可以存儲大容量的字符數(shù)據(jù)。clob 用于存儲非結(jié)構(gòu)化的xml文檔非常有用。此數(shù)據(jù)類型的格式是:clobblobblob 全稱 binary lob (二進制lob),它用于存儲大型二進制對象,如:圖形、視頻剪輯和聲音文件等。此數(shù)據(jù)類型的格式是:blobnclob和 clob 類似,只不過 nclob 每個中英文字符都看成一個字符。此數(shù)據(jù)類型的格式是:nclob約束條件表的框架是有一些規(guī)則的,約束條件就是對列定義的一種規(guī)則,一列中每個數(shù)據(jù)都必須遵循這種規(guī)則 主鍵 外鍵 非空 唯一 默認(rèn)值 其他條件 oracle的數(shù)據(jù)完整性完整性約束:

24、數(shù)據(jù)完整性(data integrity)是指數(shù)據(jù)的精確性(accuracy)和可靠性(reliability)。數(shù)據(jù)完整性分為四類:q實體完整性(entity integrity)q域完整性(domain integrity)q參照完整性(referential integrity)q用戶定義的完整性(user-definedintegrity) 實體完整性q實體完整性(entity integrity):實體完整性規(guī)定表的每一行在表中是唯一的實體。在數(shù)據(jù)表中可以對相應(yīng)字段進行如下約束來實現(xiàn)實體完整性:unique(唯一約束):保證在指定的列中沒有重復(fù)值,在該表中每一個值或者每一組值都將是唯

25、一的。primary key(主鍵約束):用來唯一的標(biāo)識出表的每一行,并且防止出現(xiàn)null值,一個表只能有一個主鍵約束,主鍵可以由一個列或多個列組成。identity(自增標(biāo)識列):自動增長的列域完整性q域完整性(domain integrity):是指數(shù)據(jù)庫表中的列必須滿足某種特定的數(shù)據(jù)類型或約束。域完整性有以下幾種約束:check(檢查約束):檢查在約束中指定的條件是否得到了滿足。foreign key(外鍵約束):通過使用公共列在表之間建立一種父子(parent-child)關(guān)系,在表上定義的外部鍵可以指向主鍵或者其他表的唯一鍵。default(默認(rèn)值約束):如果增加一行的數(shù)據(jù)時,不為這

26、個列設(shè)置值,則通過這個默認(rèn)值來填充該列的值。not null(不為空值約束) :防止null值進入指定的列,在單列基礎(chǔ)上定義,默認(rèn)情況下,oracle允許在任何列中有null值參照完整性q參照完整性(referential integrity):是指兩個表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)對應(yīng)一致。參照完整性作用表現(xiàn)在如下幾個方面:禁止在從表中插入主表中不存在的關(guān)鍵字的數(shù)據(jù)行禁止會導(dǎo)致從表中的相應(yīng)值孤立的主表中的外關(guān)鍵字值改變禁止刪除在從表中的有對應(yīng)記錄的主表記錄用戶定義的完整性q用戶定義的完整性(user-defined integrity):是針對某個特定關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用

27、所涉及的數(shù)據(jù)必須滿足的語義要求。數(shù)據(jù)庫系統(tǒng)提供了定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)方法來處理它們,而不是用應(yīng)用程序來承擔(dān)這一功能。其它的完整性類型都支持用戶定義的完整性。 數(shù)據(jù)定義語言alter table 命令有時根據(jù)情況,可能需要修改表的結(jié)構(gòu)。這種修改可能是修改現(xiàn)有屬性的特性,也可能是添加新屬性。用于修改表名的語法如下:alter table rename to 新表名;用于修改現(xiàn)有列定義的語法如下:alter table modify (column definition, constraint definition);用于向現(xiàn)有表中添加新的列的語法如下:alter table

28、 add (column definition, constraint definition);用于從現(xiàn)有表中刪除列的語法如下:格式1: alter table drop column 列名;格式2: alter table drop (列名1,列名2,.);用于從現(xiàn)有表中刪除約束的語法如下: alter table drop constraint 約束名稱;用于將現(xiàn)有表中的列設(shè)置為不可用的語法如下: alter table set unused (列名1, 列名2.); 刪除大型的表中的列可能要花費相當(dāng)長的時間。一種較快的替代方法就是使用 alter table 命令的 set unused

29、 選項將此列標(biāo)記為不可用。在這種情況下,該列的數(shù)據(jù)還仍然保留在表中,但是它不再可用,未使用的列可以在以后需要收回些列數(shù)據(jù)所占用的空間時進行刪除。alter table 命令在下列情況下使用:用戶要添加新的列要修改數(shù)據(jù)類型的寬度或數(shù)據(jù)類型本身要包括或刪除完整性約束條件 假如表為空,可以減小現(xiàn)有列數(shù)據(jù)類型的長度。要增加現(xiàn)在列的長度時,沒有這些限制。數(shù)據(jù)定義語言truncate table 命令如果只想刪除表的記錄,而不刪除表的結(jié)構(gòu),并釋放此表使用的存儲空間,可以使用 truncate table 命令來操作,語法如下: truncate table ;如果將 “reuse storage”子句添加

30、到上述命令中,則表示保留被刪除的行所使用的空間,語法如下: truncate table reuse storage;在命令行窗口,輸入以下語法,可以查看表結(jié)構(gòu):desc ;數(shù)據(jù)定義語言drop table 命令 drop table 命令用于從數(shù)據(jù)庫中刪除表,此操作即刪除了表中的數(shù)據(jù),又刪除表的結(jié)構(gòu),語法如下:drop table ;數(shù)據(jù)操縱語言(dml) 數(shù)據(jù)操縱語言是使用最頻繁的sql命令。它們用于查詢和操縱現(xiàn)有表中的數(shù)據(jù)。dml命令如下: insert select update delete數(shù)據(jù)操縱語言(dml)insert 命令一旦完成了創(chuàng)建表的第一步,必須使用數(shù)據(jù)填充表。inse

31、rt 命令用于向表中添加一個或多個行。使用此命令時,需用逗號對值進行分隔,具有 varchar2、char、raw、long 和 date 等數(shù)據(jù)類型的列的值用單引號括起來。插入單條記錄的 insert 語句的語法如下:insert into (column,column)values (value,value);將一個查詢結(jié)果的記錄插入到表中的 insert 語句的語法如下: insert into (column,column.) select column,column. from ; 其中 object table name 是目標(biāo)表, source table name 是數(shù)據(jù)源表。

32、插入多條記錄的 insert 語句的語法如下:insert into values (&column,&column);其中 column 是列名,執(zhí)行此命令時,oracle會提示用戶為表的所有列輸入值,當(dāng)輸入完值后,要對輸入的數(shù)據(jù)做提交,也就是執(zhí)行 commit 命令。數(shù)據(jù)定義語言 create sequence 命令create sequence 命令:將向當(dāng)前數(shù)據(jù)庫里增加一個新的序列號生成器。創(chuàng)建序列的語法如下所示: create sequence schema.sequencenameincrement by 1 - 設(shè)置每次步長為1start with 1 - 設(shè)置從1開始計數(shù)min

33、value 1 - 設(shè)置最小計數(shù)為1maxvalue 999999999 - 設(shè)置最大計數(shù)為999999999nocycle - 一直累加,不循環(huán),也可以設(shè)置 為 cycle(循環(huán))cache 10; - 設(shè)置緩存cache個序列,如果系統(tǒng)宕掉了或者其它情況將會導(dǎo)致序列不連續(xù)也可以設(shè)置為 nocache(不緩存) 其中關(guān)鍵字 schema 表示對象所有者的名字。如果我們在自己的方案中創(chuàng)建序列,則不需要指定所有者的姓名。sequencename 表示該序列的名稱。數(shù)據(jù)操縱語言(dml)select 命令通過 select 命令可以請求存儲在表中的信息。這通常稱為“查詢”表。select 是使用最

34、頻繁的命令。select 語句的語法如下:select *|distinct column |expression alias, from ;其中,“*”代表查詢表中所有的列值; “distinct”過濾掉指定列重復(fù)的數(shù)據(jù);“expression ”表示對列的值可以進行表達式運算;“alias”表示可以對列指定一個別名;“table name”表示要查詢的表名。帶有 where 子句和 order by 子句的 select 命令的語法如下:select *|distinct column |expression alias, from where conditionorder by colu

35、mn | alias asc | desc , column | alias asc | desc , ;其中,condition 是一個條件表達式;column 表示列名;alias 表示列的別名;order by 子句表示指定的排序規(guī)則;asc 表示升序;desc 表示降序。在 select 命令中 order by 子句應(yīng)該是最后一個子句。where 子句還可以用于 delete 和 update 命令中。在這些情況下,oracle 會根據(jù)在 where 子句中指定的條件刪除或更新表中的一行或多行。數(shù)據(jù)操縱語言(dml)update 命令 有時可能需要修改存儲在數(shù)據(jù)庫表中的值。這時就可以

36、對表中的現(xiàn)有記錄使用 update 命令,來更新表中的行。使用此命令可以更新零個或多個行。如果要限定對特定的行進行更新,可以使用 where 子句。 update 命令的語法如下:update set column = value , column = value, where condition;在上述語法中,where 子句和 set 子句還可以包含查詢。如果滿足 where 子句的條件,update 語句將使用所提供的值設(shè)置每一個字段。數(shù)據(jù)操縱語言(dml)delete 命令 在表中插入行后,如果不再需要該數(shù)據(jù),可以刪除這些行。delete 命令用于從表中刪除行。 delete 命令的語

37、法如下:delete from where condition;使用 delete 命令可以刪除零行或多行。另外,還可以刪除表的所有行,而表的結(jié)構(gòu)保持不變。要刪除表的特定行,可以將 delete 命令與 where 子句一起使用。where 子句還可以包含查詢。 刪除表中所有行的 delete 命令的語法如下: delete from ;事務(wù)處理控制語言(tcl) 事務(wù)處理是作業(yè)的邏輯單元。 對數(shù)據(jù)庫所做的所有修改都稱為事務(wù)處理。 只有將事務(wù)處理修改提交后,才能執(zhí)行對數(shù)據(jù)庫的永久修改。 事務(wù)處理以可執(zhí)行的 sql 語句開頭,并以 rollback 或 commit 語句明確地結(jié)束,如果使用 ddl 語句,則隱式(即自動)地結(jié)束。事務(wù)處理控制語言(tcl)commit 命令 此命令用于結(jié)束事務(wù)處理。只有借助于 commit 命令,

溫馨提示

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

評論

0/150

提交評論