`

Oracle数据库查询的五个技巧

阅读更多

数据查询,是数据库操作中最主要的功能之一;有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型。下面笔者不谈大道理,只是对其中对一些平时大家容易忽略的查询小技巧做一些总结。或许大家可能正在为此犯愁呢?

第一个技巧:利用连接符连接多个字段。

如在员工基本信息表中,有员工姓名、员工职位、出身日期等等。如果现在视图中这三个字段显示在同一个字段中,并且中间有分割符。如我现在想显示的结 果为“经理Victor出身于1976年5月3日”。这该如何处理呢?其实,这是比较简单的,我们可以在Select查询语句中,利用连接符把这些字段连 接起来。

如可以这么写查询语句:

SELECT员工职位 ||’ ’ ||员工姓名||’出身于’||出身日期 as 员工出身信息 FROM 员工基本信息表;

通过这条语句就可以实现如上的需求。也就是说,我们在平时查询中,可以利用||连接符把一些相关的字段连接起来。这在报表视图中非常的有用。如笔者 以前在设计图书馆管理系统的时候,在书的基本信息处有图书的出版社、出版序列号等等内容。但是,有时会在打印报表的时候,需要把这些字段合并成一个字段打 印。为此,就需要利用这个连接符把这些字段连接起来。而且,利用连接符还可以在字段中间加入一些说明性的文字,以方便大家阅读。如上面我在员工职位与员工 姓名之间加入了空格;并且在员工姓名与出身日期之间加入了出身于几个注释性的文字。这些功能看起来比较小,但是却可以大大的提高内容的可读性。这也是我们 在数据库设计过程中需要关注的一个内容。

总之,令后采用连接符,可以提高我们报表的可读性于灵活性。

第二个技巧:取消重复的行。

如在人事管理系统中,有员工基本信息基本表。在这张表中,可能会有部门、职位、员工姓名、身份证件号码等字段。若查询这些内容,可能不会有重复的行。但是,我若想知道,在公司内部设置了哪些部门与职位的时候,并且这些部门与职位配置了相关人员。此时,又该如何查询呢?

若我现在直接查询部门表,其可以知道系统中具体设置了哪些部门与职位。但是,很有可能这些部门或者职位由于人事变动的关系,现在已经没有人了。所 以,这里查询出来的是所有的部门与职位信息,而不能够保证这个部门或者职位一定有职员存在。也就是说,这不能够满足于我们上面的要求。

若我现在直接从员工信息表中查询,虽然可以保证所查询出来的部门与职位信息,一定有员工信息的存在。但是,此时查询出来的部门与职位信息会有重复的行。如采购部门分工合作,可能会有采购采购小组长。此时,在查询出来的部门与职位的信息中,就会有三条重复的记录。

所以,以上两种处理方式,都不能够百分之百的满足企业用户的需求。此时,我们其实可以利用一个DISTINCT函数,来消除其中查询出来的重复行。

如我们可以利用SELECT DISTINCT 部门信息,职位信息 FROM 员工基本信息表。通过这条加了DISTINCT约束的查询语句,不但可以查询出所有有员工的职位与部门信息,而且,会把重复的记录过滤掉,从而提高可阅读性。

所以,在数据库设计过程中,特别是在查询语句的使用中,这个函数特别有用。

第三个技巧:勤用WHERE语句。

我们都知道,数据库查询效率高不高,是我们评价数据库设计好坏的一个重要标准。毋庸置疑,在数据库查询中勤用Where条件语句,是提高数据库查询 性能的一个很重要的手段之一。特别是在设计到比较大的表中查询符合条件的记录过程中,利用WHERE条件语句加以限制,可以大幅度的提高查询的响应速度。

如在图书馆管理系统中,现在有人想查询“注册会计师”辅导用书的时候,虽然不在书的类别或者名称中输入“注册会计师”,先查询出全部的纪录,然后再 一条条的看是否有相关的书籍信息,也是可行的。但是,这么处理的话,一方面系统响应的速度会非常的慢,因为里面记录很多。另一方面,查询的结果看起来也会 非常的头疼。

其实,我们只需要在查询中加入一些查询的参数,利用Where条件语句加以限制,则即可以提高数据库响应的速度,也可以找出最符合用户需求的数据。

另外,我也接触过一些在Oracle数据库上设计的平台型管理软件,他们可以自定义相关的报表。在报表设计中,只要用户在前台设计平台中,选中“大表查询”的话,则这个平台会在生成报表的时候,自动应用Where条件语句,以提高前台系统从数据库查询数据的效率。

所以,笔者认为在Oracle数据库系统设计中,要勤于使用Where语句。利用Where语句来提高数据库查询的效率。

第四个技巧:灵活使用COUNT函数。

在查询处理的时候,COUNT函数可以说是我们应用的比较多的函数之一。如我们有时候需要统计员工的人数、统计图书的种类数的时候,都需要使用到这个函数。不过,这个函数很多人可能会用,但是到灵活应用的地步,还是有一点差距。

下面笔者就COUNT函数的一些应用技巧谈谈自己的心得。

一是要灵活放置COUNT函数的位置,因为利用COUNT函数统计记录数的时候,是会考虑空行的记录的。如在数据表中一般有序列字段与其它的有意义 字段两类。有时候可能序列字段中有内容而其它字段中没有内容,则在利用COUNT函数统计记录数量的时候,会把这个空记录也考虑进去。很明显,则就会发生 统计的错误。所以,这个COUNT函数该放在哪个位置上,还是比较讲究的。一般的话,笔者试建议不要放在序列号字段上,而要放在一些关键的实体字段中。如 统计员工人数的时候,则就可以放在员工姓名或者编号上等等。

二是灵活跟其它函数搭配使用。如在上面的例子中,笔者谈到有时候用户需要知道现在有员工编制的部门与职位有哪一些,我们可以利用DISTINCT函 数来找出具体的部门。但是,我现在只想知道有编制的部门与职位具体有多少,此时,我们也可以利用COUNT 与DISTINCT函数结合应用,找出我们所需要的数据。在COUNT函数中,可以指定ALL与DISTINCT选项。默认的情况下,是ALL选项,表示 统计所有的行,其中也包括重复的行。而DISTINCT就表示只统计不重复的行。可见,COUNT函数跟其它函数搭配使用的话,可以简化我们的查询语句, 提高查询效率。

第五个技巧:只查询必须的字段。

有时候,用户不同的查询需求都要用到同一张表。如在员工信息表中包含了很多内容。有时候用户想要知道正式员工有多少;管理层员工有多少;生产线员工 又有哪些;或者想知道合同即将到期的员工有哪些。为此,就遇到一个问题,因为这些内容基本上都是在同一张表中,那是在同一个视图中实现,而是根据需求不 同,设计不同的视图呢?

若单从技术上考虑,两这都是可以实现的,不会有多大的难度。但是,若是从数据库性能上考虑在,则还是采用不同的视图来实现不同的需求为好。

一方面,若从安全方面讲,则可以根据不同的视图来控制相关的访问权限。可见,把视图细化,在权限控制上则会更加的灵活。

另一方面,数据的查询效率,跟数据内容的多少也有非常密切的关系。如在查询员工合同到期信息的时候,一般不需要员工的地址信息等等。若把这个信息也 查询出来的话,由于这个字段比较长,就会花费比较长的时间。所以,在数据库设计中,我们要学会根据用户不同的需求,设计不同的视图。虽然可能这在设计的时 候会比较花时间,但是,在确可以提高数据库的性能与安全性。这笔生意还是划得来的。

分享到:
评论

相关推荐

    Oracle数据库处理时间的技巧

    Oracle 数据库处理时间的技巧 Oracle 数据库处理时间的技巧是数据库管理员和开发者需要掌握的重要技能。处理时间信息是监控、诊断和处理数据库性能问题的重要依据。但是,Oracle 数据库的时间计量单位是厘秒,可能...

    linux shell 查询oracle数据库中的值 并返回

    如果你能够访问这些文件,你可以从中获取更多关于如何在Linux shell中查询Oracle数据库的实用技巧和建议。 总的来说,通过shell脚本和`sqlplus`工具,我们可以高效地在Linux环境下与Oracle数据库交互,进行数据查询...

    易语言连接Oracle数据库

    通过学习和理解这个示例,开发者可以快速掌握易语言与Oracle数据库的交互技巧。 总之,连接Oracle数据库对于易语言开发者是一项重要技能。通过正确配置Oracle客户端,结合易语言的数据库连接和记录集组件,开发者...

    oracle数据库管理的三个技巧

    本文将详细探讨Oracle数据库在空间管理的三个实用技巧。 首先,我们关注的是表空间的自由空间管理。通过观察表空间的自由空间,DBA可以评估每个表空间的使用情况,判断是否需要进行扩展或优化。如上所述,可以使用...

    Oracle数据库的安装配置方法及C#连接操作Oracle数据库技巧、通用类等资料搜集整理

    搜集整理的Oracle数据库安装与配置方法...5、Oracle数据库体系结构。6、ORACLE数据类型。7、c#通过oledb连接Oracle。8、一个C#操作Oracle的通用类。9、另一个C#操作Oracle数据库的通用类。10、C# Oracle连接 操作类。

    Oracle数据库使用指南

    本指南将针对初学者,详细介绍Oracle数据库的基础知识、安装与配置,以及一些常用的操作和管理技巧。 **1. Oracle数据库简介** 1.1.1 数据库术语 在讨论Oracle数据库之前,我们需要了解一些基本的数据库术语,如...

    Oracle数据库学习课件

    通过这套课件,学习者可以深入了解Oracle数据库的架构、管理、优化以及开发技巧。 课程内容可能包括以下几个核心部分: 1. **Oracle数据库基础**:首先,你会了解到数据库的基本概念,如数据模型(层次、网络、...

    基于ORACLE数据库程序设计

    通过这个全面的教程,学习者不仅可以了解Oracle数据库的基础,还能掌握数据库设计、程序编写和管理的实用技巧,为后续的数据库开发工作打下坚实基础。在实践中不断探索和应用,将使你成为Oracle数据库领域的专家。

    ORACLe数据库讲义.ppt

    可以参考俞盘祥的《Oracle数据库系统基础》、沈佩娟和汤荷美的《数据库管理及应用开发》以及孙宏昌和金毳的《Oracle数据库管理员教程》等书籍,这些资料将帮助初学者深入理解Oracle数据库的体系结构和管理技巧。...

    oracle数据库操作手册

    本操作手册将深入探讨Oracle数据库的核心概念、安装配置、管理维护以及SQL查询等多个方面,帮助用户全面理解和掌握Oracle数据库的操作。 1. **Oracle数据库核心概念** - **数据库实例与数据库**:Oracle数据库实例...

    Oracle 数据库经典练习

    ### Oracle数据库经典练习知识点解析 #### 一、员工信息综合查询与SQL技巧 在Oracle数据库中,通过一系列经典练习,可以深入理解SQL语言的应用及Oracle数据库的管理。以下是对几个关键练习的详细解析: 1. **...

    Oracle数据库应用与开发

    Oracle数据库架构主要分为以下几个部分: 1. 数据文件:存储数据库的实际数据。 2. 控制文件:记录数据库的状态信息,用于数据库的启动和恢复。 3. 日志文件:记录对数据库的所有更改,用于故障恢复。 4. 参数文件:...

    张立国oracle数据库教程

    这个教程共分为六个章节,旨在帮助初学者和有经验的IT专业人士深入理解Oracle数据库的核心概念和技术。 第一章“数据库基础”是学习的起点,涵盖了数据库的基本概念,如数据管理的重要性、关系型数据库模型、数据...

    Oracle数据库学习指南

    Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 ...52. 自动备份Oracle数据库

    oracle 资源整合大全,oracle对照,oracle数据库,oracle 讲解

    本文将深入探讨Oracle数据库系统的关键知识点,包括其功能、对照表以及常用的查询函数。 首先,Oracle数据库系统提供了强大的数据管理能力,支持事务处理、数据仓库、网格计算等多种应用场景。它采用了SQL(结构化...

    浅谈Oracle数据库表的设计技巧.pdf

    总的来说,Oracle数据库表的设计涉及多个方面,包括但不限于列的规划、注释的编写、数据类型的选取以及索引和分区的策略。掌握这些技巧,能帮助数据库开发者创建出高效、稳定且易于维护的数据库系统。

    oracle数据库实例视频教程01

    总的来说,"Oracle数据库实例视频教程01"将带你走进Oracle的世界,通过实际操作让你掌握Oracle数据库的基础知识和操作技巧。随着教程的深入,你将能够逐步建立起对Oracle数据库的全面认识,并具备处理日常数据库任务...

    Oracle数据库详细讲解

    标题与描述均指向了“Oracle数据库详细讲解”,这意味着文章将深度探讨Oracle数据库的相关知识,包括其功能、操作、管理及应用技巧。Oracle数据库是全球领先的数据库管理系统之一,由Oracle公司开发,广泛应用于企业...

    Delphi免客户端直连Oracle数据库

    综合以上信息,这个项目示例很可能会教导我们如何在Delphi 10.01中编写代码,直接调用Oracle数据库的动态库进行数据库操作,如查询、插入、更新和删除数据,而无需安装Oracle客户端。通过阅读和理解源代码,我们可以...

    Oracle数据库设计文档——帮助数据库初学者了解数据库设计

    本文档将深入探讨Oracle数据库的设计原理和实践技巧,帮助新手逐步掌握数据库设计的基本概念和方法。 首先,我们需要理解数据库设计的四个主要阶段:需求分析、概念设计、逻辑设计和物理设计。在需求分析阶段,我们...

Global site tag (gtag.js) - Google Analytics