Michael McLaughlin是Oracle 11g和MySQL 5.6开发者指南的作者,他在书中为Oracle数据库开发者提供了一些建议与帮助。书中的一章探讨了提高SQL查询效率的相关技巧,比如使用关键字以及软件开发工具等。 为此,TechTarget数据库网站对McLaughlin进行了简短的采访,让他来谈一谈Oracle查询的合理使用。 开发者进行数据库查询的时候,经常会碰到的问题有哪些? McLaughlin:在实际的开发当中,我们发现程序员在设计方面的问题会比语法错误要严重。
SQL设计的错误将导致返回不一致、不正确或者无用的结果。导致这一现象的原因往往是连接条件无法解决……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
Michael McLaughlin是Oracle 11g和MySQL 5.6开发者指南的作者,他在书中为Oracle数据库开发者提供了一些建议与帮助。书中的一章探讨了提高SQL查询效率的相关技巧,比如使用关键字以及软件开发工具等。
为此,TechTarget数据库网站对McLaughlin进行了简短的采访,让他来谈一谈Oracle查询的合理使用。
开发者进行数据库查询的时候,经常会碰到的问题有哪些?
McLaughlin:在实际的开发当中,我们发现程序员在设计方面的问题会比语法错误要严重。SQL设计的错误将导致返回不一致、不正确或者无用的结果。导致这一现象的原因往往是连接条件无法解决一个关系或者WHERE语句无法正确过滤相应的行。
无用的查询通常是因为使用不必要索引导致的无用连接,或者是相关查询的join语句匹配非唯一的列值。当然解决这一问题并不困难,使用IN、ANY或者SOME运算符,针对非唯一匹配的列值,它们返回结果的速度更快。
在查询时使用关键字的好处是什么?
McLaughlin:关键字在SQL中扮演了许多角色,当帮助开发者弄清数据或者SQL语句时是非常高效的。比如INNER、LEFT、RIGHT和FULL JOIN这些关键字将限定表之间的关系,它们可以帮助开发者看清楚什么表提供什么数据。举例来说,一个INNER JOIN或JOIN是表之间的交集,它需要你声明支持连接操作的列。在ANSI 92中,WHERE子句只包含过滤没有连接条件的结果集的join语句。而老一些的ANSI 89通过逗号来分割表,且join语句可以任意出现在WHERE子句中。WHERE子句就包含了连接语句和过滤语句。
LEFT、RIGHT和FULL JOIN语句能够实现外部连接。一个LEFT JOIN可以查询所有左侧外加交集的结果,它通常比之前Oracle使用“+”符号更加清晰一些。因为LEFT和RIGHT能够让你看到那些没有交集的数据在哪里。另一方面,“+”符号可以用在交集外没有其他数据的情况下。
请您解释一下表别名的重要性,为什么开发者要用到它?
McLaughlin:就像表名一样,当使用查询返回数据时,表别名(Table aliases)可以消除相同名称的列。它往往可以简化长的描述性的名称。当你连接相同表的拷贝时,它是必要的,因为表别名可以在一个查询中完成表的多个拷贝。
使用软件开发工具的优势和缺点有哪些?主要是和命令行界面相比。
McLaughlin:我认为使用软件开发工具的优势还是更多一些。它们对于标准查询以及插入、修改、删除语句来说非常好,还可以打包并运行脚本文件。有些时候你需要隔离一个问题,命令行界面提供SQL与数据库交互的梗概情况,且它是SQL的通用语,也就是说直接使用不必再进行软件开发工具的相关培训。
开发者应牢记的几点编程习惯是什么?
McLaughlin:开发者应该形成一种写SQL语句的风格,能够清楚地阅读代码标点和语法规范。这往往意味着需要敲更多的代码,但是它能够降低出错的风险并节省相应的时间。举例来说,高手写代码时,会把逗号放在SELECT和ORDER BY的左侧,AND/OR关键字放在WHERE子句的左侧。
另外一点,多使用表别名,因为用它来添加内容会更容易,还可以消除相同名称的列。
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
2017年5月数据库流行度排行榜 MySQL与Oracle“势均力敌”
数据库知识网站DB-engines.com最近更新了2017年5月的数据库流行榜单。TechTarget继续与您一起分享最新的榜单情况。
-
2017年3月数据库流行度排行榜 Oracle卫冕之路困难重重
时隔一个月,数据库市场经过一轮“洗牌”,旧的市场格局是否会被打破,曾经占巨大市场份额的企业是否可能失去优势?