`

Oracle复杂数据的处理。

 
阅读更多

对于number和Date的处理只是针对于单一数据。

Student表:

聚合函数:

一列数据中的最大值——max(字段):

select max(age) from STUDENTS;//此处返回的结果就是14,max函数可应用的类型包括数值型和字符型。假若有多个最大值,则只显示一个。
select  max(name) from students;//此处返回的是张四,由此可知当应用于字符型的时候,oralce会按照字母表的顺序进行排序。如果有英文名,英文名永远排在中文之前。
//应用到日期上时也是获得最晚日期。

一列数据中的最小值——min(字段):

于max函数刚好相反,但需要注意的是,如果含英文和中文,英文也总在中文前。

平均值——avg(字段):

select avg(age) from students;//返回13.25

求和——sum(字段):

select sum(age) from students;//返回106

统计记录数——count(字段):

select count(age) from students;//返回8
//若当age中有一个数据为null时,count将不会统计这一行。
//当关键字为count(*)时,即使所有字段都为null,也会统计进去。
//count(*)等同于count(1)。

 

常用技巧:

多值判断——decode()函数:

decode(表达式,比较值1,结果值1,比较值2,结果值2,,....,默认值)

 

select name,decode(sign(instr(position,'学生')),1,'屌丝','班干部') department from students;
//sign是number型的处理函数,判断正负性。 instr是检索字符串的函数。
//判断字段中是否含有'学生',如果有,就是屌丝,否则就是班干部。如下图。

 

空值处理——nvl()函数:

nvl(表达式,新值/表达式)

 

select  name,nvl(age,0) from students;//若有学生的age字段为空的时候,就会显示0;

 

结果集行号——rownum()函数:

rownum可以返回结果集的行号,select每捕捉一条记录,rownum便增加1。否则rownum保持不变。

 

select id,name,rownum from student;//显示结果如下图:

 

强制数据类型转换——cast()函数:

cast(原数据 as 新数据);

 

create table student1 as 
  select cast(s.ADDRESS as varchar2 (20)) address,
          cast(s.AGE as varchar2 (20)) age,
          cast(s.NAME as varchar2 (20)) name,
          cast(s.POSITION as varchar2(20)) position
  from STUDENT s;
//创建了新表student1,内容于student表一样,更改了字段类型。

 

Oracle中的运算:

oracle中的运算包括数学运算、逻辑运算、比较运算和按位运算。

数学运算:加(+) 减(-) 乘(*) 除(/)

 

select 3*4 from dual;//此处不管是哪种运算符号,或者3改成'3',number改成字符串型。结果都是于正常的运算相同。
//当其中一个操作数为null时,结果也为null。当有数据为null是,需要用nvl()函数。

逻辑运算符:

大于:>    大等于:>=   小于:<   小等于:<=   等于:=   不等于:<>或者!=   这些可以用于数值,日期和字符串的比较。
取反:NOT  布尔值的与操作:AND  布尔值的或操作:OR
需要注意的是:无论哪种逻辑运算,只要有一个操作数据为null,运算结果一定是假。包括where null=null,null<>null也为假。

特殊判式:

between——范围测试;

 

select * from student where age between 12 and 16;
//查询年龄在12到16岁的人的信息(包含)。

 

in——集合成员测试;

 

select * from student where age in (12,14,16);
//查询年龄为12,14和16岁的人的信息。

 

lie——模糊匹配;

select name from student where name like '张%%';//搜索出来两个:张千利,张四。
select name from student where name like '张_';//只搜索出来一个:张四。
//可见,_是单个字符的通配符,可使用多个。
select 1 result from dual where '10%' like '%\%'escape '\';//结果为1
select 1 result from dual where '10' like '%\%'escape '\';//结果为null。
//可见,escape是转义字符,将后面的%由通配符专成了百分号。

is null——空值判断;

select * from student where age is null;//当age为null时才会有结果。
select * from student where age is not null;//当age为不为null时才会有结果。

exits——是否存在判断;

 

select * from student where exists(select name from student where id=1 );//先判断student表里面有没有id=1的记录,如果返回1查询所有student的记录。返回0则不进行前面的查询。

 

all、some、any——数量判断;

查找表中所有比所有学生年龄大的所有人,就是用一部分数据(大于一个)与一部分(大于一个)作比较。

select * from student where age > all(select age from student where position = '学生' );
//等同于:就是说要查询出的人每个人都得大于比较条件中任何一个人。
select * from student where age >(select max(age) from student where position='学生');
//用any和some,则代表只要每个人大于比较条件中的随便一个人都成立。



 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle 数据仓库技术白皮书

    Oracle提供了一整套完整、集成的技术平台方案来为客户降低建设企业数据仓库和商业智能系统的成本和复杂性。 Oracle数据库产品是第一个也是唯一一个把嵌入式抽取、转换和加载引擎(ETL)、在线分析处理引擎(OLAP)和...

    CA数据仓库完整的数据仓库解决方案.rar_CA数据仓库完整的数据仓库解决方案_oracle_数据仓库建模

    Oracle数据库产品是第一个也是唯一一个把嵌入式抽取、转换和加载引擎(ETL)、 在线分析处理引擎(OLAP)和数据挖掘引擎集成在一起的数据分析平台。主打集成的技术平台方案 来为客户降低建设企业数据仓库和商业智能...

    oracle 入门很简单.zip

    第9章Oracle中的复杂数据处理ppt 第10章Oracle中的控制语句.ppt 第11章视图ppt 第12章约速ppt 第13章游标pp 第14章触发器ppt 第15章序列.ppt 第16章用户、角色与权限控制。ppt 第17章函数与存储过程ppt 第18章数据车...

    ORACLE数据库复制

    采用复制技术后,将这些大型数据复制到另外一个数据库中,对这些大数据的查询统计操作放在另外的一台数据库服务器上进行,即使受影响,也只是影响局部的查询统计功能,其他正常的业务处理不受影响。 但是,使用复制...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    对于并发处理服务器,我们可以认为它是一个助手的角色,在EBS用户请求和数据处理过程中协调作业和过程;另外,如现代的Application Server,上面列举的服务并不是每个都必须在相同的服务器上。 我们可以类似的认为...

    Oracle入门很简单[张朝明].part1

    第2篇介绍了oracle pl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限...

    Oracle数据库备份与恢复.pdf

    其次,Oracle数据库的性能表现出色,采用先进的查询优化技术和数据存储机制,能够高效地处理大规模数据和复杂查询。再者,Oracle数据库可以轻松扩展以适应不断增长的数据和用户需求,支持集群和分布式数据库架构,...

    Oracle入门很简单[张朝明].part2

    第2篇介绍了oracle pl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限...

    Oracle常见基本概念和术语

    ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。 ORACLE 块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE创建数据库实例时指定。其最小为2K,最大可达为64K...

    oracle database 10g 完整参考手册part1

    第42章 Oracle数据字典指南 第43章 调整应用程序和SQL旅行者指南 第44章 调整中的案例分析 第45章 Oracle Application Server 10g的旅行者指南 第46章 数据库管理旅行者指南 第47章 XML旅行者指南

    大数据实践之数据建模.pdf

    ⽽OLAP系统 ⾯向的主要数据操作是批量读写,事务处理中的⼀致性不是OLAP所关注的,其主要关注数据的整合,以及在⼀次性的复杂⼤数据查询和处理中的性能,因此它 需要采⽤⼀些不同的数据建模⽅法。 典型的数据仓库...

    Oracle11g从入门到精通2

    7.1.2 隐藏数据的复杂性 7.1.3 实现命名简洁性和易读性 7.1.4 实现更改灵活性 7.2 实现记录的唯一性 7.2.1 用键实现 7.2.2 创建唯一索引 7.2.3 使用序列实现 7.3 实现数据的完整性 7.3.1 域完整性 ...

    Oracle 融合中间件中文产品技术白皮书(非常有价值)

    开发人员和身份服务 — 通过身份中心处理身份数据 (PDF) Oracle 身份管理 11g (PDF) Oracle 身份管理 11gR1 (PDF) 面向服务的安全性从应用程序的角度看身份管理 (PDF) Oracle 融合中间件 (PDF) Oracle Coherence ...

    数据处理OLTP与OLAP的概念.pdf

    在系统软件出现的初期,数据通常被保存在单个文件中进行管理,但随着业务的不断发展与 系统数据处理逻辑的不断复杂,关系型数据库成为了主流的数据管理系统,例如 Oracle、 Mysql 等,随后又出现了各式各样数据管理...

    ORACLE数据库智能化管理系统2012

    批量数据比较功能,增加了数字型字段4种(左右两边数据加减乘除)处理方式和4种行数据处理(左右两边互移或互复制行),可从数据源复合查询结果数据与目标数据进行运算,达到想要的结果等。 数据窗口右键菜单功能整合多种...

    Oracle 10g应用指导

    同其他数据库管理系统相比,Oracle产品较为庞大而复杂,因此,令许多数据库管理系统的学习者在Oracle面前止步不前,究其原因,主要是无法掌握Oracle技术的脉络。本书正是根据作者在高校和各种数据库培训班执教多年的...

    基于Oracle数据库的分页显示中SQL复杂查询结果集总行与数据正确性控制.pdf

    基于Oracle数据库的分页显示中SQL复杂查询结果集总行与数据正确性控制.pdf

    oracle入门很简单09.zip

    oracle中复杂数据处理。 内容包括:利用聚合函数来统计数据; 常用技巧 oracle中的基本运算 oracle中的特殊判断 oracle中的分析与窗口函数。

    大数据处理的三大流程以及大数据的价值.doc

    大数据处理的三大流程以及大数据的价值 大数据处理的三大流程流程数据采集 定义:利用多种轻型数据库来接收发自客户端的数据,并且用户可以通过这些数据库来 进行简单的查询和处理工作。 特点和挑战:并发系数高。 ...

Global site tag (gtag.js) - Google Analytics