利用dbaccess和shell实现数据查询

上传人:飞*** 文档编号:52110593 上传时间:2018-08-18 格式:PPT 页数:65 大小:1.12MB
返回 下载 相关 举报
利用dbaccess和shell实现数据查询_第1页
第1页 / 共65页
利用dbaccess和shell实现数据查询_第2页
第2页 / 共65页
利用dbaccess和shell实现数据查询_第3页
第3页 / 共65页
利用dbaccess和shell实现数据查询_第4页
第4页 / 共65页
利用dbaccess和shell实现数据查询_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《利用dbaccess和shell实现数据查询》由会员分享,可在线阅读,更多相关《利用dbaccess和shell实现数据查询(65页珍藏版)》请在金锄头文库上搜索。

1、12关系数据库模型简介使用informix数据库服务器创建的数据库就是 关系数据库 关系数据库中的数据以具有行和列的表的格 式显示数据库中的术语与实体对象的简单对应关系 描述: 关系 描述 表实体 一个表表示数据库对某一主 题或事务已知的全部内容 列属性 一列表示一个属性、特征或 表主题适用的事实 行实例 一行表示表主题的一个特例例如:保单基本信息表是描述的实际保单的 基本信息,保单标的表描述的是标的的内容 ,而保单基本信息表中的起保日期列则表示 的是保单的起保日期的属性,保单基本信息 表中的某一行数据则对应实际的某张保单*3SQL结构化查询语言简介为什么需要结构化查询语言: 由于目前大部分的

2、计算机软件无法实现“老张 的车是否在我公司上了保险”这样的询问,必 须使用软件能够分析的格式化的语法来表述 问题SQL是结构化查询语言(Structured Query Language)的缩写 可以分成数据定义语言、数据操纵语言、数据控制访问语言等几类数据定义语言(DDL):用来创建、更改、 删除数据库、表或视图等数据操纵语言(DML):对数据库中的数据 进行查询或增删改操作 数据控制访问语言(DCL):对存取权限的 控制,授权和回收,游标语句,动态管理语句,数 据完整性语句,查询优化语句,事务处理语句 *4标准SQL和informix SQL70年代IBM发明和开发了SQL和关系模型标准S

3、QL: 86年ANSI发布了标准SQL:SQL-86 自1986年以来,已经存在多个版本:SQL-86,SQL-92, SQL-99,SQL-2003,其中SQL-2003是该标准的当前版本Informix SQL与标准 SQL 兼容 Informix SQL 包含对标准的扩展,大多数差异出现在不经常 使用的语句中,例如:在 SELECT 语句方面很少出现差异 ,该语句占 SQL 使用的 90%*5Informix结构*客户端程序数据库引擎数据库6Informix客户端常用工具Informix-sql: IsqlDb-access: dbaccess实现的功能相近,都可以通过SQL语句对数 据

4、库进行操作isql可以生成form并通过form实现对数据的操 作*7利用dbaccess学习SQL语言Dbaccess提供了用于输入、执行和调试SQL语句和存储过程(SPL)的 用户界面 使用DB-Access的几种基本方法: 在命令行提示符$下输入dbaccess 例如:dbaccess dbaccess 数据库名称 例如:dbaccess stores_demo Dbaccess SQL脚本文件 例如:dbaccess stores_demo orders.sql 批处理命令 Dbaccess stores_demo - -(不 等于),(大于),=(大于等于), 10000000从保单

5、基本信息表中选出险种不是DAA的保单 Select * from prpcmain where riskcode 10000000查询险种为DAA或者DAB的保单基本信息表数据 Select * from prpcmain where riskcode = DAA or riskcode = DAB24IN*功能:替代多个OR条件语法格式:SELECT “列名” FROM “表名” WHERE “列名” In (值1,值2,值3)举例:查询险种为DAA或者DAB或者DAE的保单基本信息表数据 Select * from prpcmain where riskcode in(DAA ,DAB,D

6、AE)查询险种不为DAA或者DAB或者DAE的保单基本信息表数据 Select * from prpcmain where riskcode not in(DAA ,DAB,DAE)25BETWEEN*功能:选择取值范围在某一区间内的数据,某种程序上可以替代多个 AND条件组成的语句语法格式:SELECT “列名” FROM “表名” WHERE “列名” BETWEEN 值1 AND 值2举例:查询险种为DAA起保日期为2006年10月1日至10月15日之间的 保单 Select * from prpcmain where startdate between 20061001 and 200

7、61015 相当于Select * from prpcmain where startdate = 20061001 and startdate 10000000 then “有钱客户“when sumprmeium 1000按归属机构分组查询保单数量并只显示数量大于1000的机构的数据如果使用INTO TEMP将分组查询结果写入临时表则上面语句等同于 Select comcode,count(*) as policycount from prpcmain group by 1 Into temp tmpt1; Select * from tmpt1 where policycount1000

8、;36日期函数*日期函数包括DAY,MONTHS,YEAR,WEEKDAY,TODAY, CURRENT等DAY:返回日期值中的天 MONTHS:返回日期值中的月 YEAR:返回日期值中的年 WEEKDAY:返回日期值是星期几,0代表是星期天 TODAY:返回当前日期 CURRENT:返回带时间的当前日期Select day(today),months(today),year(today),weekday(today), today,current From prpcmain where policyno = abcdefg37字符串处理函数*字符串处理函数包括LOWER,UPPER,REPL

9、ACE,SUBSTR, SUBSTRING等LOWER:将大写字母替换成小写字母 UPPER:将小写字母替换成大写字母 REPLACE:将字符串中的某一组字符替换为其他字符 SUBSTR:返回字符串的一部分 SUBSTRING:返回字符串的一部分 SUBSTR和SUBSTRING语法有些区别38NVL函数*NVL可以将求值为空值的表达式转换成指定值语法:NVL(表达式,表达式)如果表达式的值为空,则返回表达式的值,否则返回表达式的值Select policyno,nvl(sumprmeium,0) from prpcmain如果保费为空则返回039多表查询*要在两个或多个表中进行数据查询,可以

10、在from字句中指 定两个或两个以上的表名,并在where子句中在每个表的至 少一个字段间创立连接条件40笛卡尔积*笛卡尔积:当进行多表查询没有声明表之间的连接条件时 就生成了笛卡尔积,笛卡尔积由表的行的每种可能组合而 成可以在示例库stores_demo中运行下列语句来查看一下笛卡 尔积的查询结果 Select * from customer,stateState表有52行,customer表有28行,查询出的结果是 52*281456行41等值连接*使用等号或join关键字来连接多表间的具有对应关系的字段来构成查询 条件 Select * from prpcmain,prpcitemkin

11、d Where prpcmain.policyno = prpcitemkind.policyno 多表间等值连接 Select * from prpcmain,prpcitem_car,prpcitemkind Where prpcmain.policyno = prpcitemkind.policyno And prpcmain.policyno = prpcitem_car.policyno 或 Select * from prpcmain join prpcitem_car on prpcmain.policyno = prpcitem_car.policyno join prpcit

12、emkind on prpcmain.policyno = prpcitemkind.policyno42使用别名*可以通过在from子句中给表指定别名来提高查询速度,并 使SQL语句可读性更高,书写更简单Select t1.policyno,t1.riskcode,t2.kindcode from prpcmain t1,prpcitemkind t2 Where t1.policyno = t2.policyno指定别名时也可以加as关键字 如from prpcmain as t1,prpcitemkind as t243使用自连接*当需要对同一个表的同一个列之间的值进行比较时往往需要用到

13、自连接例如:要查询某支公司投保DAA险种的保单,保费差异大于10000元的 保单的情况select t1.policyno,t2.policyno, t1.sumpremium,t2.sumpremium from prpcmain t1,prpcmainT2 where t1.policyno 1000044使用外连接*外连接和等值连接不同,等值连接只返回相关表中相等的 数据,外连接则除返回相等数据之外还会显示出控制表的 全部数据,从属表没有关联上的数据则返回NULL,外 连接分为左外连接和右外连接 外连接关键字:left join,right join 控制表:以左连接为例控制表为使用le

14、ft join关键字前的表 表 表 等值连接则结果为 1 1 1,1 2 2 2,2 3 不等值连接结果则为1,12,23,NULL45WHERE条件中使用子查询*可以在WHERE条件中使用查询语句,通常使用的条件关键字包括=, , 0) 查询保单PJAZ200454010093000002的赔款是否大于保额 Select * from prpcmain where sumamount 600 Union all Select stock_num,manu_code from catalog Where catalog_num = 10025 Union all Select stock_nu

15、m,manu_code from items Where quantity = 10 Order by 247UPDATE语句*基本功能:更改表中的一个或多个列的数据 基本语法格式: UPDATE “表名” SET “列名” = 设定值 WHERE 条件 update prpcmain set underwriteflag = 0 where policyno = abcdefg注意:一般在生产环境下需要谨慎使用UPDATE语句,最好先用 SELECT语句设定好WHERE条件并确认条件正确后再将SELECT部分 修改成UPDATE语句的格式48INSERT语句*基本功能:向表中插入新行 基本语法格式: 、不用指定列名的形式 INSERT INTO 表名 VALUES (值1,值2,值3,值 4) 、指定列名的形式 INSERT INTO 表名 (列名,列名,列名) VALUES (值1,值2,值3) 、值来自查询结果 INSERT INTO 表名 (列名,列名,列名) SELECT 语句 49DELETE语句*基本功能:删除表中数据 基本语法格式: DELETE FROM 表名 WHERE 条件50查询优化*查询优化首要任务是减少数据库服务器的I/O 操作,加上其他技术运用实现最快查询 合理

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号