`

Oracle_学习使用SQL语句一

阅读更多
一、distinct
  1、只显示一次重复出现的值
 
   select distinct 字段1 [,字段2,字段3,字段3] from 表
  

  如果只有一个字段,则去除字段1的结果集相同的记录,如果有字段1、字段2,则去除字段1和字段2的结果集全部相同的记录。
  2、使用distinct关键字只能过滤查询字段中所有记录相同的数据,而要制定一个字段却没有效果,并且会对查询的结果进行排序,从而影响查询效率。
 
select distinct name from  temp

  能消除name字段重复的记录,现在要取id,name两个字段的值
  
select distinct name,id from temp 

只能消除name,id两个字段相同的记录。
  3、用distinct达不到想要的结果,用group by可以解决这个问题。
  例如要显示A、B、C三个字段的信息,而A字段不能有重复,可以用下面语句:
 
select A as A,max(B) as B,max(C)as C,count(*) as total from temp where [条件1] group by A  having [条件2] order by A desc[asc]

显示出来的字段和排序的字段都要包括在 group by中,但是显示的字段中含有min、max、sum、count、avg等聚合函数时可以不在group by 中。
一般条件写在条件1位置,有聚合函数他条件写在条件2中。
如果在上句中having加 count(*)>1   就可以查出记录A的重复次数大于1的记录
如果在上句中having加 count(*)>2   就可以查出记录A的重复次数大于2的记录
二、处理NULL
    1、在插入数据时,如果字段允许为空,并且没有默认值,插入时没有为本字段赋值,所以该字段的值是null,不是空或0。所以查询内容也是null,在页面或java类中判断该字段的值,应该判断是否为null。而不是“”。
     2、用nvl函数去除NULL,说明如下:
      nvl(exp1,exp2),当exp1为null时,函数返回exp2;当exp1不为null时,函数返回exp1。exp1和exp2可以是任何数据类型,但是二者的数据类型必须要匹配。
      
         select name,pay+nvl(age,0) as pay from cip_tmps;
       

    3、用nvl2函数去除NULL,说明如下:
        nvl2(exp1,exp2,exp3)当exp1为null时,函数返回exp3,当exp1不为null时,函数返回exp2。exp1可以是任何数据类型,但是exp2和exp3必须是除Long之外的任何数据类型,但是三者参数的数据类型必须要匹配。代码如下:
       
         select name,pay+nvl2(age,age,0) as pay from cip_tmps;
       

   三、连接字符串
   连接字符串用"||"操作符来完成,当连接字符串时,如果在字符串中要加入数字值,那么在"||"后可以直接制定数字,如果在字符串中加入字符,则必须用单引号引住,代码如下:
select name || '的年龄为:' || age from cip_tmps;
select '记录时间:'|| createdate from cip_tmps;

  
分享到:
评论

相关推荐

    ORACLE__SQL语句教学

    ORACLE__SQL语句教学 ORACLE__SQL语句教学

    oracle_V$SQLAREA_.rar_oracle_oracle V$sqlarea

    在Oracle数据库系统中,`V$SQLAREA` 是一个非常重要的动态性能视图,它提供了关于解析、编译和执行的SQL语句的详细信息。这个视图是DBA和性能调优专家用来监控和分析SQL性能的关键工具。标题中的"oracle_V$SQLAREA_....

    ORACLE__SQL语句教学(附有sql最常用经典语句)

    本资源"ORACLE__SQL语句教学(附有sql最常用经典语句)"显然是一个针对Oracle SQL的深入学习资料,旨在帮助数据库编程者提升技能,成为真正的高手。 首先,让我们来看看SQL的基本概念。SQL是一种用于管理关系型...

    oracle_commond.rar_odbc api_oracle_oracle 客户端_oracle sql_sql

    在"oracle常用命令集.sql"中,可能包含了如DML(INSERT、UPDATE、DELETE)语句,DDL(CREATE、ALTER、DROP)语句,以及查询优化技巧,例如使用索引、子查询、联接操作等。 4. 数据库操作实例 描述中的"oracle常用...

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    Oracle_PL-SQL.rar_ORACLE PL_oracle_oracle sql_oracle 教程_pl sql

    5. **存储过程和函数**:存储过程是一组预编译的PL/SQL语句,可以在数据库中存储并重复调用,而函数则返回一个值,两者都是数据库模块化设计的基础。 6. **触发器**:触发器是一种特殊的存储过程,会在特定的数据库...

    SQL(oracle).rar_oracle_oracle sql_oracle 总结_pl sql_sql

    总的来说,这个压缩包文件是一个宝贵的学习资源,对于想要深入理解Oracle数据库和提升SQL编程技能的IT从业者来说,无疑是值得参考和学习的。通过细致阅读和实践,可以有效地提升在Oracle环境下的数据管理和编程能力...

    TestOracle_oracle_qtoracle_sql_testoraclelinux_QT_

    通常,我们会创建一个QSqlQuery对象来执行SQL语句,利用QSqlQuery::exec()方法执行查询,然后使用QSqlQuery::next()遍历结果集。此外,QSqlRecord可以用来获取和处理查询结果中的每一行数据。 在测试过程中,可能...

    oracle_dynamic_sql.rar_Dynamic SQL ORAC_oracle_oracle dynam_orac

    在Oracle中,动态SQL是一种重要的编程技术,尤其在处理不确定或在运行时才能确定的SQL语句时,它显得尤为关键。本文将深入探讨动态SQL的使用及其在级联删除中的应用。 首先,让我们理解什么是动态SQL。在静态SQL中...

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    Oracle-SQL.rar_oracle_oracle sql_sql

    10. **数据库连接与管理工具**:如SQL*Plus、SQL Developer等,是与Oracle数据库交互的常用工具,它们能帮助我们执行SQL语句,管理数据库对象,以及监控数据库状态。 通过这份“Oracle SQL.ppt”,初学者可以逐步...

    DatabaseHelper_oracle_c#Oracle_C#_ManagedDataAccess_oracle操作_

    在.NET开发环境中,使用C#语言与Oracle数据库进行交互是一种常见的需求。Oracle.ManagedDataAccess是Oracle公司提供的一个客户端库,专门用于C#等.NET语言的Oracle数据库连接和操作。这个库是完全托管的,无需依赖...

    ORACLE_SQL语句优化资料

    ORACLE_SQL语句优化资料

Global site tag (gtag.js) - Google Analytics