[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > Informix > 正文
Informix SQL 語句詳解 (1)
本文出自: http://go3.163.com/~axiom999/ (2001-06-18 17:04:00)
1.      CREATE DATABASE database_name [WITH LOG IN “pathname”]

創建數據庫。

database_name:數據庫名稱。

“pathname”:事務處理日志文件。

創建一database_name.dbs目錄,存取權限由GRANT設定,無日志文件就不能使用

BEGIN WORK等事務語句(可用START DATABASE語句來改變)。

可選定當前數據庫的日志文件。

如:select dirpath form systables where tabtype = “L”;

例:create databse customerdb with log in “/usr/john/log/customer.log”;

 

DATABASE databse-name [EXCLUSIVE] 
選擇數據庫。

database_name:數據庫名稱。

EXCLUSIVE:獨佔狀態。

存取當前目錄和DBPATH中指定的目錄下的數據庫,事務中處理過程中不要使用此語句。

例:dtabase customerdb;

 

3.      CLOSE DATABASE

關閉當前數據庫。

database_name:數據庫名稱。

此語句之,只有下列語句合法:

CREATE DATABASE; DATABASE; DROP DATABSE; ROLLFORWARD DATABASE;

刪除數據庫前必須使用此語句。

例:close database;

 

4.      DROP DATABASE database_name

刪除指定數據庫。

database_name:數據庫名稱。

用戶是DBA或所有表的擁有者;刪除所有文件,但不包括數據庫目錄;不允許刪除當前數據庫(須先關閉當前數據庫);事務中處理過程中不能使用此語句,通過ROLLBACK WORK 也不可將數據庫恢復。

例:drop databse customerdb;

 

5.      CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)

[IN “pathname”]

創建表或臨時表。

table-name :表名稱。

column_name:字段名稱。

data-type:字段數據類型。

path-name:指定表的存放位置

TEMP用指定建立臨時表;表名要唯一,字段要唯一;有CONNECT權限的用戶可建立臨時表;創建的表缺省允許CONNECT用戶存取,但不可以ALTER。

例:create table user

( c0 serial not null, c1 char (10),

c2 char(2),

c3 smallint,

c4 decimal(6,3),

c5 date

) in “usr/john/customer.dbs/user;

 

6.      ALTER TABLE

ALTER TABLE table-name

{ADD (newcol_name newcol_type [BEFORE oldcol_name], …) | DROP (oldcol_name, …)

| MODIFY (oldcol_name newcol_type [NOT NULL], … )}, …

修改表結構。

table-name:表名稱。

newcol_name:新字段名稱

newcol_type:新字段類型

oldcol_name:老字段名稱

可以使用單個或多個ADD子句、DROP子句、MODIFY子句,但某個字句失敗,操作即中止;原字段是NULL,不允許MODIFY為NOT NULL,除非所有NULL字段中均非空,反之可以;ALTER使用者是表的擁有者或擁有DBA權限,或被授權;事務中處理過程中不要使用此語句。

例:alter table user

add ( c6 char(20) before c5);

 

7.      RENAME TABLE oldname TO newname

修改表名。

oldname:原名稱。

newname:新名稱。

RENAME使用者是表的擁有者或擁有DBA權限,或被授權;事務中處理過程中不要使用此語句。

例:rename user to bbb;

 

8.      DROP TABLE table-name

刪除表。

table-name:表名稱。

刪除表意味著刪除其中所有數據、各字段上的索引及對表的賦權、視圖等;用戶不能刪除任何系統目錄表;語句使用者是表擁有者或擁有DBA權限,事務中處理過程中不要使用此語句。

 

9.      RENAME COLUMN table.oldcolumn, TO newcolumn

修改字段名。

table.oldcolumn:表名及原字段名稱

newcolumn:新字段名稱。

語句使用者是表的擁有者或擁有DBA權限或有ALTER權限的用戶,事務中處理過程中不要使用此語句。

例:rename column user.c6 to c7;

 

10. CREATE VIEW view-name column-list

CREATE VIEW view-name column-list AS select_statement [WITH CHECK OPTION]

創建視圖。

view-name:視圖名稱。

column-list:字段列表。

select_statement:SELECT語句。

以下語句不使用視圖:ALTER TABLE,DROP INDEX,ALTER INDEX,LOCK TABLE,CREATE INDEX, RENAME TABLE;視圖將延用基表的字段名,對表達式等虛字段和多表間字段重名必須指明標識其字段名;若對視圖中某些字段命名,則所有字段都必須命名;視圖中數據類型延用基表中的數據類型,虛字段起訣表達式;不能使用ORDER BY和UNION子句;對視圖中所有的字段要有SELECT權限;事務中處理過程中使用此語句,即使事務回滾,視圖也將建立,不能恢復。

例:create view v_user as select * from user where c1 = “B1”;

 

11. DROP VIEW view-name

刪除視圖。

view-name:視圖名稱。

用戶可刪除自己建立的視圖;視圖的代視圖也被刪除;事務中處理中不要使用此語句。

例:drop view v_user;

 

12. CREATE INDEX

CREATE [UNIQUE/DISTINCT] [CLUSTER] INDEX index_name ON table_name

([column_name ASC/DESC],…)

創建索引。

index_name:索引名稱。

table_name:表名稱。

column_name:字段名稱。

UNIQUE/DISTINCT:唯一索引。

CLUSTER:使表的物理存放順序按索引排列。

ASC/DESC:升序或降序,缺省升序。

語句執行時,將表的狀態置為EXCLUSIVE;復合索引最多包含8個字段,所有字段長度和不得大120字節;事務中處理過程中使用此語句,即使事務回滾,索引將建立,不能恢復。

例:create cluster index ix_user on user(c5);

 

13. ALTER INDEX index-name TO [NOT] CLUSTER

修改索引性質。

index-name:索引名稱。

TO [NOT] CLUSTER:去掉或加上CLUSTER屬性。

語句執行時,將表的狀態置為EXCLUSIVE;事務中處理過程中使用此語句,即使事務回滾,索引性質將改變,不能恢復。

例:alter index ix_user to not cluster;

 

14. DROP INDEX index-name

刪除索引。

index-name:索引名稱。

語句使用者是索引的擁有者或擁有DBA權限,事務中處理過程中不要使用此語句,否則事務無法恢復。

例:drop index ix_user;

 

15. CREATE SYNONYM synonym FOR table-name

創建同義名。

synonym:同義名

table-name:表名稱

數據庫的創建者可以使用同義名;沒有賦予同義名權限的用戶不能使用同義名;同義名不能和表名相同;事務中處理過程中不要使用此語句。

例:create synonym user_alias for user;

 

16. DROP SYNONYM synonym

刪除同義名。

synonym:同義名

可以刪除自己建立的同義名;事務中處理過程中不要使用此語句,否則無法恢復。

例:drop synonym user_alias;

 

17. UPDATE STATISTICS [FOR TABLE table-name]

更新數據庫的統計數字。

table-name:表名稱

此語句僅作用當前數據庫;可提高查詢效率;只有執行此語句,才改變統計數據。

    例:update statistics for table user;
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Informix SQL 語句詳解 (2) (2001-06-18 18:08:00)
Informix SQL 語句詳解 (1) (2001-06-18 17:04:00)
 

★  樊強制作 歡迎分享  ★