Oracle數據庫中表與視圖的應用

Oracle數據對象中最基本的是視圖,表由記錄(行row)和字段(列column)構成,是數據庫中存儲數據的結構。要進行數據的存儲和管理,首先要在數據庫中創建表,即表的字段(列)結構。有了正確的結構,就可以用數據操作命令,插入、刪除表中記錄或對記錄進行修改。其他還有約束、序列、函數、存儲過程、包、觸發器等。對數據庫的操作可以基本歸結爲對數據對象的操作,理解和掌握Oracle數據庫對象是學習Oracle的捷徑。

  一、表的創建

  1.創建表的語法

  表的創建需要CREATE TABLE 系統權限,表的基本創建語法如下:

  CREATE TABLE 表名

  列名 數據類型[DEFAULT 表達式][COLUMN CONSTRAINT],

  [TABLE CONSTRAINT]

  [TABLE_PARTITION_CLAUSE]

  );

  由此可見,創建表最主要的是要說明表名、列名、列的數據類型和寬度,多列之間用“,”分隔。可以是用中文或英文作爲表名和列名。表名最大長度爲30個字符。在同一個用戶下,表不能重名,但不同用戶表的名稱可以相重。另外,表的名稱不能使用Oracle的保留字。在一張表中最多可以包含2000列。該語法中的其他部分根據需要添加,作用如下:

  DEFAULT 表達式:用來定義列的默認值。

  COLUMN CONSTRAINT:用來定義列級的約束條件。

  TABLE CONSTRAINT:用來定義表級的約束條件。

  TABLE_PARTITION_CLAUSE:定義表的分區子句。

  2.通過子查詢創建表

  如果要創建一個同已有的表結構相同或部分相同的表,可以採用以下的語法:

  CREATE TABLE 表名(列名) AS SQL查詢語句;

  該語法既可以複製表的結構,也可以複製表的內容,並可以爲新表命名新的列名。新的列名在表名後的括號中給出,如果省略將採用原來表的列名。複製的內容由查詢語句的WHERE條件決定。

  3.刪除已創建的表

  刪除表的語法如下:

  DROP TABLE 表名[CASCADE CONSTRAINTS];

  表的刪除者必須是表的創建者或具有DROP ANY TABLE權限。CASCADE CONSTRAINTS表示當要刪除的表被其他表參照時,刪除參照此表的約束條件。

  視圖的應用

  視圖是基於一張表或多張表或另外一個視圖的邏輯表。視圖不同於表,視圖本身不包含任何數據。表是實際獨立存在的實體,是用於存儲數據的基本結構。而視圖只是一種定義,對應一個查詢語句。視圖的數據都來自於某些表,這些表被稱爲基表。通過視圖來查看錶,就像是從不同的角度來觀察一個(或多個)表。

  二、視圖的創建

  創建視圖需要CREAE VIEW系統權限,視圖的創建語法如下:

  CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 視圖名[(別名1,別名2...)]

  AS 子查詢

  [WITH CHECK OPTION [CONSTRAINT 約束名]]

  [WITH READ ONLY]

  其中:

  OR REPLACE 表示替代已經存在的視圖。

  FORCE表示不管基表是否存在,創建視圖。

  NOFORCE表示只有基表存在時,才創建視圖,是默認值。

  別名是爲子查詢中選中的列新定義的名字,替代查詢表中原有的列名。

  子查詢是一個用於定義視圖的SELECT查詢語句,可以包含連接、分組及子查詢。

  WITH CHECK OPTION表示進行視圖插入或修改時必須滿足子查詢的約束條件。後面的約束名是該約束條件的名字。

  WITH READ ONLY 表示視圖是隻讀的。

  刪除視圖的語法如下:

  DROP VIEW 視圖名;

  刪除視圖者需要是視圖的建立者或者擁有DROP ANY VIEW權限。視圖的刪除不影響基表,不會丟失數據。

IT專家網原創文章

發佈了11 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章