文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle查询_ 单表查询

2019-07-22 21:28

关注

Oracle查询_ 单表查询

前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧,

Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~

 

在此前,先讲解一个小知识点 Oracle注释,这对我们开发也是挺有帮助的噢!!!

--表注释
comment on table 表名 is "注释";
--列注释
comment on column 列名 is "注释";

实用:

comment  on table test1.ID  is ""主键";

 

接着,让我们进入查询吧!

一.标准SQL和方言

 

二. 标准DQL语法

select distinct * | 列名 as 别名, 列表2 as 别名2... | 聚合函数
from 表名 as 别名, 表名2 as 别名2 ,....
where 查询条件
group by 分组字段 having 分组条件
order by 排序字段 asc | desc,....

 

 

三.简单查询

--精确查询  
--1 查询水表编号为30408的业主记录
select * from t_owners where WATERMETER="30408" ;

--使用表的别名
select * from t_owners ow as where ow.WATERMETER="30408" ;



--模糊查询
--2查询业主名称包含“刘”的业主记录
--like 语句  %匹配多个字符  _匹配1个字段

select * from t_owners ow where ow.NAME like "%刘%";


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


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


--and 与or运算符混合使用
--5查询业主名称包含“刘”的或者门牌号包含5的业主记录,并且地址编号为3的记录。
--and 优先级 高与or, 如果先执行or, 需要使用小括号
--1.不加括号,先执行and
select * from t_owners ow where ow.name like "%刘%" or ow.HOUSENUMBER like "%5%" and ow.ADDRESSID=3;

--2.加括号,先执行or
select * from t_owners ow where (ow.name like "%刘%" or ow.HOUSENUMBER like "%5%") and ow.ADDRESSID=3;


-- 范围查询
--6查询台账记录中用水字数大于等于10000,并且小于等于20000的记录
--1. > <
select * from t_account a where a.USENUM >=10000 and a.USENUM<=20000;

--2. between ..to..
select * from t_account a where a.usenum between 10000 and 20000;


-- 空值查询
--7 查询T_PRICETABLE表中MAXNUM为空的记录

select * from T_PRICETABLE p where p.maxnum is null; 

--8 查询T_PRICETABLE表中MAXNUM不为空的记录

select * from T_PRICETABLE p where p.maxnum is not  null; 

 

 

四.去重复和排序

--1.升序排序
--需求:对T_ACCOUNT表按使用量进行升序排序

select * from T_ACCOUNT t order by t.USENUM asc;


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



--需求:对T_ACCOUNT表按month进行降序,如果相同按照usenum进行升序
select * from T_ACCOUNT t order by t.month desc ,t.usenum asc ;

 

 

五.伪列

伪列是oracle中独有的,伪列也是真实存在的列,用于查询操作,不能增删改操作。

  ROWID物理文件上唯一区别这条记录的唯一标识

表中的每一行在数据文件中都有一个物理地址,ROWID伪列返回的就是该行的物理地址。使用ROWID可以快速的定位表中的某一行。ROWID值可以唯一的标识表中的一行。由于ROWID返回的是该行的物理地址,因此使用ROWID可以显示行是如何存储的。

 

 

Oracle使用rowid区别每一条数据,不会存在操作一条,影响多条的情况。

查询语句:                  select rowID,t.* from T_AREA t

 

 

  • rownum
  • 在查询的结果集中,ROWNUM为结果集中每一行标识一个行号,第一行返回1,第二行返回2,以此类推。通过ROWNUM伪列可以限制查询结果集中返回的行数。

查询语句: select rownum,t.* from T_OWNERTYPE t

 

 

 

六.聚合函数

实战样例:

--(五)聚合统计 ----不计算null值
--(1)求和  sum
--1 统计2012年所有用户的用水量总和
select sum(a.USENUM) from t_account a where a.YEAR="2012";


--(2)求平均 avg
--2 统计2012年所有用水量(字数)的平均值 

select avg(a.usenum) from t_account a where a.year="2012";


--(3)求最大值 max
--3统计2012年最高用水量(字数)
select max(a.usenum) from t_account a where a.year="2012";


--(4)求最小值min
--4统计2012年最低用水量(字数)
select min(a.usenum) from t_account a where a.year="2012";



--(5)统计记录个数 count
--5统计记录个数 count
--1
select count(a.usenum) from t_account a ;

--2
select count(*) from t_account a ;






--2. 分组聚合Group by --+++++++++++++++++++++++++++++++++++++++++++++++++

--需求:按区域分组统计2012年水费合计数

select a.areaid 区域,sum(a.money) 年水费合计数   from t_account a  where a.year="2012" group by a.areaid;



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

 

今天就到这里结束了噢,下期见,小伙伴们~~~

 

 

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯