Oracle數(shù)據(jù)庫中表與視圖的應(yīng)用
Oracle數(shù)據(jù)庫是被很多人所擁護的一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),能都處理大批量的數(shù)據(jù),在網(wǎng)絡(luò)方面應(yīng)用的也比較多。Oracle數(shù)據(jù)對象中最基本的是表和視圖,表由記錄(行row)和字段(列column)構(gòu)成,是數(shù)據(jù)庫中存儲數(shù)據(jù)的結(jié)構(gòu)。要進行數(shù)據(jù)的存儲和管理,首先要在數(shù)據(jù)庫中創(chuàng)建表,即表的字段(列)結(jié)構(gòu)。有了正確的結(jié)構(gòu),就可以用數(shù)據(jù)操作命令,插入、刪除表中記錄或?qū)τ涗涍M行修改。其他還有約束、序列、函數(shù)、存儲過程、包、觸發(fā)器等。對數(shù)據(jù)庫的操作可以基本歸結(jié)為對數(shù)據(jù)對象的操作,理解和掌握Oracle數(shù)據(jù)庫對象是學(xué)習(xí) Oracle的捷徑。
一、表的創(chuàng)建
1.創(chuàng)建表的語法
表的創(chuàng)建需要CREATE TABLE 系統(tǒng)權(quán)限,表的基本創(chuàng)建語法如下:
CREATE TABLE 表名
列名 數(shù)據(jù)類型[DEFAULT 表達式][COLUMN CONSTRAINT],
[TABLE CONSTRAINT]
[TABLE_PARTITION_CLAUSE]
);
由此可見,創(chuàng)建表最主要的是要說明表名、列名、列的數(shù)據(jù)類型和寬度,多列之間用“,”分隔??梢允怯弥形幕蛴⑽淖鳛楸砻土忻?。表名***長度為30個字符。在同一個用戶下,表不能重名,但不同用戶表的名稱可以相重。另外,表的名稱不能使用Oracle的保留字。在一張表中最多可以包含2000列。該語法中的其他部分根據(jù)需要添加,作用如下:
DEFAULT 表達式:用來定義列的默認值。
COLUMN CONSTRAINT:用來定義列級的約束條件。
TABLE CONSTRAINT:用來定義表級的約束條件。
TABLE_PARTITION_CLAUSE:定義表的分區(qū)子句。
2.通過子查詢創(chuàng)建表
如果要創(chuàng)建一個同已有的表結(jié)構(gòu)相同或部分相同的表,可以采用以下的語法:
CREATE TABLE 表名(列名) AS SQL查詢語句;
該語法既可以復(fù)制表的結(jié)構(gòu),也可以復(fù)制表的內(nèi)容,并可以為新表命名新的列名。新的列名在表名后的括號中給出,如果省略將采用原來表的列名。復(fù)制的內(nèi)容由查詢語句的WHERE條件決定。
3.刪除已創(chuàng)建的表
刪除表的語法如下:
DROP TABLE 表名[CASCADE CONSTRAINTS];
表的刪除者必須是表的創(chuàng)建者或具有DROP ANY TABLE權(quán)限。CASCADE CONSTRAINTS表示當要刪除的表被其他表參照時,刪除參照此表的約束條件。
視圖的應(yīng)用
視圖是基于一張表或多張表或另外一個視圖的邏輯表。視圖不同于表,視圖本身不包含任何數(shù)據(jù)。表是實際獨立存在的實體,是用于存儲數(shù)據(jù)的基本結(jié)構(gòu)。而視圖只是一種定義,對應(yīng)一個查詢語句。視圖的數(shù)據(jù)都來自于某些表,這些表被稱為基表。通過視圖來查看表,就像是從不同的角度來觀察一個(或多個)表。
二、視圖的創(chuàng)建
創(chuàng)建視圖需要CREAE VIEW系統(tǒng)權(quán)限,視圖的創(chuàng)建語法如下:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 視圖名[(別名1,別名2...)]
AS 子查詢
[WITH CHECK OPTION [CONSTRAINT 約束名]]
[WITH READ ONLY]
其中:
OR REPLACE 表示替代已經(jīng)存在的視圖。
FORCE表示不管基表是否存在,創(chuàng)建視圖。
NOFORCE表示只有基表存在時,才創(chuàng)建視圖,是默認值。
別名是為子查詢中選中的列新定義的名字,替代查詢表中原有的列名。
子查詢是一個用于定義視圖的SELECT查詢語句,可以包含連接、分組及子查詢。
WITH CHECK OPTION表示進行視圖插入或修改時必須滿足子查詢的約束條件。后面的約束名是該約束條件的名字。
WITH READ ONLY 表示視圖是只讀的。
刪除視圖的語法如下:
DROP VIEW 視圖名;
刪除視圖者需要是視圖的建立者或者擁有DROP ANY VIEW權(quán)限。視圖的刪除不影響基表,不會丟失數(shù)據(jù)。
這就是我要為大家介紹的Oracle數(shù)據(jù)庫中表與視圖的應(yīng)用,Oracle數(shù)據(jù)庫中表與視圖的應(yīng)用是Oracle數(shù)據(jù)庫應(yīng)用中很重要的兩個應(yīng)用,希望這篇文章能夠幫到大家。
【編輯推薦】