




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用“万能数据库查询分析器”测试SQLite对4大SQL精髓语句的支持马根峰( 广东联合电子收费股份有限公司, 广州 510300)作者博客:CSDN博客:/magenfeng新浪博客: /magenfeng QQ空间: /630414817/main#! 0 引言 SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,比如现在最常见的安卓Android系统中。在SQL(Structured Query Language)语言DML中,有四大语句堪称其精髓部分,分别是CASE WHEN语句,Left Outer Join | Left Join | Right Outer Join | Right Join | Inner Join语句,WITH AS语句,UNION、UNION ALL语句。本人分别在“软件开发高手须掌握的4大SQL精髓语句(一)”至“软件开发高手须掌握的4大SQL精髓语句(四)” 、“软件开发高手须掌握的4大SQL精髓语句(综合篇) ”5篇博文中进行了详细的阐述。本篇博文本人将用“万能数据库查询分析器”的中英文版本,来测试一下SQLite对上述4大精髓SQL的支持情况,以及用“万能数据库查询分析器”将SQLite查询的结果灵活地用拷贝、导出EXCEL中,来方便用户的办公处理。1 本例所用工具简单说明下面就以SQLite数据库为例,以“万能数据库查询分析器” 中文版本DB 查询分析器、英文版本DB Query Analyzer作为客户端工具来来演示4大SQL精髓语句的用法。之所以选择“万能数据库查询分析器”作为客户端工具,主要是因为,一方面,“万能数据库查询分析器”具有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。在程序员2007第2期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。另一方面,截止到目前,中文版本DB 查询分析器在国内最著名的软件下载网站“中关村在线”中下载量近9万次,位居整个数据库类排行谤中前20位。 图 百度上搜索“万能数据库查询分析器”结果超过300万条本例所用SQLite版本: 3.37 SQLite ODBC驱动程序版本: SQLite 3.5.7 ODBC driver DB 查询分析器版本: 2.02 DB Query Analyzer版本: 2.02 2 建立SQLite数据库的 ODBC数据源mgf_sqlite8 DB 查询分析器是通过ODBC数据源来访问各种数据库及EXCEL的,所以首先要建立要访问的数据库或EXCEL的ODBC数据源。如果您的主机上没有对应数据库的ODBC驱动程序,那您还要下载(通常该数据库厂家的官方网站上都提供有ODBC驱动程序下载)安装对应数据库的ODBC驱动程序,然后再建立相应的ODBC数据源。 下图是用来创建ODBC数据源mgf_sqlite8 3 “万能数据库查询分析器” 中文版本DB 查询分析器为例 下面就以SQLite数据库为例,以“万能数据库查询分析器” 中文版本DB 查询分析器在Windows XP上运行,来作为客户端工具来来演示一下4大SQL精髓语句的使用。 运行DB Query Analyzer,连接上数据源 mgf_sqlite8 ,用户名与口令均为空,然后输入以下命令: SELECT AREANO,(case when AREANO=4405 then 粤北区域 when AREANO=4406 then 粤东区域 end) as Areaname, ROADNO,ROADNAMEFROM TB_ROAD WHERE AREANO IN (4405,4406); 图1 执行 Case When 语句SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4402,4403,4405,4407) ) a LEFT JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图2 执行 Left Join 语句SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4405) ) a RIGHT JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图3 执行 Right Join 语句,表明SQLite不支持 Right Join 语句 SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4405) ) a INNER JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图4 执行 Inner Join 语句 with v_area as(select * from tb_areawhere areano=4402)select * from tb_area a left join tb_road b on a.areano=b.areano ; 图5 执行 With as 语句,表明SQLite不支持 With as 语句 SELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407)UNIONSELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407); 图6 执行 Union 语句 SELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407)UNION ALLSELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407); 图7 执行 Union All 语句 图8 执行结果导出到 .csv文件中,用EXCEL打开 4 “万能数据库查询分析器” 英文版本DB Query Analzyer为例 下面就以SQLite数据库为例,以“万能数据库查询分析器”英文版本DB Query Analyzer在Windows 2000上运行,来作为客户端工具来来演示一下4大SQL精髓语句的使用。 运行DB Query Analyzer,连接上数据源 mgf_sqlite8 ,用户名与口令均为空,然后输入以下命令:SELECT AREANO,(case when AREANO=4405 then 粤北区域 when AREANO=4406 then 粤东区域 end) as Areaname, ROADNO,ROADNAMEFROM TB_ROAD WHERE AREANO IN (4405,4406); 图1 执行 Case When 语句SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4402,4403,4405,4407) ) a LEFT JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图2 执行 Left Join 语句SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4405) ) a RIGHT JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图3 执行 Right Join 语句,表明SQLite不支持 Right Join 语句 SELECT a.Areano,a.Areaname,b.roadno,b.roadnameFROM (SELECT * FROM tb_area WHERE AREANO IN (4405) ) a INNER JOIN (SELECT * FROM tb_road WHERE AREANO IN (4405,4406) ) b ON a.areano=b.areano ; 图4 执行 Inner Join 语句 with v_area as(select * from tb_areawhere areano=4402)select * from tb_area a left join tb_road b on a.areano=b.areano ; 图5 执行 With as 语句,表明SQLite不支持 With as 语句 SELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407)UNIONSELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407); 图6 执行 Union 语句 SELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407)UNION ALLSELECT areano,areanameFROM TB_AREA WHERE AREANO IN (4402,4405,4406,4407); 图7 执行 Union All 语句 图8 执行结果导出到 .csv文件中,用EXCEL打开 5 结论 SQLite数据库支持CASE WHEN语句、Left Outer Join | Left Join | Inner Join语句,UNION、UNION ALL语句,不支持 Right Outer Join | Right Join和 WITH AS语句。 本人在执行过程中,发现由于SQLite数据ODBC驱动程序中的有些问题导致出“万能数据库查询分析器”一次执行多条SQL语句时,会出现第二条SQL语句执行出现问题。这在以前测试过的ORACLE、SYBASE、DB2、INFORMIX、MS SQL SERVER、MS ACCESS、Paradox和EXCEL中是没有出现过的,所以强烈建议大家在一次选中一条SQL语句或者只输入一条SQL语句来执行。软件开发高手须掌握的4大SQL精髓语句 系列:软件开发高手须掌握的4大SQL精髓语句(综合篇) /magenfeng/article/details/8126418 软件开发高手须掌握的4大SQL精髓语句(四) /magenfeng/article/details/8050612 软件开发高手须掌握的4大SQL精髓语句(三) /magenfeng/article/details/8015093 软件开发高手须掌握的4大SQL精髓语句(二) /magenfeng/article/details/8003558 软件开发高手须掌握的4大SQL精髓语句(一) /magenfeng/article/details/7969385DB 查询分析器使用技巧系列:DB 查询分析器使用技巧之(一)/magenfeng/article/details/7189174DB 查询分析器使用技巧之(二)/magenfeng/article/details/7189176DB 查询分析器使用技巧之(三)/magenfeng/article/details/7192402DB 查询分析器使用技巧之(四)/magenfeng/article/details/7195059DB 查询分析器使用技巧之(五)/magenfeng/article/details/7196846DB 查询分析器使用技巧之(六)/magenfeng/article/details/7164432DB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通讯电子技术试题及答案
- 2025商业地产租赁合同范本
- 2025年春季部编版初中数学教学设计八年级下册第1课时 菱形的性质
- 2025设备购买协议合同范本
- A1 自愿离婚协议书示范文本
- 知识题库-人社练兵比武劳动竞赛试题及答案(二十一)
- 公园出入口课件
- 《2025协商解除劳动合同协议》
- 搜课件模板app无删减
- 揭阳安全知识培训课件平台
- SIEMENS西门子蒸箱使用说明书用户手册
- 《化学实验室安全培训》课件
- DGTJ 08-60-2017 机械式停车库(场)设计规程
- 腰部疾病的健康宣教
- 水文地质风险评价方法-洞察分析
- 小学英语与美术结合的实践活动方案
- 输变电工程施工质量验收统一表式(变电工程土建专业)
- 结直肠腺瘤中西医结合防治指南-公示稿
- 电动车充电应急处置预案
- 医疗护理员培训机构申报表
- 半导体器件的干法刻蚀技术考核试卷
评论
0/150
提交评论