程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 數據庫-索引、基本表創建與刪除

數據庫-索引、基本表創建與刪除

編輯:SyBase教程

數據庫-索引、基本表創建與刪除


修改基本表

ALTER TABLE <表名>
[ ADD <新列名> <數據類型> [ 完整性約束 ] ]
[ DROP <完整性約束名> ]
[ ALTER COLUMN<列名> <數據類型> ];
[例8]向Student表增加“入學時間”列,其數據類型為日期型。
     ALTER TABLE Student ADD S_entrance DATE;
不論基本表中原來是否已有數據,新增加的列一律為空值。 
[例9]將年齡的數據類型由字符型(假設原來的數據類型是字符型)改為整數。
            ALTER TABLE Student ALTER COLUMN Sage INT;
[例10]增加課程名稱必須取唯一值的約束條件。
            ALTER TABLE Course ADD UNIQUE(Cname); 

刪除基本表

DROP TABLE <表名>[RESTRICT| CASCADE];
RESTRICT:刪除表是有限制的。
欲刪除的基本表不能被其他表的約束所引用
如果存在依賴該表的對象,則此表不能被刪除
CASCADE:刪除該表沒有限制。
在刪除基本表的同時,相關的依賴對象一起刪除 
    [例11]  刪除Student表
     DROP TABLE  Student  CASCADE ;
基本表定義被刪除,數據被刪除
表上建立的索引、視圖、觸發器等一般也將被刪除 
[例12]若表上建有視圖,選擇RESTRICT時表不能刪除   
    CREATE VIEW IS_Student      
    AS 
        SELECT Sno,Sname,Sage
        FROM  Student
            WHERE Sdept='IS';

        DROP TABLE Student RESTRICT;   
          --ERROR: cannot drop table Student because other 
                            objects depend on it
[例12]如果選擇CASCADE時可以刪除表,視圖也自動被刪除 
DROP TABLE Student CASCADE;         
 --NOTICE: drop cascades to view IS_Student
SELECT * FROM IS_Student;
--ERROR: relation " IS_Student " does not exist 

索引的建立與刪除

建立索引的目的:加快查詢速度
誰可以建立索引
DBA 或 表的屬主(即建立表的人)
DBMS一般會自動建立以下列上的索引
PRIMARY KEY
UNIQUE
誰 維護索引
DBMS自動完成
使用索引
DBMS自動選擇是否使用索引以及使用哪些索引
RDBMS中索引一般采用B+樹、HASH索引來實現
B+樹索引具有動態平衡的優點
HASH索引具有查找速度快的特點
采用B+樹,還是HASH索引 則由具體的RDBMS來決定
索引是關系數據庫的內部實現技術,屬於內模式的范疇
CREATE INDEX語句定義索引時,可以定義索引是唯一索引、非唯一索引或聚簇索引

語句格式
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> 
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
[例13] CREATE CLUSTER INDEX Stusname 
           ON   Student(Sname);
在Student表的Sname(姓名)列上建立一個聚簇索引
在最經常查詢的列上建立聚簇索引以提高查詢效率 
一個基本表上最多只能建立一個聚簇索引 
經常更新的列不宜建立聚簇索引 
  [例14]為學生-課程數據庫中的Student,Course,SC三個表建  立索引。

CREATE UNIQUE INDEX  Stusno ON Student(Sno);
CREATE UNIQUE INDEX  Coucno ON Course(Cno);
CREATE UNIQUE INDEX  SCno ON SC(Sno ASC,Cno DESC);

      Student表按學號升序建唯一索引
      Course表按課程號升序建唯一索引
      SC表按學號升序和課程號降序建唯一索引
DROP INDEX <索引名>;
刪除索引時,系統會從數據字典中刪去有關該索引的
描述。
[例15]  刪除Student表的Stusname索引
       DROP INDEX Stusname;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved