始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle数据库查询的五个小技巧

发布时间:  2012/7/13 15:14:52
数据查询,是Oracle数据库操作中最主要的功能之一;有时候Oracle数据库查询性能的好坏,直接关系到Oracle数据库的运行效率,关系到Oracle数据库的选型。对一些平时大家容易忽略的查询小技巧这里做一些总结,方便大家以后运用,或许大家可能正在为此犯愁呢?

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

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

  如可以这么写查询语句:

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

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

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

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

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

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

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

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

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

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


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线