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)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |