數據庫概論----SQL數據定義


  關系數據庫系統系統支持三級模式結構,其模式,外模式和內模式中的基本對象有模式,表,視圖和索引等。因此SQL的數據定義功能包括模式定義,表定義,視圖和索引的定義。

   一個數據庫管理系統中可以建立多個數據庫,一個數據庫可以建立多個模式,一個模式下有多個表,視圖和索引等。

(一) 模式

  1.定義模式:

    CREATE SCHEMA <模式名> AUTHORIZATION <用戶名>;

    //當模式名為空時,默認為用戶名

    例:為用戶SONG創建一個模式TEST。

    CREATE SCHEMA TEST AUTHORIZATION SONG;

    

    在CREATE SCHEMA 中可以接受CREATE TABLE ,CREATE VIEW和GRANT子句。

    CREATE SCHEMA <模式名> SUTHORIZATION<用戶名> [<表定義子句>|<視圖定義子句>|<授權定義子句>];

    例:為用戶ZHANG創建一個模式TEST,並且在其中定義一個表TAB1。

    CREATE  SCHEMA TEST AUTHORIZATION ZHANG;

    CREATE  TABLE TAB1( COL1  SMALLINT,

               COL2  INT,

               COL3  CHAR(20)

               );

  2.刪除模式:

    DROP SCHEMA  <模式名> <CASCADE | RESTRICT>;

    其中CASCDE(級聯)表示在刪除模式的同時把該模式中所有的數據庫對象全部刪除;RESTRICT(限制)表示如果該模式已經定義了下屬的數據庫對象(如表,視圖等)則拒絕該刪除語句的執行。

 

(二)基本表

  1.定義基本表:

    CREATE<表名>(<列名><數據類型>[列級完整性約束條件]

           [,<列名><數據類型>[列級完整性約束條件]]

           ...

           [,<表級完整性約束條件>]);

    例:建立一個Student表。

      CREATE  TABLE  Student

        (Sno CHAR(9)PRIMARY  KEY,       /*Sno是主碼*/

        Sname  CHAR(20)UNIQUE.   /*Sname取唯一值*/

        Ssex  CHAR(2),

        Sdept  CHAR(20)

        Sage  SMALLINT

        );

  2.刪除基本表:

    DROP  TABLE  <表名>  [RESTRICT  |  CASCADE]

    若選擇RESTRICT,則該表的刪除是有限制的,欲刪除的表不能被其他表的約束所引用,不能有視圖,觸發器,存儲過程或函數;若選擇CASCADE,則該表的刪除沒有限制條件,相關內容一起刪除。

 

  3.修改基本表:

    ALTER TABLE <表名>

    [ ADD[COLUMN] <新列名> <數據類型> [ 完整性約束 ] ]

    [ ADD <表級完整性約束>]

    [ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]

    [ DROP CONSTRAINT<完整性約束名>[ RESTRICT | CASCADE ] ]

    [ALTER COLUMN <列名><數據類型> ] ;


    ADD子句用於增加新列、新的列級完整性約束條件和新的表級完整性約束條件;DROP COLUMN子句用於刪除表中的列;DROP CONSTRAINT子句用於刪除指定的完整性約束條件。

    例:向Student表增加“入學時間”列,其數據類型為日期型。

    ALTER TABLE Student ADD S_entrance DATE;

    例:將年齡的數據類型由字符型(假設原來的數據類型是字符型)改為整數。

     ALTER TABLE Student ALTER COLUMN Sage INT;

    例:增加課程名稱必須取唯一值的約束條件。

    ALTER TABLE Course ADD UNIQUE(Cname);

 

(三)索引

  1.索引的建立:

    CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

    ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

    <表名>:要建索引的基本表的名字 

    <次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC

    UNIQUE:此索引的每一個索引值只對應唯一的數據記錄

    CLUSTER:表示要建立的索引是聚簇索引

   2.索引的修改:

    ALTER INDEX <舊索引名> RENAME TO <新索引名>

    例:將SC表的SCno索引名改為SCSno。

      ALTER INDEX SCno RENAME TO SCSno;

  3.索引的刪除:

    DROP INDEX <索引名>;

    例:刪除Student表的Stusname索引。

      DROP INDEX Stusname;

    

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM