informix数据库SQL学习

合集下载

Informix数据库dbaccess工具执行SQL语句操作说明

Informix数据库dbaccess工具执行SQL语句操作说明

【文档名称】:Informix数据库dbaccess工具执行SQL语句操作说明【背景说明】部分工程经常要对数据库进行操作,而各省客服及驻点同事对相关操作不熟悉,现整理一份实用的操作说明。

【适用范围】适用设备:Informix-9.4,Informix-11.5【文档正文】1)用informix账户登录操作系统,在开始菜单中打开“ol_实例名”。

2)直接输入dbaccess并回车。

选择Connection,然后选择Connect。

3)选择数据库实例。

一般只有一个,直接回车即可。

4)输入用户名informix,回车。

5)输入数据库密码,回车。

6)下方提示已连接。

7)直接按回车,然后选择Exit回车。

8)选择第一个Query-language回车。

9)选择Use-editor回车。

10)直接回车,默认用记事本打开编辑器。

11)将SQL语句粘贴到记事本。

12)关闭,选择保存,然后选择Run,回车,查看返回结果是否成功。

常用SQL语句:1、导出某张表。

(需注意当前用户对该目录是否有写入权限,否则会导出失败)unload to 'C:\_analarmtype' select * from _analarmtype; 导出_analarmtype表并保存到C盘根目录。

2、删除某张表。

delete from _analarmtype;3、导入某张表。

load from 'C:\ _analarmtype ' insert into _analarmtype;4、查询某张表的条目数。

select count(*) from analarmhis; 查询历史告警条目数select count(*) from ancurrentalarm; 查询当前告警条目数DBACCESS基本讲解.doc。

informix入门基础学习教程

informix入门基础学习教程

informix入门基础学习教程Informix是一个关系型数据库管理系统(RDBMS),是IBM公司开发的一种数据库管理系统。

它具有高效、可靠、安全的特点,被广泛应用于企业级应用程序中。

本文将介绍Informix的基础知识和学习教程。

一、Informix的概述Informix是一种面向企业级应用的数据库管理系统,它提供了高性能、可扩展、可靠的数据存储和处理能力。

Informix支持多种操作系统平台,包括Windows、Linux、Unix等。

它的特点包括事务处理、并发控制、数据安全等。

二、安装和配置Informix2. 配置Informix服务器,设置数据库存储路径、内存大小等参数。

3.创建数据库实例,设置数据库名称、用户名和密码等信息。

三、Informix的基本概念1. 数据库:Informix中的数据库是一组相关表的集合,用于存储和管理数据。

2.表:表是数据库中的基本组成单元,用于存储数据。

每个表包含多个列,每个列定义了一种数据类型。

3.列:列是表中的一个字段,用于存储特定类型的数据。

4.行:行是表中的一条记录,包含了一组相关的数据。

5.索引:索引是对表中一列或多列的值进行排序的数据结构,用于提高查询性能。

6.视图:视图是一个虚拟的表,它是基于一个或多个表的查询结果。

视图可以简化复杂的查询操作。

四、基本操作1.创建数据库:使用CREATEDATABASE语句创建一个新的数据库。

2.创建表:使用CREATETABLE语句创建一个新的表,并定义表中的列和其数据类型。

3.插入数据:使用INSERTINTO语句将数据插入到表中。

4.查询数据:使用SELECT语句从表中检索数据。

5.更新数据:使用UPDATE语句修改表中的数据。

6.删除数据:使用DELETEFROM语句从表中删除数据。

7.创建索引:使用CREATEINDEX语句在表上创建索引,以提高查询性能。

8.创建视图:使用CREATEVIEW语句创建一个新的视图。

Informix数据库sql常用语句

Informix数据库sql常用语句

1、删除表字段alter table 表名 drop (字段名,字段名...);//逗号隔开可以同时删除多个字段2、新增表字段alter table 表名 add 字段名称字段类型 before 字段名;3、查询表主键名称select constrname from sysconstraints where constrtype='P' and tabid=(select tabid f rom systables where tabname='表名称');4、删除表主键名称alter table 表名 drop constraint 主键名;5、新增表主键名称alter table 表名称 add constraint primary key(字段1,字段2,字段3....) constraint 主键名称;6、复制内容insert into data_user (comcode, appcode, appcomname, comlevel, usercode, userna me, mobile)select distinct comcode, appcode, appcomname, comlevel, usercode, username, mo bile from temp_user where mobile is not null ;7、创建临时表select * from data_user into temp temp_1 with no log;8、sql中四舍五入保留2位有效小数cast(字段名称/10000 as decimal(14,2))数字转字符:to_char(cast(字段名称/10000 as decimal(14,2)))9、大表创建索引CREATE INDEX idx_user on user (username,usercode) online;10.修改表名称RENAME table data_user to data_user_new11.修改表字段名称RENAME COLUMN data_fwinfo.mobile TO username12、更新表字段alter table salesgrade modify newstatcode varchar(30);13、授权数据库grant select on salesgrade to ccpqry14、创建外键约束ALTER TABLE nx_carorprp2 ADD CONSTRAINT FOREIGN KEY (userunique)REFERENCES nx_staff (userunique) CONSTRAINT fk_nx_carorprp2 ON DELETE CASCA DE ;。

(最新)informix SQL汇总(包括效率分析)(精品文档)

(最新)informix SQL汇总(包括效率分析)(精品文档)

informix SQL汇总每个数据库管理系统(DBMS)都有其自己的数据处理语言(DML),但所有DML都基于一种语言SQL语言——结构化查询语言(SQL),其发音为“sequel”或“S-Q-L”。

目前SQL的前身是E.F.Codd博士70年代发明的。

第一个实现是在76年,称为sequel。

而SQL首先被采用是在IBM的System R项目中。

86年10月由ANSI确定为正式的关系查询语言标准。

ISO在对其修改后在90年制定为国际工业标准。

无论进行何种数据库学习,SQL语言都是必学内容。

在我国数据库语言SQL标准(GB12991)中规定了两个数据库语言的语法与语义:模式定义语言(SQL-DDL),描述SQL数据库的结构与完整性的约束;数据操纵语言(SQL-DML),描述操作数据库的执行语句在本文章中涉及以上两个中的主要部分,(为叙述方便,以下对其统称为SQL),由于SQL 在嵌入C时表现略有不同,所以下面均以非嵌入时的SQL进行。

另外本文章也不是SQL的入门教材,阅读者应学习并实际用SQL操作过某种数据库。

如果你系统学习过数据库理论,又能熟练操作INFORMIX关系数据库,甚至从事过有关数据库程序的设计,还那么作者在此恭喜你了。

如果你尚未系统学习过数据库理论,并对INFORMIX数据库了解甚少,建议你先阅读有关的文档。

informix SQL汇总【主要SQL语句详解】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]选择数据库。

InformixSQL语句详解

InformixSQL语句详解

Informix SQL 语句详解(1)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”;DA TABASE databse-name [EXCLUSIVE]选择数据库。

database_name:数据库名称。

EXCLUSIVE:独占状态。

存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。

例:dtabase customerdb;3. CLOSE DA TABASE关闭当前数据库。

database_name:数据库名称。

此语句之后,只有下列语句合法:CREATE DATABASE;DATABASE;DROP DA TABSE;ROLLFORWARD DA TABASE;删除数据库前必须使用此语句。

例:close database;4. DROP DA TABASE database_name删除指定数据库。

database_name:数据库名称。

用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK WORK 也不可将数据库恢复。

例:drop databse customerdb;5. CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)[IN “pathname”]创建表或临时表。

informix学习总结

informix学习总结

informix学习总结INFORMIX的学习第⼀章ESQL/C的数据类型数据类型SQL与C数据类型的对应简单类型SQL CCHAR(n) char(n+1)CHARCTER(n) char *SMALLINT short intINTERGERINT long intSMALLFLOATREAL floatFLOATDOUBLE PRECISIONdoubleSERIAL long intDATE long int复杂类型SQL CDECIMALDEC NUMERIC dec_t or struct decimalMONEY dec_t or struct decimalDATETIME dtime_t or struct dtimeINREVER intrvl_t or struct intrvl VARCHAR varchar or string数据类型转换转换类型转换后FLOAT DECIMAL(16)SMALLFLOAT DECIMAL(8)INTERGER DECIMAL(10,0)SAMLLINT DECIMAL(5,0)数据类型的转换函数有关CHAR类型的函数1、以空值结尾的串的操作函数rdownshift(char *s) 把⼀个字符串中的所有字母转换成⼩写形式。

rupshift(char *s) 把⼀个字符串中的所有字母转换成⼤写形式。

stcat(char *s, char *dest) 把⼀个字符串同另⼀个字符串相连接。

stcmpr(char *s1, char *s2) ⽐较两个字符串。

stcopy(char *from, char *to) 把⼀个字符串拷贝到另⼀个字符串。

stleng(char *string) 统计字符串的长度。

2、定长串的操作函数bycmpr(char byte1, byte2, rpt len) ⽐较两组连续的字节内存块。

bycopy(char *from, char *to, int len) 把⼀块内存的内容拷贝到另⼀块内存。

INFORMIX数据库操作及SQL语法

INFORMIX数据库操作及SQL语法

编号:TN-070101001TIENON数据库培训教程INFORMIX基本操作及SQL语法2007年1月,V 1.00目录1、引言 (5)1.1、读者对象 (5)1.2、内容简介 (5)1.3、课程时间 (5)1.4、课程目标 (5)2、数据库基本概念...........................................................错误!未定义书签。

2.1、从身边的例子了解数据库......................................................... 错误!未定义书签。

2.2、数据库系统概述......................................................................... 错误!未定义书签。

2.2.1、数据库的产生................................................... 错误!未定义书签。

2.2.2、数据库系统组成................................................. 错误!未定义书签。

2.2.3、与数据库相关的软件系统......................................... 错误!未定义书签。

2.2.4、数据库系统特点................................................. 错误!未定义书签。

2.2.5、数据库系统的历史............................................... 错误!未定义书签。

2.2.6、数据库系统的发展趋势........................................... 错误!未定义书签。

2.2.7、数据库的分类................................................... 错误!未定义书签。

基于Informix数据库典型低效率SQL语句的分析及优化方法

基于Informix数据库典型低效率SQL语句的分析及优化方法
贵 州 科 学 3 ( ) 2 - 8 2 1 0 2 :1- ,0 2 2
Gu  ̄ u .  ̄ c / z se e cn
基 于 Ifr x数 据 库 典 型 低 效 率 S omi n QL语 句 的 分 析 及 优 化 方 法
郑 添 健 索 红敏
( 中国人寿保险股份有限公司 黔南分公司信息技术部 都匀 5 8 0 ; 50 0 贵州 民族学 院 贵 阳 5 0 2 ) 5 05

要 : 本文从跟踪 S L性能的方法和 I om x应用调优 的原 则 , If mi Q r ri f 对 no x典型低 效率 S数
据库 系统 实际应用方面提 出了提 高 I om x n r i 数据库运行效 率的方法, f 旨在 为 I omx数据 库维护人 员和程序设 计人 员提供有 r ri f
t a p l ai n o f r x d tb s O a o p o i e u eu ee e c s fr t o e w o man an a d d s n t e i — il a p i t fi omi aa a e S s t r v d s f lr f r n e o h s h i t i n e i h n e c o n g
Ba e n I o m i t ba e s d o nf r x Da a s
Z E inj n 一 S O n — n H NB Ta - a i U Ho gmi
( C i i srneC m a y S uh G i o rnh D y n u h u5 8 0 ,C ia G i o ol e o hn L e nua c o p n , ot u h uB a c , u u ,G i o 5 0 0 h ; u h uC lg fr a fI z z n z e N t n li , u ag, u h u5 0 2 , hn ) ai aie G i n G i o 5 0 5 C i o ts y z a

sqllinform使用技巧

sqllinform使用技巧

sqllinform使用技巧SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。

在SQL中,INFORM(或者称为Informix)是一种常用的关系型数据库管理系统(RDBMS)。

本文将介绍一些SQL/INFORM的使用技巧,帮助读者更好地理解和运用这个强大的工具。

一、使用注释在编写SQL语句时,合理使用注释可以提高代码的可读性和可维护性。

在INFORM中,可以使用"--"来注释单行,或者使用"/* */"来注释多行。

例如:-- 这是一个单行注释/*这是一个多行注释可以有多行内容*/通过使用注释,可以向其他开发人员解释代码的用途和逻辑,方便代码的维护和修改。

二、使用别名在进行查询时,可以使用别名给表名、列名或查询结果命名,方便后续引用。

使用别名可以简化SQL语句,提高可读性。

例如:SELECT emp_id AS ID, emp_name AS Name, emp_salary AS SalaryFROM employee在这个例子中,给emp_id、emp_name和emp_salary分别起了别名ID、Name和Salary。

在查询结果中,可以直接使用别名引用这些列。

三、使用通配符通配符是用来模糊匹配数据的特殊字符。

在INFORM中,常用的通配符有"%"和"_"。

其中,"%"表示匹配任意字符(包括0个字符),"_"表示匹配一个字符。

例如:SELECT emp_nameFROM employeeWHERE emp_name LIKE 'J%'这个例子中,查询所有以字母J开头的员工姓名。

四、使用聚合函数聚合函数是用来对数据进行汇总计算的函数。

在INFORM中,常用的聚合函数有SUM、AVG、COUNT、MIN和MAX。

INFORMIX -4GL 教程 的 入门 教材 数据库1-3

INFORMIX -4GL 教程   的 入门 教材 数据库1-3

!!manu_code char(3),total_price money(8))insert into newtable select item_num,order_num,quantity,stock_num,manu_code,total_pricefrom itemsdrop table itemsrename table newtable to itemsrename column customer.customer_num to c_num3-7 SELECT Statement<語法格式>SELECT clauseFROM clause[WHERE clause][GROUP BY clause][HAVING clause][ORDER BY clause][UNION SELECT clause]3-7-1 SELECT<語法格式>SELECT[ALL|DISTINCT|UNIQUE] select_list§例:select customer_num, lname, cityfrom custom件!m软m P文档及软件!from orderwhere customer_num = 101select avg(total_price)from itemswhere order_num = 1008select a+b abtotal, c*d cdprodfrom itemswhere order_num = 10083-7-2 FROM<語法格式>FROM[OUTER]table_name[table alias][,...]§例:select fname, lname, order_numfrom customer, orderswhere customer.customer_num = order.customer_numselect fname, lname, order_numfrom customer, outer orderswhere customer.customer_num = order.customer_num3-7-3 WHERE<語法格式>WHERE conditioncondition 是由一個或一個以上的尋找條件(search condition)配合邏輯運算元AND、OR、NOT 所組成。

Informix数据表结构分析资料整理之字段类型说明和查询SQL语句

Informix数据表结构分析资料整理之字段类型说明和查询SQL语句

Informix数据表结构分析资料整理之字段类型说明和查询SQL语句查询所有Informix数据表字段类型SQL语句:select a.tabname,b.colname,b.coltype,case b.coltypewhen '0' then 'CHAR'when '1' then 'SMALLINT'when '2' then 'INTEGER'when '3' then 'FLOAT'when '4' then 'SMALLFLOAT'when '5' then 'DECIMAL'when '6' then 'SERIAL'when '7' then 'DATE'when '8' then 'MONEY'when '9' then 'NULL'when '10' then 'DATETIME'when '11' then 'BYTE'when '12' then 'TEXT'when '13' then 'VARCHAR'when '14' then 'INTERVAL'when '15' then 'NCHAR'when '16' then 'NVARCHAR'when '17' then 'INT8'when '18' then 'SERIAL8'when '19' then 'SET'when '20' then 'MULTISET'when '21' then 'LIST'when '22' then 'Unnamed ROW'when '40' then 'LVARCHAR' when '41' then 'CLOB'when '43' then 'BLOB'when '44' then 'BOOLEAN' when '256' then 'CHAR'when '257' then 'SMALLINT' when '258' then 'INTEGER' when '259' then 'FLOAT'when '260' then 'REAL'when '261' then 'DECIMAL' when '262' then 'SERIAL'when '263' then 'DATE'when '264' then 'MONEY'when '266' then 'DATETIME' when '267' then 'BYTE'when '268' then 'TEXT'when '269' then 'VARCHAR' when '270' then 'INTERVAL' when '271' then 'NCHAR'when '272' then 'NVARCHAR' when '273' then 'INT8'when '274' then 'SERIAL8' when '275' then 'SET'when '276' then 'MULTISET' when '277' then 'LIST'when '278' then 'Unnamed ROW' when '296' then 'LVARCHAR' when '297' then 'CLOB'when '298' then 'BLOB'when '299' then 'BOOLEAN'when '4118' then 'Named ROW'end as coltypename, b.colno from systables a left join syscolumns b on a.tabid=b.tabid where a.tabid>99 and a.tabtype='T' order by a.tabname,b.colno;。

Informix数据库培训教程(下)

Informix数据库培训教程(下)

第十一章informix_online 动态服务器性能调整所谓性能调整就是平衡时间、空间、资金、可靠性等几个因素之间的关系,使设备达到最好的使用效果。

其中任何一个因素的改变都会影响到其他因素的变动,要想单纯的改变某一个因素是不可能的。

只能尽量地接近而不能超越最优状况下的实际性能。

一、影响性能的主要因素●CPU要素指令执行的时间、处理时间和CPU利用率。

●磁盘要素访问时间●内存要素实际内存需求量、换页率、对换和I/O访问时间。

二、进行性能评测的工具●硬件厂商提供的工具1、time:显示执行一个程序所耗费的时间。

2、vmstat:报告有关进程、内存、磁盘和CPU的统计信息。

3、sar:用来查看系统的实时记录。

●INFORMIX工具1、onstat:列出在命令运行的瞬间Online共享内存结构中的情况。

2、oncheck:用于修复磁盘中受到破坏的索引和数据页,还可用于监测Online系统磁盘上的其它数据结构。

三、性能调整的几个方面●合理的磁盘布局1.磁盘布局的目标是平衡所有设备的I/O操作!2.确定磁盘布局的步骤◆检查应用的SQL以决定I/O的频繁程度1、vmstat --g iof (对已使用的数据库)2、检查应用(对未使用的数据库)◆找出使用最频繁的表◆确定online系统可使用的磁盘资源◆决定如何在磁盘间分布I/O3.如何进行磁盘布局◆分割的种类1、表的分割2、索引的分割◆分割的方式1、基于表达式方式分割特点:数据的存取是不均匀分布的、查询的选择性很强、基于列的某个条件的查询可以消除某些分片的查询。

2、基于循环方式分割特点:数据的均匀分布、最高的数据可用性、没有了对表达式进行求值的过程从而可得到最高的数据装载效率。

◆数据分割的原则1、对DSS重点是数据的分割2、对OLTP重点是索引的分割3、对顺序扫描读的表采用循环方式进行分割4、分割表达式应尽量简单、5、尽量将最可能满足的表达式放在前面6、避免在表达式中有类型转换操作7、不要针对经常改变的字段进行分割◆Chunk 的影响Chunk加到系统中的顺序也会影响系统的性能。

informix入门基础学习教程

informix入门基础学习教程

Logical Logs Buffer(3)
Physical Log Buffer(2)
Buffer pool是Resident中的主体,是数据缓冲区; Logical Log Buffer和Physical Log Buffer分别是物理日志 和逻辑日志的数据缓冲区; Logical Log Buffer共三个, 每个32K大; Physical Log Buffer共两个; 采用LRU(Least Recently Used)来对buffer进行管理,LRU 分为两种:FLRU和MLRU。FLRU是空闲的buffer列表, MLRU是使用过的buffer列表。 系统刚初始化时,所有buffer均在FLRU中;当用户线程 申请buffer,系统将从FLRU中选取空闲的buffer;在用户 线程释放该buffer时,如果Buffer被更改,将转移到MLRU 中Most Recently Used Buffer,如果不被更改,将转移到 FLRU中的Most Recently Used Buffer。
课程安排
• 第一课 • 第二课 • 第三课 • 第四课 • 总结答疑
Informix 培训教材
简介、 简介、基础知识 安装、 安装、配置介绍 数据库系统管理 系统维护、 系统维护、ODBC配置 配置 SQL语言简介 语言简介 Informix应用开发简介 应用开发简介
第一课 简介及安装配置
• 主要内容: 主要内容:
Informix 培训教材
Informix Online 7.x
组成: 组成:
• 数据库服务进程
– 引入多线索机制处理请求 – 顺序调度策略
• 共享内存
– 可动态增长的共享内存
• 磁盘结构
– 与5.0完全相同

Informix数据库SQL介绍

Informix数据库SQL介绍

Informix数据库SQL介绍INFORMIX SQL 介绍⼀、简介:1)、INFORMIX主要产品分为三⼤部分:; 数据库服务器(数据库核⼼); 应⽤开发⼯具; ⽹络数据库互联产品2)、数据库服务器有两种,作⽤都是提供数据操作和管理:; SE:完全基UNIX操作系统,主要针对⾮多媒体的较少⽤户数的应⽤; ONLINE:针对⼤量⽤户的联机事务处理和多媒体应⽤环境3)、应⽤开发⼯具是⽤以开发应⽤程序必要的环境和⼯具,主要也有两个系列:; 4GL:INFORMIX传统的基字符界⾯的开发⼯具,该系列的主要产品有五个,他们是I-SQL、4GL RDS、4GL C COMPILER、4GL ID和ESQL/C;; NewEra:INFORMIX最新提供的具有事件驱动能⼒、⾯向对象的基各种图形界⾯的开发⼯具。

4)、INFORMIX的⽹络数据库互联产品:提供给⽤户基多种⼯业标准的应⽤程序接⼝,通过它可以和其它遵守这些⼯业标准的数据库联接。

⼆、I-SQL菜单简介:Form可以执⾏、创建、修改、编译屏幕格式或删除已存在的屏幕格式Run执⾏某⼀已经存在的屏幕格式Modify修改指定的已经存在的屏幕格式Generate 为指定的表创建⼀个缺省的屏幕格式Compile编译⼀个制定的屏幕格式New创建特定的⽤户屏幕格式Drop删除某已经存在的格式⽂件Exit退出Form菜单Report 可以执⾏、建⽴、修改、编译、或删除报表Run执⾏某⼀报表Modify修改指定的报表Generate 为某⼀个表建⽴⼀个缺省的报表New建⽴⼀个⽤户指定的报表Compile编译指定的报表Drop删除⼀个指定的已经存在的报表Exit退出Report菜单Query-Language详见实⽤程序说明:dbaccessUser-menu 可以执⾏、建⽴或修改⽤户建⽴的菜单Run执⾏当前数据库的⽤户菜单Modify允许⽤户建⽴或修改⽤户菜单Exit退出User-menu菜单Database详见实⽤程序说明:dbaccessTable详见实⽤程序说明:dbaccessExit退出实⽤程序isqlrf(或isql)三、常⽤操作:; 创建数据库ISQL==》DATABASE==》CREATE==》输⼊新建数据库名称; 创建表ISQL==》TABLE==》CREATE==》输⼊欲建的表名==》ADD==》输⼊欲建的字段名及类型等==》EXIT==》BUILD-NEW-TABLE; ⽣成缺省表格式ISQL==》FORM==》GENERATE=》选择数据库==》输⼊表格式名称==》选择表==》TABLE-SELECTION-COMPLETE-----》编译成功==》RUN四、使⽤RDSQL(交互式查询语⾔)编写SQL语句⽅法:ISQL==》Query Langavage==》NEW==》RUN; 建⽴数据库CREATE DATABASE数据库名; 建表(格式及可选数据类型)基本格式:CREATE TABLE表名(字段名类型,字段名类型,---字段名类型);详细定义:CREATE TABLE表名(COL1INTEGER NOT NULL,COL2CHAR(2)CHECK ( COL2IN (“??”,“??”),COL3DATE DEFAULT TODAY,COL4SMALLINT UNIQUE,---字段名类型)FRAGMENT BY ROUND ROBIN (BY EXPRESSION)IN DB1,DB2EXTENT SIZE 1000 NEXT SIZE 600WITH NO LOG (LOG;BUFFERED LOG;LOG MODE ANSILOCK MODE ROW(PAGE);例1:CREATE TABLE ORDERS(ORDER_NUM INTEGERUNIQUE CONSTRAINT ORDER_NUM_UQ,ORDER_DATE DATENOT NULL CONSTRAINT ORDER_DA TE_NNDEFAULT TODAY ;例2:CREATE TABLE CUSTOMER (CUSTOMER_NUM SERIAL,FNAME CHAR(20),PRIMARY KEY (CUSTOMER_NUM)CONSTRAINT PK_CNUM);CREATE TABLE ORDERS (ORDER_NUM SERIAL,CUSTOMER_NUM INTEGER,FOREIGN KEY (CUSTOMER_NUM)REFERENCES CUSTOMERCONSTRAINT FK_CNUM);数据类型:字符型(CHAR(20)),V ARCHAR(MINSIZE, MAXSIZE)数值型(六种,DECIMAL(16,2),SMALLINT,INTEGER,SMALLFLOAT,FLOAT,SERIAL ) ⽇期型( DATE,默认格式为:MM/DD/YYYY )**要修改DATE类型的缺省格式, 只要在⽤户主⽬录的.profile⽂件中做如下说明: DBDATE=Y4MD/EXPORT DBDA TE**货币型(MONEY (8,2))其它(如:INTERV AL,DA TETIME等); 建⽴索引(必须建⽴命名索引)CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)DISABLED;SET INDEXES索引名ENABLEDDROP INDEX索引名; 数据库权限CONNECT:访问数据库RESOURCE:允许⽤户建⽴或清除数据库中的表和索引DBA:数据库管理员,所有权限,⼀般建表者即为DBAGRANT权限TO〈PUBLIC | ⽤户名〉REVOKE权限FROM〈PUBLIC | ⽤户名〉; 检索数据库DA TABASE数据库名SELECT * FROM表名SELECT字段名,字段名FROM表名SELECT字段名,字段名+-*/新字段名FROM表名SEKECT A VG(字段) ,MIN(),MAX(),SUM(),COUNT()FROM表名WHERE⼦句 =〈〉!=< <=>>=MATCHES* 0多个? 单个[ ] 单个字符或⼀个范围\ 转义下⼀个字符LIKE %:0--多个 _ 单个\ 转义下⼀个特殊字符ORDER BY(DESC)时间函数: DAY MDY MONTH WEEKDAY YEAR DATE CURRENT其它函数:LENGTH USER CURRENT TODAY从多个表中查找, SELECT嵌套字段名不同可直接写出,若不同表中有相同字段名,则前缀表名SELECT表⼀.字段名FROM表⼀, 表⼆向表中插⼊数据INSERT INTO表名 [ 列1, 列2。

Informix-SQL语言复习笔记(4)-Unix爱好者家园

Informix-SQL语言复习笔记(4)-Unix爱好者家园

Informix-SQL语言复习笔记(4)-Unix爱好者家园Informix-SQL语言复习笔记(4)作者:fdmtdmcdm 出处: 更新时间:2007年02月08日数据定义语言(DDL)创建数据库CREATE DATABASE创建数据库时,内部创建系统目录语句选项说明数据库所在的 DBSPACE, 缺省是ROOT DBSPACE说明数据库使用的日志,有以下四种无日志缓冲日志非缓冲日志ANSI 日志例子CREATE DATABASE usersCREATE DATABASE users IN myspaceCREATE DATABASE users WITH LOGCREATE DATABASE users WITH BUFFERED LOG CREATE DATABASE users WITH LOG MODE ANSI创建表CREATE TABLE表结构:列名及数据类型各种约束条件:实体完整性:说明主键参照完整性:说明实体之间的参照关系缺省值:说明缺省值检查条件:说明检查条件其它约束:非空、唯一性等表所在的 DBSPACE,缺省是数据库所在的DBSPACE 区间大小,缺省大小为8页表的锁定级别: 页面级或行级,缺省是页面级数据完整性实体完整性表中的每行有一个唯一的标识语义完整性列中的数据恰当地反映了设计列所要求存放的数据类型引用完整性强制维护表间的关系例子CREATE TABLE users (user_num INTEGER PRIMARY KEY,user_type INTEGER,user_descr CHAR(50))CREATE TABLE sub_users (sub_user INTEGER PRIMARY KEY,ref_user_num INTEGER REFERENCES users (user_num), sub_user_descr CHAR(50))CREATE TABLE DATE_CHECK(id integer not null ,month integer default -1 not null ,week integer default -1 not null ,day integer default -1 not null ,hour integer default -1 not null ,minute integer default -1 not null ,check (((month >= 1 ) AND (month <= 12 ) ) OR (month = -1 ) ) ,check (((week >= 0 ) AND (week <= 6 ) ) OR (week = -1 ) ) , check (((day >= 1 ) AND (day <= 31 ) ) OR (day = -1 ) ) ,check (((hour >= 0 ) AND (hour <= 23 ) ) OR (hour = -1 ) ) , check (((minute >= 0 ) AND (minute <= 59 ) ) OR (minute = -1 ) ))CREATE TABLE users (user_num INTEGER DEFAULT 01,user_type INTEGER DEFAULT 02,user_descr CHAR(50) NOT NULL,PRIMARY KEY( user_num,user_type ) ) LOCK MODE ROWCREATE TABLE sub_users (sub_user INTEGER PRIMARY KEY,ref_user_num INTEGER REFERENCES users (user_num),ref_user_type INTEGER ,sub_user_descr CHAR(50),FOREIGN KEY( ref_user_num,ref_user_type) REFERENCES users (user_num,user_type)) IN myspace EXTENT SIZE 16 NEXT SIZE 8修改表结构ALTER TABLE TABLENAMEADD/DROP/MODIFY COLUMNNAME TYPE增加列、删除列、修改列增加约束、删除约束修改区间大小(NEXT SIZE)改变锁定模式ALTER TABLE 语句执行期间,对整个表加互斥锁如果要修改约束,必须先删除,而后增加。

INFORMIX SQL技巧

INFORMIX SQL技巧

INFORMIX SQL技巧1.如何加快sql的执行速度?i.select 语句中使用sort,或join如果你有排序和连接操作,你可以先select数据到一个临时表中,然后再对临时表进行处理。

因为临时表是建立在内存中,所以比建立在磁盘上表操作要快的多。

如:SELECTtime_records.*,case_nameFROMtime_records,OUTER CasesWHEREtime_records.client = "AA1000" ANDtime_records.case_no = cases.case_noORDER BYtime_records.case_no;这个语句返回34个经过排序的记录,花费了5分钟42秒。

而:SELECTtime_records.*,case_nameFROMtime_records,OUTER casesWHEREtime_records.client = "AA1000" ANDtime_records.case_no = cases.case_noINTOTEMP foo;SELECT * from foo ORDER BY case_no;返回34条记录,只花费了59秒。

ii.使用not in 或者not exists 语句下面的语句看上去没有任何问题,但是可能执行的非常慢:SELECT code FROM table1 WHERE code NOT IN (SELECT code FROM table2);如果使用下面的方法:SELECT code, 0 flag FROM table1 INTO TEMP tflag;然后:UPDATE tflag SET flag = 1WHERE code IN ( SELECT code FROM table2 WHERE tflag.code = table2.code);然后:SELECT * FROM tflag WHERE flag = 0;看上去也许要花费更长的时间,但是你会发现不是这样。

informix的常用SQL语句

informix的常用SQL语句

informix的常用SQL语句1、创建数据库eg1. 创建不记录日志的库testdb,参考语句如下:CREATE DATABASE testdb;eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH BUFFERED LOG;eg3. 创建无缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH LOG;eg4. 创建ANSI的数据库(记录日志时无缓冲,SQL总在事务之中,拥有者名字被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH LOG MODE ANSI;2、创建普通数据表普通数据表又被称为持久数据表,它在system catalog里注册。

一个普通数据表可对多个sessi on和connection。

创建时可以指定dbspace。

eg1、如下语句创建了一个集团信息表cti_vccinfo:create table cti_vccinfo(vccid CHAR(6) not null,vccname VARCHAR(255),effective INTEGER default0not null,agentmax INTEGER default0not null,ivrmax INTEGER default0not null,updatekey VARCHAR(30),primary key(vccid) constraint PK_CTI_VI);3、创建临时数据表临时数据表不在system catalog里注册。

一个临时数据表只对对应的某个session或connectio n可见,在对应的session或connection结束时被自动清除。

InformixSQL语句详解

InformixSQL语句详解

InformixSQL语句详解Informix SQL 语句详解(1)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”;DA TABASE databse-name [EXCLUSIVE]选择数据库。

database_name:数据库名称。

EXCLUSIVE:独占状态。

存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。

例:dtabase customerdb;3. CLOSE DA TABASE关闭当前数据库。

database_name:数据库名称。

此语句之后,只有下列语句合法:CREATE DATABASE;DATABASE;DROP DA TABSE;ROLLFORWARD DA TABASE;删除数据库前必须使用此语句。

例:close database;4. DROP DA TABASE database_name删除指定数据库。

database_name:数据库名称。

用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK WORK 也不可将数据库恢复。

例:drop databse customerdb;5. CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)[IN “pathname”]创建表或临时表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单的SELECT语句SELECT语句是最重要也是最复杂的SQL语句,它和insert update和delete 语句一起用于数据操作,主要用于:●从数据库中检索数据●作为INSERT语句的一部分产生新的行●作为UPDATE语句的一部分更新信息1.S ELETE语句的简要介绍●构成:SELECT 子句指定要查询的表FROM 子句指定要查询的列WHERE子句选择特定的列或创建一个新的连接条件ORDER BY子句改变数据产生的次序INTO TEMP子句把结果以表的形式存放起来,供以后使用其中SELECT、FORM子句是必选的。

●权限查询数据库必须对该数据库具有connect权限以及对表具有SELECT权限,这些权限通常作为默认值赋给用户。

与数据库的操作权限有关的grant 和revoke语句将在后面讲到。

●关系操作选择:在表中满足特定条件的行的水平子集。

这一类型的SELECT 子句返回表中的一部分行的所有列。

选择是通过SELECT语句的WHERE子句来实现的。

例:SELECT *FROM customWHERE state=”NJ”显示结果如下:customer_num 107fname Charleslname Reamcompany Athletic Suppliesaddressl 41 Jordan Avenueaddress2city Palo Altostate CAzipcode 94304phone 415-356-9876投影:在表中一些列的垂直子集,子集包含了表中这些列的所有行。

这样的SELECT 语句返回表中所有行的一些列。

投影是通过在SELECT语句中的SELECT子句的选项来实现的。

例:SELECT UNIQUE city, state,zipcodeFROM customer查询结果包含了与customer 表中的相同数目的行,但仅投影了列的一个子集显示结果如下:city state zipcodeBartlesville OK 74006Blue Island NY 60406Brighton MA 02135Cheey Hill NJ 08002Denver CO 80219Jacksonville FL 32256Los Altos CA 94022Menlo Park CA 94025Moutain View CA 94040Moutain View CA 94063Oakland CA 94609Palo Alto CA 94303Palo Alto CA 94304Phoenix AZ 85008SELECT语句在大多数情况下同时使用选择和投影,查询返回表中的一些行和一些列。

例:SELECT UNIQUE city,state,zipcodeFROM customerWHERE state=”NJ”显示结果如下:city state zipcodeCherry Hill NJ 08002Princeton NJ 08540连续:将两个或多个表通过一个或多个相同的列联系起来成为一个新的结果表例:SELECT UNIQUE city,state,zipcode,snameFROM customer ,stateWHERE customer ,state = state.code显示结果如下:city state zipcode snameBartlesville OK 74006 Oklahoma Blue Island NY 60406 New YorkBrighton MA 02135 MassachusettsCherry Hill NJ 08002 New JerseyDenver CO 80219 ColoradoJacksonville FL 32256 FloridaLos Altos CA 94022 californiaMenlo Park CA 94025 californiaMountain View CA 94040 californiaMountain View CA 94063 californiaOakland CA 94609 california Palo Alto CA 94303 californiaPalo Alto CA 94304 californiaPhoenix AZ 85008 Arizona2.单表SELECT语句●检索所有的行和列使用*号:星号代表所有的列的名字。

例:SELECT *FROM manufact显示结果如下:manu_code manu_name lead_timeSMT Smith 3ANZ Anza 5NRG Norge 7HSK Husky 5HRO Hero 4SHM Shimara 30KAR karsten 21NKL Nikolus 8PRC ProCycle 9●选择特定的列例:SELECT UNIQUE customer_num FORM orders注:此处关键字UNIQUE 或它的同义词DISTINCT 来抑制重复的行显示结果如下:customer_num101104106…●排序◆列排序:可以通过改变选项表中列的次序来改变各列在显示时的次序。

例:SELECT manu_name , manu_code , lead_timeFROM manufact显示结果如下:manu_name manu-code lead_timeSmith SMT3Anza ANZ5Norge NRG7Husky HSK5Hero HRO4Shimara SHM30Karsten KAR21Nikolus NKL8ProCycle PRC9◆行排序:可以通过SELECT 语句中加入ORDER BY 子句来要求系统按某各指定次序对数据进行排序。

例:SELECT manu-code, manu_name, lead_timeFROM manufactORDER BY lead_time以lead_time 的次序显示manufact表中的每一行和列。

显示结果如下:manu_name manu_codelead_timeSmith SMT3Hero HRO4Husky HSK5Anza ANZ5Norge NRG7Nikolus NKL8ProCycle PRC9Karsten KAR21Shimara SHM30缺省时检索所得的数据排序后按升序显示。

升序对CHARACTER 数据类型而言是从大写A 到小写z,对数字类型而言是从最小值到最大值,DATE和DATETIME 类型的数据从早到晚的顺序排序,INTERVAL 数据按持续时间从最短到最长排序。

在列名后接关键字DESC 表明检索所得数据按降序排序。

例:SELECT *FROM manufactORDER BY lead_timeDESC显示结果如下:manu_code manu_name lead_timeSHM Shimara 30KAR Karsten 21PRC ProCycle 9NKL Nikolus 8NRG Norge 7HSK Husky 5ANZ Anza 5HRO Hero 4SMT Smith 3可以实现按照多列排序,人而建立一个组排序,缺省仍为升序,在ORDER BY 子句中列首位得列优先。

例:SELECT *FROM stockORDER BY manu_code, unit_price显示结果如下:stock_num manu_code description unit_price unitunit_descr5 ANZ tennis racquet $19.80 each each9 ANZ volleyball net$20.00 each each6 ANZ tennis ball$48.00 case 24 cans/case313 ANZ swim cap$60.00 box 12/box201 ANZ golf shoes$75.00 each each310 ANZ kick board$84.00 case 12/case301 ANZ running shoes $95.00 each each304 ANZ watch$170.00 box 10/box110 ANZ helmet$244.00 case 4/case205 ANZ 3 golf balls$312.00 case 24/case8 ANZ volleyball$840.00 case 24/case302 HRO ice pack$4.50 each each309 HRO ear drops$40.00 case 20/case301 HRO running shoes $42.50 each each● 选择特定的行可以在SELECT 语句中加入WHERE 子句来从表中检索特定的行。

通过WHERE 子句来设置一个比较条件,查询条件使用特定的关键字和运算符来定义搜索条件。

关键字:可以用BETWEEN 、LIKE 或MATH 测试相等的情况;或用IS NULL 来测试空值;可以把关键字NO 和这些关键字连用来指定相反的条件。

运算符:比较项的大小按照排序时的顺序确定,除了在测试NULL 值的时候,不能在比较项中使用TEXT 或BYTE 列。

在WHERE 子句中,可以用前面讲的关键字和运算符来建立比较条件查询,用来:◆ 包括行在WHERE 子句中用关系运算符 = 来包括指定的行 ◆例:SELECT customer_num, call_code, call_dtime, res_dtime FROM cust_callsWHERE customer_num = 106显示结果如下:customer_num call_code call_ dtime res_dtime106D 1994—06—12 08:20 1994—06—12 08:25 ◆ 排除行在WHERE 子句中用关系运算符!=或<>来排除指定的行例: SELECTcustomer_num, company, city, stateFROM customerWHERE state !=”CA”显示结果如下:customer_num company citystate119 The Triathletes Club Cherry Hill NJ120 Century Pro Shop Phoenix AZ121 City SportsWilmington DE122 The Sporting Life Princeton NJ123 Bay SportsJacksonville FL124 Putnum’s Putters Bartlesville OK125 Total Fitness Sports Brighton MA126 Neelie’s Discount Sp Denver CO127 Big Blue Bike Shop Blue Island NY128 Phoenix University Phoenix AZ◆排除一定范围和行在WHERE 子句中使用关键字NOT BETWEEN 来排除一定范围的例:SELECT fname, lname, company ,city,stateFROM customerWHERE zipcode NOT BETWEEN “94000”AND “94999”ORDER BY state显示结果如下:fname lname company city stateFrank Lessor Phoenix UniversityPhoenix AZFred Jewell Century Pro Shop Phoenix AZEileen Neelie Neelie’s Discount Sp Denver COJason Wallack City SportsWilmington DEMarvin Hanlon Bay SportsJacksonville FLJames Henry Total Fitness SportsBrighton MABob Shorter The Triathletes CluCherry Hill NJCathy 0’Brian The Sporting Life Princeton NJKim Satifer Big Blue Bike ShopBlue Island NYChris Putnum Putnum’s Putters Bartlesville OK◆指定行有多种方式可以在WHERE子句中指定行例:SELECT catalog_num ,stock-num, manu_code, cat_advertFROM catalogWHERE catalog_num, BETWEEN 10005 AND 10008或:SELECT catalog_num, stock_num, manu_code, cat_advertFROM catalogWHERE catalog_num >= 10005 AND catalog_num <= 10008第一个语句使用了关键字,第二个语句使用了关系运算符。

相关文档
最新文档