歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Informix SQL 語法詳解

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”;

2. 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 字節;事務中處理過程中使用此語句,即使事務回滾,索引將建立,不能恢復。

Copyright © Linux教程網 All Rights Reserved