Oracle-day02 上
一、单表查询
(一)简单条件查询 1.精确查询 需求:查询水表编号为 30408 的业主记录 查询语句:
2.模糊查询 需求:查询业主名称包含“刘”的业主记录 查询语句:
select * from t_owners where name like ‘%刘%‘ and housenumber like ‘%5%‘ 查询结果:
select * from t_owners where name like ‘%刘%‘ or housenumber like ‘%5%‘ 查询结果:
select * from t_owners where (name like ‘%刘%‘ or housenumber 因为 and 的优先级比 or 大,所以我们需要用 ( ) 来改变优先级。
select * from T_ACCOUNT where usenum>=10000 and usenum<=20000 我们也可以用 between select * from T_ACCOUNT where usenum between 10000 and 20000
select * from T_PRICETABLE t where maxnum is null 需求:查询 T_PRICETABLE 表中 MAXNUM 不为空的记录 语句:
(二)去掉重复记录 需求:查询业主表中的地址 ID,不重复显示 语句: select distinct addressid from T_OWNERS [img=381,124] (三)排序查询 select * from T_ACCOUNT order by usenum 2.降序排序 需求:对 T_ACCOUNT 表按使用量进行降序排序 语句: select * from T_ACCOUNT order by usenum desc (四)基于伪列的查询 在 Oracle 的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就 像表中的列一样,但是在表中并不存储。伪列只能查询,不能进行增删改操作。 接下来学习两个伪列:ROWID 和 ROWNUM。 1ROWID 表中的每一行在数据文件中都有一个物理地址,ROWID 伪列返回的就是该行的 物理地址。使用 ROWID 可以快速的定位表中的某一行。ROWID 值可以唯一的 标识表中的一行。由于 ROWID 返回的是该行的物理地址,因此使用 ROWID 可 以显示行是如何存储的。 查询语句:
我们可以通过指定 ROWID 来查询记录 select rowID,t.* from T_AREA t where ROWID=‘AAAM1uAAGAAAAD8AAC‘; 查询结果如下: 2ROWNUM 在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回 1,第二行返回 2,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行数。[img=295,37] 查询语句:
我们的分页查询需要用到此伪列,在本章第四小节详细讲解。 (五)聚合统计 ORACLE 的聚合统计是通过分组函数来实现的,与 MYSQL 一致。
select sum(usenum) from t_account where year=‘2012‘ 查询结果如下:  (2)求平均 avg 需求:统计 2012 年所有用水量(字数)的平均值 select avg(usenum) from T_ACCOUNT where year=‘2012‘ 查询结果如下:  (3)求最大值 max 需求:统计 2012 年最高用水量(字数)[img=168,44] `select max(usenum) from T_ACCOUNT where year=‘2012‘` 查询结果如下:  (4)求最小值 min 需求:统计 2012 年最低用水量(字数) `select min(usenum) from T_ACCOUNT where year=‘2012‘` 查询结果如下:  (5)统计记录个数 count 需求:统计业主类型 ID 为 1 的业主数量 select count(*) from T_OWNERS t where ownertypeid=1 查询结果如下:  2. 分组聚合 Group by 需求:按区域分组统计水费合计数 语句: `select areaid,sum(money) from t_account group by areaid` 查询结果:  3. 分组后条件查询 having 需求:查询水费合计大于 16900 的区域及水费合计 语句: select areaid,sum(money) from t_account group by areaid 查询结果:  (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |