`
zhaoxu841020
  • 浏览: 58309 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论
  • chhbwf: 请问做过gwt的导出功能没?就是利用gwt显示在页面的html ...
    GWT
  • yangwn: 不感恭维GWT-EXT,只是觉得它是UI的支持还算可以,但是伟 ...
    GWT
  • lucky16: 这东西是得学习!
    数据库设计

oracle学习

阅读更多
多表查询时不加where子句,过滤条件是无效的条件,会产生两表之间记录的相互逐条匹配(组合),产生无效的结果(笛卡尔积)。

注意:表连接时,要注意查询的表之间的字段关系,表之间的字段所表示的信息的关系

等值连接
  select [表别名1.字段名1],[表别名2.字段名2],...

  from 表1 表别名1 ,表2 表别名2

  where 表别名1.字段名3=表别名2.字段名4;

  表连接时,表与表之间有同名字段,可以加上表的别名,加以区分,用表名.字段名或表别名.字段名(列名)。表的字段名是唯一,不用加表名.或表的别名。

注意:为表起了别名,就不能再使用表名.字段名。

例:select a.first_name,a.last_name,b.name

from s_emp a,s_dept b

where a.dept_id=b.id;

非等值连接

  select [表别名1.字段名1],[表别名2.字段名2],...

  from 表1 表别名1 ,表2 表别名2

  where 表别名1.字段名3 ..... 表别名2.字段名4

  ....可以使比较运算符,也可以使其他的除了'='的运算符


例:select e.ename, d.grade,e.sal

from emp e,salgrade d

where e.sal between d.losal and d.hisal;

自连接
用两个别名把一张表中的数据分成两部分,然后在使用条件过滤。

select [表别名1.字段名1],[表别名2.字段名2],...

  from 表1 表别名1 ,表1 表别名2

  where 表别名1.字段名3=表别名2.字段名4;

例:select a.first_name ename,b.first_name cname from s_emp a,s_emp b where a.manager_id=b.id;
以上所提到的表连接,都叫做内连接,严格匹配两表的记录。

外连接
外连接会使用一方表中的所有记录去和另一格表中的记录按条件匹配,空值也会匹配,这个表中的所有记录都会显示,数据库会模拟出记录去和那些不匹配的记录匹配。

例:select a.first_name enamei,a.id,b.first_name cname,b.id from s_emp a,s_emp b where a.manager_id=b.id(+);

注意:要把那一方的记录全部都显示出来,还有注意条件(+)跟在要全部显示的那个表的字段后。

组函数
group 组

group by 分组子句,按指定的分组规则分组 ,这个group by 子句可以跟在 select 语句后或是 having后面。group by子句也会出发排序操作,会按分组字段排序。

select [组函数或分组的字段名] ,... from 表名 group by [字段名1],[字段名2],.....;

例:select avg(salary) from s_emp group by dept_id;

注意:组函数可以处理一组数据,返回一个值。组函数会忽略空值。count()除外,他会把空记录也记录在内。

avg(..),求平均值,sum(..),求和 这两个函数的参数只能是number型的。

以下所提到的函数可以使用任意类型做参数。

count(..),用来统计记录数,可以使用排重命令。count(...)默认使用的是all。

max(..),min(..)求最大值和最小值,

count(*),统计表中记录数。

例:select max(b.name),avg(a.salary), max(c.name) from s_emp a,s_dept b,s_region c where a.dept_id=b.id and b.region_id=c.id group by b.id;

注意:只要写了group by子句,select后就只能用group by后的字段或者是组函数。

      where子句只能够过滤记录。

having子句可以过滤组函数结果或是分组后的记录,且写在group by子句后。

例:
select max(b.name),avg(a.salary), max(c.name)

from s_emp a,s_dept b,s_region c

where a.dept_id=b.id and b.region_id=c.id

group by b.id having sum(a.salary)>4000;


column 也可以定义有别名的列的格式。
column "别名" 格式定义
注意:要先过滤掉不需要的记录,然后再进行分组操作,提高效率。
子查询
子查询,就是可以嵌在任何的sql语句中的select语句。
在select语句中嵌套子查询时,会先执行子查询。一般的会将子查询放在运算符的右边。
注意:在使用子查询时,要注意这个运算符是单行的(也就是只能是单值),还是多行运算符(范围,多值)。配合使用子查询返回的结果必须符合运算符的用法。

例:

select first_name,title from s_emp where title=any(select title from s_emp where last_name='Smith') and upper(last_name)!='SMITH';

select first_name,title from s_emp where title in (select title from s_emp where last_name='Smith') and upper(last_name)!='SMITH';
分享到:
评论

相关推荐

    Tianlesoftware Oracle 学习手册(v1.0)高清完整PDF版

    ### Tianlesoftware Oracle 学习手册(v1.0)中的关键知识点 #### 1. ORACLE基础知识 ##### 1.1 OLAP与OLTP介绍 **1.1.1 什么是OLTP** OLTP(Online Transaction Processing,在线事务处理)是一种主要针对企业...

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    oracle学习资料,我搜集和总结的大量oracle学习资源

    本压缩包中包含的“Oracle学习资料”是一份综合性的资源集合,旨在为系统管理员和初学者提供深入理解Oracle数据库的路径。 首先,Oracle数据库的基础知识是学习的起点。这包括了解SQL(结构化查询语言),它是与...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    oracle学习有用网址

    以下是基于“oracle学习有用网址”标题与描述所提炼的关键知识点,这些网站资源将为你的Oracle技能提升提供宝贵的帮助: ### 1. ASK TOM(http://asktom.oracle.com) ASK TOM是Oracle官方维护的一个技术问答平台,...

    Oracle学习资料(很全面)

    这份"Oracle学习资料(很全面)"的压缩包显然包含了丰富的资源,帮助初学者和有经验的DBA深入理解Oracle的各种特性和功能。 首先,让我们来探讨Oracle的基础知识。Oracle数据库是一个关系型数据库管理系统(RDBMS),...

    Oracle学习资料.zip

    本压缩包"Oracle学习资料.zip"显然是针对Oracle数据库的学习资源,旨在帮助初学者和进阶者深入理解和掌握Oracle的相关知识。 首先,Oracle数据库的基础概念是学习的起点。这包括理解数据库是什么,以及Oracle数据库...

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

    Oracle学习资源与使用

    Oracle学习资源与使用 Oracle是一种关系数据库管理系统(RDBMS),由Oracle Corporation开发。它是最流行的数据库管理系统之一,广泛应用于企业级应用中。下面是Oracle学习资源与使用的知识点总结: 概述 Oracle...

    Oracle学习资料大全

    Oracle学习资料大全是一份集合了Oracle数据库学习资源的压缩包,包含了从基础到高级的各种知识点。这份资料包特别强调了"Oracle PL/SQL"的学习,这意味着它将涵盖Oracle数据库管理和编程的重要方面。 PL/SQL...

    oracle学习资料6本合集

    这份"oracle学习资料6本合集"提供了一套全面的学习资源,涵盖了Oracle的基础、进阶以及性能优化等多个方面,对于想要深入理解Oracle数据库的人来说是一份宝贵的资料。 首先,"Oracle8i_9i数据库基础.pdf"是针对...

    oracle学习资料大全PDF

    本"Oracle学习资料大全PDF"集合了多种资源,旨在帮助初学者和经验丰富的DBA(数据库管理员)深入理解Oracle的核心概念和技术。 首先,"Oracle10gR1.Step.By.Step.by.Kamus.pdf"是一本逐步指南,详细介绍了Oracle 10...

    Oracle学习资料doc

    本"Oracle学习资料doc"压缩包包含了丰富的Oracle学习文档,旨在帮助初学者和经验丰富的DBA深入理解Oracle数据库的各个方面。以下将对这个压缩包中的知识点进行详细解析。 1. **Oracle基础概念**: - 数据库系统:...

    oracle学习资料 .zip

    这篇“Oracle学习资料”包含了丰富的资源,帮助初学者和DBA(数据库管理员)深入理解Oracle的基础知识和管理技巧。 首先,Oracle基础部分涵盖了数据库的基本概念,如表、视图、索引、存储过程、触发器等。理解这些...

    Oracle技术大牛整理文档《Oracle 学习手册》

    在 Oracle 几年的学习中,, 做了很多的实验, 也遇到了很多的问题,在这个过程中,积累了一些学习文档。 也更新到了 blog 上。 因为太多,不便于查阅。 根据自己对 Oracle 的理解,把这些 blog 进行了分类, 并...

    很全的oracle学习资料

    本套“很全的Oracle学习资料”包含了一系列深入学习Oracle技术的知识点,适合数据库管理员(DBA)、开发人员以及对Oracle感兴趣的学习者。下面,我们将详细探讨这些资料可能涵盖的内容。 一、Oracle基础 Oracle...

    oracle学习视屏

    "Oracle学习视屏"是一系列针对Oracle数据库的学习资源,涵盖了从基础到进阶的全面教程,适合对数据库技术感兴趣或者需要提升Oracle技能的学习者。 首先,Oracle数据库的基础部分通常包括以下内容: 1. 数据库概念...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    oracle学习推荐书籍

    oracle学习推荐书籍

Global site tag (gtag.js) - Google Analytics