您当前的位置是:首页-4GL教程

INFORMIX-4GL实用手册(二)

【发表于】:2010/9/29 11:29:00  已被访问:269次

Informix-SQLVersion6.05.UD1应用

一.有关数据库,基表,索引的创建与删除

1.语法约定:

<......>表示必选项

{......}表示必选其中项

[......]表示可选项

(......)表示语句的一部分

|表示多项选一

大写[A-Z]表示Informix的保留字

小写[a-z]表示Informix的库名,表名,字段名,变量名

2.数据库(Database):

①.创建一个DB:

CREATEDATABASE[WITHBUFFEREDLOG]

└─┴→语法关键字└→数据库名└→是否带数据库日志

创建一个DB同时也打开了这个DB

②.数据库命名规则:

㈠.数据库名不超过10个字符.

㈡.必须以字母打头,其余部分可以是字母,数字,下划线的任意组合.

㈢.在同一数DBServer(据库服务器)中数据库名应具有唯一性.

㈣.数据库名不得是Informix的保留字

3.数据库基表(Table):

 

①.创建一个DBTable:

DATABASE→数据库名

CREATETABLE→数据库表名

字段名称字段类型字段说明

(column0serial(1),#有序整数型,其初始值为1

column1integer,#从-2147483647到+2147483647之间的整数

column2smallint,#从-32767到+32767之间的整数

column3floatdefault0.00notnull,#双精度浮点数

column4smallfloat,#单精度浮点数

column5decimal(m,n),#具有可定义精度的数字(左边m-n位,右边n位)

column6money(m,n),#与decimal型相同(货币型)

column7date,#日期型

column8datetimeyeartosecond,#日期时间型(1999-09-0709:52:52)

column9char(n),#字符型n表示字符长度

column10varchar(n),#字符型(最后一个字段无逗号)

check(字段名in(值1,值2,值3)constraint名称,

primarykey(字段1,字段2,字段n)constraint名称##主键唯一,非空

);

数据类型 字段长度

CHAR 语句中定义的长度

VARCHAR 语句中定义的长度

SMALLINT 2个字节

INTEGER 4个字节

SMALLFLOAT 4个字节

FLOAT 8个字节

SERIAL 4个字节

DATE 4个字节

DATETIME 8个字节(YeartoSecond),其它为4

DECIMAL(m,n) 依赖精度(m/2+1四舍五入到下一整数)

MONEY(m,n) 依赖精度(m/2+1四舍五入到下一整数)

②.基表命名规则:

㈠.表名最多不超过18个字符,除此以外与数据库命名规则雷同.

㈡.必须以字母打头,其余部分可以是字母,数字,下划线的任意组合.

㈢.在同一数据库中表名应具有唯一性.

㈣.表名不得是Informix的保留字.

㈤.表中字段名不得超过18个字符,定义liketable.*必须保证前8个字符的唯一性。

㈥.表中字段名不得重复(不区分大小写)。

4.索引(Index):

①.索引分类:

㈠.单字段索引:提高查询和分类操作效率。

㈡.多字段索引:加快几个字段分类处理的速度。

索引仅是加快数据分类处理的速度。

②.索引规则:

㈠.直到表中有上百条记录时才加索引.

㈡.经常用于检索和排序操作的字段.

㈢.用于连接表和使用频率高的字段。

㈣.不要对含有大量重复值的字段加索引,索引字段中相同的值不得出现多于65536次

㈤.不得对多于8个字段的组加索引。

㈥.不得对长度超过120字节的一个字段或一组字段加索引。

㈦.索引命名规则与表名命名规则相似。

③.创建索引:

CREATE[UNIQUE|DISTINCT]INDEX→索引名

└→唯一索引ON→表名

(column1[DESC],column2,..,columnn)

└→降序索引

5.视图(View):

①.视图定义:视图是数据库上动态的窗口而不是静态的状况,并且是以数据库表的形式出现在数据库中,授权与增、删、改操作与基表的操作一致。

②.视图命名规则:

㈠.表名最多不超过18个字符,除此以外与数据库基表的命名规则雷同.

㈡.必须以字母打头,其余部分可以是字母,数字,下划线的任意组合.

㈢.在同一数据库中视图名应具有唯一性.

㈣.视图名不得是Informix的保留字.

㈤.视图中字段名不得超过18个字符,必须保证前8个字符的唯一性。

㈥.视图中字段名不得重复(不区分大小写),应具有唯一性。

③.视图任务:

㈠.在数据库上为不同的用户提供不同的数据窗口,一个单独的视图可以包含来自不同的表的字段(字段不得同名)。

㈡.限制某些敏感数据的存取,只允许用户查看聚合信息。

㈢.允许用户象修改、插入和删除数据库中如同在视图中出现那样被组织起来的数据

④.视图与基表的区别:

㈠.不能利用视图取代格式说明文件中的表。

㈡.不能在视图上建立索引。

㈢.某些条件下不能通过视图更新或删除看到的数据。

㈣.不能通过ROWID存取表。

⑤.创建与删除视图:

CREATEVIEW[(字段1,...,字段n)]

└→视图名称

ASSelect<标准Select语句>→不得使用UNION操作符

[WITHCHECKOPTION]→输入与修改是否满足Select语句条件

6.删除数据库、表、索引、视图

①.删除数据库:drop

②.删除表:droptable

③.删除索引:dropindex

④.删除视图:dropview

删除数据库前必须关闭此数据库,删除数据库同时也删除了该数据库的所有表、索引、视图。

 

二.SQL实际应用

1.INSERT语句:(向数据库的表中插入一条行记录)

INSERTINTO(column1,comumn2,...,comumnn)

└→表名└→字段名表→缺省为所有字段

VALUES(value_list)→值列表

2.DELETE语句:(从数据库的表中删除若干条满足条件的行记录)

DELETEFROM(WHERE条件列表)→缺省为所有行记录

└→表名

3.UPDATE语句:(修改数据库表中满足条件的若干条行记录)

UPDATESTATISTICS(TBname)→为指定数据库表更统计(缺省为所有)

└→表名

UPDATESET<字段1=值1,字段n=值n>

└→表名

(WHERE条件列表)→缺省为所有行记录

UPDATESET<字段列表>=<值列表>

└→表名

(WHERE条件列表)→缺省为所有行记录

UPDATESET<字段.*>=<记录.*>

└→表名

(WHERE条件列表)→缺省为所有行记录

4.Select语句:(从一数据库表中选择满足条件的行记录)

Select→*表示所有字段

(INTO<程序变量列表>)或(INTOTEMP<临时表>)

FROM[表别名]→数据库表名

(WHERE<条件列表>)→缺省为所有行记录

ORDERBY[column1,column2,...,column8][DESC]→排序(可选)可用1-8代替字段

GROUPBY[column1,column2,...,columnn]→分组(可选)可用1-8代替字段

[HAVING<条件>]→为组提供一个或多个限制条件

INTOTEMP<临时表>(可选)

5.多表连接(Join)的Select语句:(从多个数据库表中选择满足条件的行记录)

Select<表1.字段>,<表2.字段>,<表2.字段>,<表3.字段>,...,<表n.字段>

FROM<表1>[别名1],<表2>[别名2],<表3>[别名3],...,<表n>[别名n]

WHERE<条件列表>→WHERE子句不能省略

ORDERBY[1,2,3,4,5,6,7,8][DESC]→排序,1-8表示字段在Select中出现的顺序。

GROUPBY[column1,column2,...,columnn]→分组(可选)

[HAVING<条件>]→为组提供一个或多个限制条件

INTOTEMP<临时表>(将查询结果放到临时表中)

当在WHERE子句中建立多表连接时,表与表之间至少有一个字段用于连接。连接的功能是建立一个临时组合的表,在对应表中符合连接条件的记录被连接形成一个记录。

6.Select语句中的聚合函数和日期函数:

语法功能

COUNT(*)满足条件的记录个数

COUNT(DISTINCT*)去除重复项后满足条件的记录个数

SUM(DISTINCTx)满足条件字段x的总和

AVG(DISTINCTx)满足条件字段x的平均值

MAX(x)满足条件字段x的最大值

MIN(x)满足条件字段x的最小值

DATE()为表达式返回一个DATE类型的值

DAY()返回DATE类型表达式月份的日期(多少号)

MDY()分别代表月、日、年的整数返回一个DATE类型的值

MONTH()返回DATE类型表达式的月份

WEEKDAY()返回DATE类型表达式星期的整数0-6(星期日至星期六)

YEAR()返回DATE类型表达式的年份

7.Select语句中的算术操作符:

符号功能

+加法

-减法

*乘法

/除法

mod取模(取余数)

**幂(乘方)

8.WHERE子句的详细说明:

①.关系操作符:

操作符功能

=或==等于

!=或<>不等于

>大于

>=大于或等于

<小于

<=小于或等于

②.AND和OR(与、或)

③.[NOT]BETWEEN...AND...([不]在...与...之间)

④.[NOT]IN(值1,值2,值3,。。。,值n)所期望的值

⑤.[NOT]MATCHES模式匹配:

MATCHES“字符值”

 
上下篇: INFORMIX-4GL实用手册(三)

最新推荐信息