官术网_书友最值得收藏!

實例021 復制相同結構的表

【實例描述】

當實際應用中需要使用兩個相同結構的數據表時,可以直接通過表結構復制功能實現。MS SQL Server、Access等數據庫提供了圖形化的操作界面來實現,而Oracle PL/SQL提供了一條簡單語句來完成。

本實例參照圖2-7中的STU表,通過CREATE TABLE命令復制一個與STU表結構相同的基本表STU1,操作完成后在SQL*Plus中可以看到STU和STU1兩個表的結構,如圖2-11所示。

圖2-11 復制相同結構的表

【實現過程】

(1)確認STU1表是否存在,如果創建一個與已存在表相同名稱的表將出現錯誤。通過DESC STU1命令查看STU1表。

    SQL> DESC STU1
    ERROR:
    ORA-04043: 對象STU1 不存在

(2)如果在Oracle SQL*Plus中使用以上命令后出現ERROR錯誤,并提示該表不存在后即可在其中輸入如下代碼復制表結構。

    SQL> CREATE TABLE STU1
      2  AS
      3  SELECT * FROM STU WHERE 1=2
      4  /

(3)SQL語句執行完成后再使用DESC STU1命令查看STU1表的結構,觀察其字段是否與STU表一致。

【范例解析】

本實例使用CREATE TABLE命令創建基本表,與實例016不同的是沒有定義基本表的字段、數據類型和約束等參數,而是以另一個已經存在的表作為藍本進行創建。在Oracle PL/SQL中,復制相同結構的表使用如下語句:

    CREATE TABLE table_new
     AS
     SELECT * FROM table_old WHERE 1=2

其中,AS是復制表結構的關鍵字,SELECT子句是從已存在的表中獲取所有字段,WHERE子句表示只復制表結構,不復制表數據,關于表數據的復制,在后面的實例中還將會具體講解到。

注意:上述語句中的WHERE子句只是用于限制表數據的復制,其并不是唯一的寫法,讀者也可以將該實例改寫如下,其執行效果是相同的。

    SQL> CREATE TABLE STU1
      2  AS
      3  SELECT * FROM STU WHERE ROWNUM<1
      4  /
主站蜘蛛池模板: 望城县| 日照市| 无棣县| 兴城市| 江津市| 巨鹿县| 泰和县| 景德镇市| 南溪县| 澎湖县| 文成县| 友谊县| 乌拉特后旗| 涟源市| 梁平县| 阜南县| 阿鲁科尔沁旗| 黄浦区| 嘉祥县| 获嘉县| 三河市| 正安县| 舞阳县| 广宁县| 吴江市| 鄂托克前旗| 嵊州市| 北碚区| 福建省| 青龙| 株洲县| 元氏县| 乌审旗| 丽水市| 新巴尔虎左旗| 开封县| 额敏县| 资中县| 葵青区| 工布江达县| 桐乡市|