日期:2014-05-16  浏览次数:20578 次

informix数据库总结

1.informix一共47条SQL语句,均不区分大小写,数据库名10字内,其余18字内。
2.支持8种数据类型?
? integer和smallint为较小的数据范围,占用空间小,运算速度快;
? serial:系统为该类型自动生成一个值,类似integer,32位;只能有一个列是该类型
? float和smallfloat:保存较大或较小的数,运算速度快;超出范围记为0
? decimal和money:定点数保存数值,decimal(p,s):p整个数据的有效位数,s为小数点右边的位数
? 3种时间类型:
? date用于存储时日期,datetime用于存贮记录时间点,inteval保存时间间隔
? 字符串类型:char(最大32767个字符)和varchar(最大255个字符)
? BLOB:任意数值和长度的字节流

3.表达式主要用于select表达式、delete表达式、update表达式、execute procedure表达式
? 日期函数:
? Date()、Month()、Year()、WeekDay()、DAy()

4.select语句中某字段[1,3]表示取前三位

5. Informix提供了丰富的手段用于构件查询条件
? 不等号的写法!=或<>,时间类型也行、可以比较大小
? 空值判断:where 某字段 is null or is not null;=null写法错误
? 模糊匹配:where 某字段 matches ‘[A-Z]’是A—Z,但[AZ]是A或Z
? 可以用escape指定转义字符不用默认的\
? 逻辑运算符and or not
? order还可以用列号
?
? 在select语句后加入into temp子句可以讲查询结果保存在临时表 ,后接表名
? 在创建临时表的应用程序或一次SQL会话结束,临时表自动删除
? 使用临时表的目的:反复使用查询到的结果
? union会自动过滤重复的行
? informix没有提供交的运算符,但可以用exists 或in引入子查询
? informix也米有提供差查询,但可以用not exists 或not in引入子查询
?
6.插入多行
? insert into 表名 select 语句

? 批量数据加载和卸载
? unload语句将表中数据卸载到一个文件,load语句将文件数据导入表中
? load from 文件名insert into 表名
? unload to 文件名 select语句
7.存储过程
? 有SQL语句和SPL(Stored Procedure Language)语句组成。存储过程创建以后,可以转化为可执行代码。

? SysProcedures表存放 存储过程的总体特征。包括存储过程的名字、属主、标识、参数个数
? 先编译成内部代码才能执行
? 系统对存储过程中包含的SQL语句做分析和优化,检查SQL语句的语法的正确性,将SQL语句写入一颗查询书
? 以便于SQL语句的存储和执行。而后系统产生存储过程的依赖表,包括决定是否重新做优化前的应该检查的条目
? 对于存储过程包含的SQl,系统进行语法分析,将其转化为等价的伪代码,可以加快译码器的处理速度。
? 系统将伪代码、查询树、依赖表转换为ASCII格式,将结果以文本形式保存到相应的系统表。
? 最后将存储过程的相关信息保存到系统目录表SysProcedures。存储过程的授权情况保存在sysprocauth表中

? 利用存储过程将一部分代码保存在服务器中,可以减轻网络负载,从而提高系统性能,

? 创建存储过程用create proceduce 语句。

? 对于存储过程中隐含的错误可以通过Trace语句查找。