您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > informix SQL汇总(包括效率分析)
informixSQL汇总每个数据库管理系统(DBMS)都有其自己的数据处理语言(DML),但所有DML都基于一种语言SQL语言——结构化查询语言(SQL),其发音为“sequel”或“S-Q-L”。目前SQL的前身是E.F.Codd博士70年代发明的。第一个实现是在76年,称为sequel。而SQL首先被采用是在IBM的SystemR项目中。86年10月由ANSI确定为正式的关系查询语言标准。ISO在对其修改后在90年制定为国际工业标准。无论进行何种数据库学习,SQL语言都是必学内容。在我国数据库语言SQL标准(GB12991)中规定了两个数据库语言的语法与语义:模式定义语言(SQL-DDL),描述SQL数据库的结构与完整性的约束;数据操纵语言(SQL-DML),描述操作数据库的执行语句在本文章中涉及以上两个中的主要部分,(为叙述方便,以下对其统称为SQL),由于SQL在嵌入C时表现略有不同,所以下面均以非嵌入时的SQL进行。另外本文章也不是SQL的入门教材,阅读者应学习并实际用SQL操作过某种数据库。如果你系统学习过数据库理论,又能熟练操作INFORMIX关系数据库,甚至从事过有关数据库程序的设计,还那么作者在此恭喜你了。如果你尚未系统学习过数据库理论,并对INFORMIX数据库了解甚少,建议你先阅读有关的文档。informixSQL汇总【主要SQL语句详解】CREATEDATABASEdatabase_name[WITHLOGIN“pathname”]创建数据库。database_name:数据库名称。“pathname”:事务处理日志文件。创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用BEGINWORK等事务语句(可用STARTDATABASE语句来改变)。可选定当前数据库的日志文件。如:selectdirpathformsystableswheretabtype=“L”;例:createdatabsecustomerdbwithlogin“/usr/john/log/customer.log”;DATABASEdatabse-name[EXCLUSIVE]选择数据库。database_name:数据库名称。EXCLUSIVE:独占状态。存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。例:dtabasecustomerdb;CLOSEDATABASE关闭当前数据库。database_name:数据库名称。此语句之后,只有下列语句合法:CREATEDATABASE;DATABASE;DROPDATABSE;ROLLFORWARDDATABASE;删除数据库前必须使用此语句。例:closedatabase;DROPDATABASEdatabase_name删除指定数据库。database_name:数据库名称。用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACKWORK也不可将数据库恢复。例:dropdatabsecustomerdb;CREATE[TEMP]TABLEtable-name(column_namedatatype[NOTNULL],…)[IN“pathname”]创建表或临时表。table-name:表名称。column_name:字段名称。data-type:字段数据类型。path-name:指定表的存放位置TEMP用于指定建立临时表;表名要唯一,字段要唯一;有CONNECT权限的用户可建立临时表;创建的表缺省允许CONNECT用户存取,但不可以ALTER。例:createtableuser(c0serialnotnull,c1char(10),c2char(2),c3smallint,c4decimal(6,3),c5date)in“usr/john/customer.dbs/user;ALTERTABLEALTERTABLEtable-name{ADD(newcol_namenewcol_type[BEFOREoldcol_name],…)|DROP(oldcol_name,…)|MODIFY(oldcol_namenewcol_type[NOTNULL],…)},…修改表结构。table-name:表名称。newcol_name:新字段名称newcol_type:新字段类型oldcol_name:老字段名称可以使用单个或多个ADD子句、DROP子句、MODIFY子句,但某个字句失败,操作即中止;原字段是NULL,不允许MODIFY为NOTNULL,除非所有NULL字段中均非空,反之可以;ALTER使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语句。例:altertableuseradd(c6char(20)beforec5);RENAMETABLEoldnameTOnewname修改表名。oldname:原名称。newname:新名称。RENAME使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语句。例:renameusertobbb;DROPTABLEtable-name删除表。table-name:表名称。删除表意味着删除其中所有数据、各字段上的索引及对表的赋权、视图等;用户不能删除任何系统目录表;语句使用者是表拥有者或拥有DBA权限,事务中处理过程中不要使用此语句。RENAMECOLUMNtable.oldcolumn,TOnewcolumn修改字段名。table.oldcolumn:表名及原字段名称newcolumn:新字段名称。语句使用者是表的拥有者或拥有DBA权限或有ALTER权限的用户,事务中处理过程中不要使用此语句。例:renamecolumnuser.c6toc7;CREATEVIEWview-namecolumn-listCREATEVIEWview-namecolumn-listASselect_statement[WITHCHECKOPTION]创建视图。view-name:视图名称。column-list:字段列表。select_statement:SELECT语句。以下语句不使用视图:ALTERTABLE,DROPINDEX,ALTERINDEX,LOCKTABLE,CREATEINDEX,RENAMETABLE;视图将延用基表的字段名,对表达式等虚字段和多表间字段重名必须指明标识其字段名;若对视图中某些字段命名,则所有字段都必须命名;视图中数据类型延用基表中的数据类型,虚字段起诀于表达式;不能使用ORDERBY和UNION子句;对视图中所有的字段要有SELECT权限;事务中处理过程中使用此语句,即使事务回滚,视图也将建立,不能恢复。例:createviewv_userasselect*fromuserwherec1=“B1”;DROPVIEWview-name删除视图。view-name:视图名称。用户可删除自己建立的视图;视图的后代视图也被删除;事务中处理中不要使用此语句。例:dropviewv_user;CREATEINDEXCREATE[UNIQUE/DISTINCT][CLUSTER]INDEXindex_nameONtable_name([column_nameASC/DESC],…)创建索引。index_name:索引名称。table_name:表名称。column_name:字段名称。UNIQUE/DISTINCT:唯一索引。CLUSTER:使表的物理存放顺序按索引排列。ASC/DESC:升序或降序,缺省升序。语句执行时,将表的状态置为EXCLUSIVE;复合索引最多包含8个字段,所有字段长度和不得大于120字节;事务中处理过程中使用此语句,即使事务回滚,索引将建立,不能恢复。例:createclusterindexix_useronuser(c5);ALTERINDEXindex-nameTO[NOT]CLUSTER修改索引性质。index-name:索引名称。TO[NOT]CLUSTER:去掉或加上CLUSTER属性。语句执行时,将表的状态置为EXCLUSIVE;事务中处理过程中使用此语句,即使事务回滚,索引性质将改变,不能恢复。例:alterindexix_usertonotcluster;DROPINDEXindex-name删除索引。index-name:索引名称。语句使用者是索引的拥有者或拥有DBA权限,事务中处理过程中不要使用此语句,否则事务无法恢复。例:dropindexix_user;CREATESYNONYMsynonymFORtable-name创建同义名。synonym:同义名table-name:表名称数据库的创建者可以使用同义名;没有赋予同义名权限的用户不能使用同义名;同义名不能和表名相同;事务中处理过程中不要使用此语句。例:createsynonymuser_aliasforuser;DROPSYNONYMsynonym删除同义名。synonym:同义名可以删除自己建立的同义名;事务中处理过程中不要使用此语句,否则无法恢复。例:dropsynonymuser_alias;UPDATESTATISTICS[FORTABLEtable-name]更新数据库的统计数字。table-name:表名称此语句仅作用于当前数据库;可提高查询效率;只有执行此语句,才改变统计数据。例:updatestatisticsfortableuser;GRANT{DBA|RESOURCE|CONNECT}TO{PUBLIC|user-list}授权命令。PUBLIC|user-list:全部或指定的用户。三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。例:grantresourcetopulbic;GRANTtab-privilegeONtable-nameTO{PUBLIC|user-list}[WITHGRANTOPTION]授表级权限。tab-privilege:表级权限。table-name:表名称。PUBLIC|user-list:全部或指定的用户。[WITHGRANTOPTION]:表示被授权用户有否权限进行二次授权。用户可以在自己建立表达式或被[WITHGRANTOPTION]准许的表中进行赋权;限定越多的权限优先级越高。例:grantupdate(c1,c6)onusertodickwithgrantoption;附(INFORMIX的权限)(1)数据库的权限(控制对数据库的访问以及数据库中表的创建和删除)DBA权限:全部权利,修改系统表,建立和删除表与索引、增加和恢复表数据,以及授予其他用户数据库权限等;RESOURCE权限:允许对数据库表中的数据进行存取,建立永久性表以及索引。CONNECT权限:只允许对数据库表中的数据进行存取,建立和删除视图与临时表。(2)表级权限(对表的建立、修改、检索和更新等权限)ALTER:更改权限DELETE:删除权限INDEX:索引权限INSERT:插入权限SELECT[(cols)]:指定字段或所有字段上的查询权限,不指明字段缺省为所有字段。UPDATE[(cols)]:指定字段或所有字段上的更新权限,不指明字段缺省为所有字段。ALL[PRIVILEGES]:以上所有表级权限REVOKE{DBA|RESOURCE|CONNECT}FROM{PUBLIC|user-list}收权命令。PUBLIC|user-list:全部或指定的用户。三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。例:revokeresourcefromjohn;REVOKEtab-privilegeONtable-nameFROM{PUBLIC|user-list}收表级权限。tab-privilege:表级权限。table-name:表名称。PUBLIC|u
本文标题:informix SQL汇总(包括效率分析)
链接地址:https://www.777doc.com/doc-741790 .html