`
abo168
  • 浏览: 8829 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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字节;事务中处理过程中使用此语句,即使事务回滚,索引将建立,不能恢复。

例: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;

18. GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list}授权命令。 

PUBLIC|user-list:全部或指定的用户。 

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。 

例:grant resource to pulbic; 

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION] 

授表级权限。 

tab-privilege:表级权限。 

table-name:表名称。 

PUBLIC|user-list:全部或指定的用户。 

[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。 

用户可以在自己建立表达式或被[WITH GRANT OPTION]准许的表中进行赋权;限定越多的权限优先级越高。 

例:grant update(c1,c6) on user to dick with grant option; 

附(INFORMIX的权限) 

(1) 数据库的权限(控制对数据库的访问以及数据库中表的创建和删除) 

DBA权限:全部权利,修改系统表,建立和删除表与索引、增加和恢复表数据,以及授予其他用户数据库权限等; 

RESOURCE权限:允许对数据库表中的数据进行存取,建立永久性表以及索引。 

CONNECT权限:只允许对数据库表中的数据进行存取,建立和删除视图与临时表。 

(2)表级权限(对表的建立、修改、检索和更新等权限) 

ALTER:更改权限 

DELETE:删除权限 

INDEX:索引权限 

INSERT:插入权限 

SELECT [(cols)]:指定字段或所有字段上的查询权限,不指明字段缺省为所有字段。 

UPDATE [(cols)] :指定字段或所有字段上的更新权限,不指明字段缺省为所有字段。 

ALL [PRIVILEGES]:以上所有表级权限 

19. REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list}  收权命令。 

PUBLIC|user-list:全部或指定的用户。 

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。 

例:revoke resource from john; 

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list} 

收表级权限。 

tab-privilege:表级权限。 

table-name:表名称。 

PUBLIC|user-list:全部或指定的用户。 

[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。 

用户只能取消由其本人赋予其他用户的表级存取权限;不能取消自己的权限,对SELECT和UPDATE作取消时,将取消

所有表中字段的SELECT 和UPDATE权限。 

例;revoke update on user from dick; 

20.LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE  记录级加锁和表级加锁或文件加锁。 

table-name:表名称。 

SHARE:允许读表中数据,但不允许作任何修改 

EXCLUSIVE:禁止其他任何形式访问表 

每次只能对表琐定一次;事务处理过程中,BEGIN WORK后立即执行LOCK TABLE以取代记录级加锁,COMMIT WORK和

ROLLBACK WORK语句取消所有对表的加锁;若没有事务处理,锁将保持到用户退出或执行UNLOCK为止。 

例:lock table user in exclusive mode; 

21. UNLOCK TABLE table-name  取消记录级加锁和表级加锁或文件加锁。 

table-name:表名称。 

例:unlock user; 

22. SET LOCK MODE TO [NOT] WAIT  改变锁定状态。 

TO [NOT]:等待解锁,有可能被死锁或不等待并提示错误信息,表示此记录被锁,缺省值。 

访问一个EXCLUSIVE状态下的记录,将返回一个错误。 

23. START DATABSE db_name [WITH LOG IN “pathname”]  启动事务处理。 

“pathname”:事务处理日志文件。 

执行该语句前,需要先关闭当前数据库。 

例;clost database; 

start databse customer with log in “/usr/john/log/customer.log”; 





24.  BEGIN WORK  开始事务。例:begin work; 

25. COMMIT WORK  提交(正常结束)事务。例:commit work; 

26. ROLLBACK WORK  回滚(非正常结束)事务。例:rollback work; 

SELECT 

SELECT select_list FROM tab_name|view_name 

WHERE condition 

GROUP BY column_name 

HAVING condition 

ORDER BY column_list 

27. INTO TEMP table_name  查询语句。 

select_list:选择表或* 

tab_name:表名称 

view_name:视图名称。 

condition:查询条件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、 

AND、OR、=、!=或<>、>、 >= 、<=、<、ALL、ANY、SOME 

column_name:分组字段名称 

condition:群聚条件 

column_list:排序字段列表,缺省ASC,可指定DSC;排序时,NULL值小于非零值。 

table_name:临时表名称 

例:略 

附(常用函数) 

(1)集合函数: 

count(*)、 

sum(数据项/表达式)、avg(数据项/表达式)、max(数据项/表达式)、min(数据项/表达式) 

count(distinct 数据项/表达式)、sum(distinct数据项/表达式)、avg(distinct数据项/表达式) 

(2)代数函数和三角函数 

HEX(数据项/表达式)、ROUND(数据项/表达式)、TRUNC(数据项/表达式)、 

TAN(数据项/表达式)、ABS(数据项/表达式)、MOD(被除数,除数) 

(3)统计函数 

标准差,stdev()、方差,variance()、范围,rang() 

(4)时间函数 

DAY(日期/时间表达式):返回数字型 

MONTH(日期/时间表达式):返回整数 

WEEKDAY(日期/时间表达式):0&#0;&#0;6,0星期天,1星期一;返回整数 

YEAR(日期/时间表达式)、返回整数 

DATE(非日期表达式):返回日期型 

EXTEND(日期/时间表达式,[第一个至最后一个]):返回指定的整数 

MDY(月,日,年):返回日期型 

CURRENT:返回日期型 

(5)时间函数 

ROUND(),四舍五入。如:ROUND(10.95,position)position进行四舍五入的前一位置 

TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置 

INFORMIX临时表在下列情况下自动取消: 

A.退出数据库访问工具(如DBACCESS) 

B.SQL通话结束(DISCONNECT) 

C.发出取消表语句 

D.退出程序时 

28. INSERT 

INSERT INTO view_name|table_name [(column_list)] VALUES (value_list) 

或 INSERT INTO view_name|table_name [(column_list)] select_statement  插入数据 

view_name|table_name:视图名或表名称 

column_list:数据项列表。 

value_list:值列表 

select_statement:查询语句。 

例:略 

29. DELETE FROM view_name|table_name WHERE search-conditions  删除语句。 

view_name|table_name:视图名或表名称 

search-conditions;删除条件 

例:略 

31. UPDATE 

UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions 

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions  更新数据语句。 

view_name|table_name:表名称或视图表名称 

value_1ist:字段值 

search_conditions:更新数据的条件 

例:略 

32. CHECK TABLE table-name  检查索引语句。 

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。 

33. REPAIR TABLE table-name  修复索引。 

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。 

34. LOAD FROM “file-name” INSERT INTO table_name [(column_name[,…])]  将文本数据栽入表中。 

例:load form “aa.txt” insert into user; 

35. UNLOAD TO “pathname”  将表中数据卸为文本。 

例:unload to “aa.txt” select * from user; 

36. INFO  系统信息查询。 

INFO TABLES:得到当前数据库上表的名字。 

INFO columns FOR table_name:指定表上的字段信息。 

INFO INDEXES FOR table_name:指定表上的索引信息。 

INFO [ACCESS|PRIVILEGES] FOR table_name:指定表上的存取权限。 

INFO STATUS FOR table_name:指定表的状态信息。 

例: info tables; 

分享到:
评论

相关推荐

    Informix SQL 语句详解

    Informix SQL 语句详解 Informix SQL 语句是一种功能强大且灵活的数据库管理语言,用于创建、管理和维护 Informix 数据库。下面是 Informix SQL 语句详解的知识点总结: 一、创建数据库 CREATE DATABASE 语句用于...

    Informix SQL语句查询器

    "Informix SQL语句查询器"是一个专门为PHP开发者设计的工具,它利用Informix数据库的包裹函数,使得在PHP环境中执行SQL查询变得更加便捷和高效。这个工具的出现,旨在简化开发过程,提升代码的可读性和维护性,同时...

    Informix SQL语句详解

    Informix SQL语句详解,一本不错书哈

    Informix SQL语句查询器(v1.0)

    《Informix SQL语句查询器(v1.0)——便捷高效的数据探索工具》 Informix SQL语句查询器是一款专为Informix数据库设计的查询工具,版本v1.0提供了强大的功能,旨在简化PHP开发中的数据库操作,使代码更加精炼高效。...

    unix下的INFORMIX SQL语句的使用

    下面我们将详细探讨INFORMIX数据库中的嵌入式SQL语句的独特之处及其使用方法。 #### 一、嵌入式SQL语句概述 嵌入式SQL语句允许程序员直接在高级语言程序中使用SQL命令,从而实现了高级语言程序与数据库之间的无缝...

    informix主要SQL语句详解

    在Informix数据库管理系统中,SQL语句是进行数据操作的核心工具。本文将深入解析 Informix 主要的SQL语句,帮助你理解如何管理和操作数据库。 首先,`CREATE DATABASE`语句用于创建一个新的数据库。例如,`CREATE ...

    informix sql性能分析

    本文将详细介绍如何在Informix数据库中进行SQL性能分析,这对于提高数据库的整体性能、减少延迟以及提升用户体验有着不可估量的价值。 #### 一、环境准备 在开始SQL性能分析之前,我们需要确保满足以下条件: 1. ...

    Informix sql语法指南

    《Informix SQL语法指南》是IBM为Informix数据库系统用户提供的详尽的SQL语言使用手册。此文档旨在帮助数据库管理员、开发人员以及其他IT专业人士深入了解并掌握Informix SQL的各种特性和功能,以便更有效地管理和...

    informix SQL 语法指南

    - **错误消息**:当 SQL 语句执行失败时,Informix 会返回错误消息,这些消息通常包含有关错误类型和位置的信息。 - **调试技巧**:利用日志文件和跟踪工具可以帮助定位问题原因。 #### 7. 安全性和权限管理 - **...

    informix sql教程指南

    1. **SQL基础**:介绍SQL的基本语法,包括数据查询(SELECT语句)、数据插入(INSERT语句)、数据更新(UPDATE语句)和数据删除(DELETE语句)等。 2. **数据库创建与管理**:讲解如何在Informix中创建数据库,设置...

    Informix SQL跟踪

    Informix SQL跟踪是数据库管理员用来监控和优化数据库性能的关键工具。Informix 提供了一系列命令来追踪SQL查询的执行情况,帮助识别性能瓶颈和慢查询,从而进行必要的优化。以下是使用Informix SQL跟踪的一些主要...

    informix SQL语法手册

    ### Informix SQL 语法手册知识点概述 #### 一、引言 Informix SQL 语法手册是一本关于IBM Informix数据库管理系统(DBMS)中的SQL语言使用的权威指南。该手册为用户提供了全面深入的理解Informix环境下SQL语法的...

    Informix的字段类型&常用sql语句.doc

    Informix 数据库字段类型和常用 SQL 语句 Informix 是一种关系数据库管理系统,它提供了多种字段类型来存储不同的数据类型。下面是 Informix 的常见字段类型: 1. char(size):用于保存定长字符串数据,每行定长...

    IBM Informix SQL全套技术文档

    - **查询语句**:详细阐述如何使用SELECT语句进行数据检索,包括子查询、联接、分组、排序和聚合函数。 - **DML操作**:插入(INSERT)、更新(UPDATE)和删除(DELETE)数据的基本语法和高级用法。 - **视图与...

    浅谈INFORMIX SQL优化.pdf

    INFORMIX SQL优化的主要目标是提高SQL语句的执行效率、降低系统资源的使用率、提高数据库的安全性和可扩展性。 一、引言 INFORMIX SQL优化是INFORMIX数据库管理系统中的一种重要技术,数据库管理员、程序员和...

    INFORMIX SQL 开发指南

    文档提到“详细的SQL示例说明”,这意味着该指南会包含多个SQL语句的示例,用以帮助开发者更好地理解和掌握如何使用SQL进行数据操作。 - **查询数据**:例如,使用SELECT语句来检索数据库中的特定记录。 - **插入...

    Informix SQL参考指南

    Informix SQL支持标准SQL语句,并且在此基础上进行了一定程度的扩展和优化。 综上所述,IBM Informix SQL 9.4是一款功能强大且高度可定制的关系型数据库管理系统,它适用于各种复杂的数据处理场景,尤其是在实时...

    SQL语句教程 写法大全

    同时,本教程还涵盖了 SQL 高级知识,如 Top 语句、Like 语句、通配符、In 语句、Between 语句、Aliases 语句、Join 语句、Inner Join 语句、Left Join 语句、Right Join 语句、Full Join 语句、Union 语句、Select ...

    IBM Informix SQL 参考指南

    IBM Informix SQL参考指南会详细介绍以上知识点,并可能包含更深入的专题,如分布式数据库、复制技术、XML支持和时间序列数据处理等。通过深入研读,用户将能够充分利用Informix数据库的强大功能,为业务应用提供...

Global site tag (gtag.js) - Google Analytics