ORACLE查询(单表查询,连接查询)

一、单表查询

(一)简单条件查询

1. 查询水表编号为 30408 的业主记录 ( 精确查询 )
select * from t_owners where watermeter= 30408;

结果:

2. 查询业主名称包含“刘”的业主记录 (模糊查询)
select *  from t_owners where name like  '%刘%';

结果:

3. 查询业主名称包含“刘”的并且门牌号包含5 的业主记录(and 运算符 )
select * from t_owners where name like '%刘%' and housenumber like '%5%';

结果:

4. 查询业主名称包含“刘”的或者门牌号包含5 的业主记录(or 运算符)
select * from t_owners where name like '%刘%' or housenumber like '%5%' ;

结果:

5. 查询业主名称包含“刘”的或者门牌号包含5的业主记录,并且地址编号为 3 的记录(and 和 or 运算符混合使用)
select * from t_owners where (name like '%刘%' or housenumber like '%5%') and addressid like '%3%';

结果:

6. 查询台账记录中用水字数大于等于10000 ,并且小于等于20000 的记录( 范围查询 )
--方式一
select * from t_account where usenum between 10000 and 20000;
--方式二
select * from t_account where usenum >= 10000 and usenum <= 20000;

结果:

7. 查询T_PRICETABLE 表中 MAXNUM为空的记录(空值查询 )
select * from t_pricetable where maxnum is null;

结果:

8. 查询T_PRICETABLE 表中 MAXNUM不为空的记录(非空查询 )
select * from t_pricetable where maxnum is not null;

结果:

(二)去掉重复记录

需求:查询业主表中的地址ID,不重复显示
--方式一
select distinct addressid from t_owners;
--方式二
select distinct(addressid) from t_owners;

结果:

(三)排序查询

1.升序排序
需求:对 T_ACCOUNT 表按使用量进行升序排序
select * from t_account order by usenum asc;

结果:

2.降序排序
需求:对 T_ACCOUNT 表按使用量进行降序排序
select * from t_account order by usenum desc;

结果:

(四)伪列只能用来查,不能做增删改操作

1 .ROWID :物理文件上唯一区别这条记录的唯一标识
查询 T_AREA 表的 ROWID 值和 T_AREA的值
select rowid , t.* from t_area t;

结果:

用 ROWID 作为查询条件
select rowid ,t.* from t_area t where rowid = 'AAADW+AAFAAAADcAAA';

结果:

2.ROWNUM 为结果集中每一行标识一个行号
查询 T_AREA 表的 ROWNUM 值和 T_AREA的值
select rownum ,t.* from t_area t ;

结果:

(五)聚合统计

1 . 聚合函数
1 统计2012 年所有用户的用水量总和
select sum(usenum) from t_account where year = '2012';

结果:

2 统计2012 年所有用水量(字数)的平均值
select avg(usenum) from t_account where year = '2012';

结果:

3 统计2012 年最高用水量(字数)
select max(usenum) from t_account where year = '2012';

结果:

4 统计2012 年最低用水量(字数)
select min(usenum) from t_account where year = '2012';

结果:

5 统计业主类型ID 为 1 的业主数量
select count(month) from t_account where ownertype = 1;

结果:

2.分组聚合 Group by
按区域分组统计2012 年水费合计数
select areaid , sum(areaid) from t_account where year = '2012' group by areaid;

结果:

3 .分组后条件查询 having
查询 2012 年水费合计大于 169000 的区域及水费合计
select areaid , sum(money)  from t_account where year = '2012' group by areaid having sum(money) > 169000;

结果:

二、连接查询

(一)多表内连接查询
1. 查询显示业主编号,业主名称,业主类型名称
select os.id , os.name , oe.name from t_ownertype oe , t_owners os where os.ownertypeid = oe.id;

结果:

2 .查询显示业主编号,业主名称、地址和业主类型
select os.id , os.name  , ad.name, oe.name from t_ownertype oe , t_owners os , t_address ad where os.ownertypeid = oe.id and  os.addressid = ad.id;

结果:

3. 查询显示业主编号、业主名称、地址、所属区域、业主类型
select os.id , os.name , ad.name , ar.name , oe.name from t_ownertype oe , t_owners os , t_area ar , t_address adwhere os.ownertypeid = oe.id and os.addressid = ad.id and  ad.areaid = ar.id;

结果:

4. 查询显示业主编号、业主名称、地址、所属区域、收费员、业主类型
select os.id , os.name , ad.name ,ar.name , op.name ,oe.name from t_ownertype oe , t_owners os , t_area ar , t_address ad ,t_operator op where os.ownertypeid = oe.id and os.addressid = ad.id and ad.areaid = ar.id and ad.operatorid = op.id;

结果:

(二)左外连接查询
1 .查询业主的账务记录,显示业主编号、名称、年、月、金额。如果此业主没有账务记录也要列出姓名
--   MySQL
select os.id , os.name , ac.year , ac.month,ac.money from t_owners os left join t_account ac on os.id = ac.owneruuid;
--   Oracle
select os.id ,os.name , ac.year , ac.month , ac.money from t_owners os , t_account ac where os.id = ac.owneruuid(+);

结果:

(三)右外连接查询
1 . 查询业主的账务记录,显示业主编号、名称、年、月、金额。如果账务记录没有对应的业主信息,也要列出记录
 -- MySQL
select os.id , os.name ,ac.year , ac.month , ac.moneyfrom t_owners os right join t_account ac on os.id = ac.owneruuid;-- Oracle
select os.id ,os.name , ac.year , ac.month , ac.moneyfrom t_owners os, t_account ac where os.id(+) = ac.owneruuid;

结果:

以下推荐个人文章
[亲测]Oracle数据库安装与配置

[亲测]Oracle数据库操作

[亲测]Oracle表的创建、修改与删除

[亲测]Oracle数据库约束

[亲测]Oracle数据增删改

[亲测]Oracle查询–单表查询,连接查询(一)

[亲测]Oracle查询–子查询,分页查询(二)

[亲测]Oracle查询–单行函数–PL/SQL,分析函数,集合运算(三)

Oracle执行计划Explain Plan 如何使用

[亲测]数据库优化

[亲测]Oracle查询--单表查询,连接查询(一)相关推荐

  1. Oracle单表内连接查询

    源数据如下: 根据Col3值,把Co1和Co2映射并去空查询,预期结果如下: 思路分析: 使用单表内连接+where条件判断非空即可 查询SQL: SELECT t1.col1,t2.col2 FRO ...

  2. Mysql中父子查询 单表根据id查询parentId

    字段不做特殊声明,下面上方法 //创建一个方法 名字为 getParentIdListCREATE FUNCTION `getParentIdList`(roleId BIGINT) // 参数可以根 ...

  3. SQL查询单表数据(一)

    [SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...

  4. SQL查询单表数据之组合(三)

    [SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...

  5. mysql查询单表的销售额_MYsql数据库单表百万数据量查询

    最近总在意自己的网页刷新数据的速度,mysql5.7和mysql8.0单表数据库导入百万甚至千万数据的时候,会不会卡死,会不会慢? 因此编写测试用例,通过Navicat Premium来查询单表的时间 ...

  6. MYSQL 单表一对多查询,将多条记录合并成一条记录

    MYSQL 单表一对多查询,将多条记录合并成一条记录 一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实 ...

  7. SQL数据查询——单表查询(二)

    集合查询+单表查询相关实例 集合查询 1.UNION 2.INTERSECT 3.EXCEPT 相关实例 实例1 实例2 集合查询 SQL SERVER集合操作主要包括 并操作 UNION 交操作 I ...

  8. mysql 一对多 右表多条记录合并_MYSQL 单表一对多查询,将多条记录合并成一条记录...

    一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...

  9. 怎么提高大表和小表的连接查询效率?

    怎么提高大表和小表的连接查询效率? 我想到会不会和大表和小表的前后顺序有关系. 小表优先能极大减少比对次数 效率更好 例子: a表10条记录 b表10000条记录 连接条件是a.id = b.id 假 ...

最新文章

  1. 人脸识别技术及其应用领域
  2. h5 iframe显示不全_H5 唤醒APP小记
  3. VS2010 error C299: “Font”:“struct”类型重定义
  4. linux中如何统计目录中的文件,[Linux目录文件]在Linux中统计目录内文件
  5. OpenHarmony3.0 编译烧录
  6. 在频域上,随机接入前导占用()个资源块对应的带宽
  7. Android AIDL实例解析
  8. Go语言编程快速入门
  9. transformer 翻译模型
  10. cadence从原理图导出器件库_一种cadence中原理图替换元器件库的方法与流程
  11. Unity-ShaderLab 逆向还原《原神》角色卡通渲染思路与实现(保姆级教学)-1
  12. 华为服务器清除系统密码,华为服务器重置密码
  13. no identity-based policy allows the cloudformation:CreateStack action
  14. 360浏览器插件管理
  15. java学习总结(16.05.25)eclipse的查找和替换功能 Ctrl+F
  16. 玩转iOS开发:iOS 10 新特性《Siri Kit》
  17. 数据科学太难?这些陷阱请避开,正能量很重要!
  18. 【分享】参加一个0元小白理财训练营开营第1天的学习笔记
  19. 数据结构——二叉树的实现
  20. 如何修复Microsoft Excel不响应错误

热门文章

  1. 图的割点、桥和双连通分支的基本概念
  2. 怎样才算熟练使用Oracle,熟练Oracle的Sql语句必做18道
  3. 2020-09-14
  4. iphone开发之音频播放类AVAudioPlayer的使用——加纯代码案例
  5. 【庖丁解牛】成功解决yum安装mysql时报错libmysqlclient.so.18
  6. 打开Android 系统计算器,便签
  7. keil5软件添加芯片
  8. SPAD SiPM 激光雷达sensor 简介
  9. propertyeditor java_Spring Boot – 自定义PropertyEditor
  10. 惠普中国CEO孙振耀退休感言