JavaWeb开发知识总结(二)-(oracle_查询)

JavaWeb开发知识总结(Oracle-查询)

1. Oracle查询

1.1 单表查询

1.1.1 简单条件查询:和mysql数据库的语句相同
--1.精确查询:能够精确的确定到查询的记录
select 字段名  from 表名  where 字段名 = 值;
--2.模糊查询:like查询,规则和mysql相同,%是匹配零个或多个字符,_是匹配一个字符
select 字段名  from 表名  where 字段名  like 条件;
--3.and查询:and关键字查询,用法和mysql相同,是条件的并列
select 字段名  from 表名  where 条件1 and 条件2;
--4.or查询:or查询,和mysql用法相同,是条件的或
select 字段名  from 表名  where 条件1 or 条件2;
--5.范围查询:使用>,>=,<,<=符号或者between ... and 关键字查询,用法和mysql相同
select 字段名  from 表名  where 字段名 > 值;
select 字段名  from 表名  where 字段名 between 值1 and2;
--6.空值查询:is null和is not null关键字查询,用法和mysql相同
select 字段名  from 表名  where 字段名 is null; -- 查询某个字段为null
select 字段名  from 表名  where 字段名 is not null; -- 查询某个字段不为null
1.1.2 去重查询:和mysql用法相同
--语法:使用distinct关键字,规则和mysql相同,当查询的是多个字段时,是针对这多个字段的去重
select distinct 字段名 from 表名 where 条件;
1.1.3 排序查询:用法和mysql相同
--语法:使用order by关键字,默认是asc升序,desc是降序
select 字段名 from 表名 [条件] order by 字段名 [asc]; -- 升序排列
select 字段名 from 表名 [条件] order by 字段名 desc; -- 降序排列
1.1.4 聚合统计:和mysql有区别
--1.基本的统计函数:用法和mysql相同
select sum(字段名) from 表名 [条件]; -- sum求和统计
select avg(字段名) from 表名 [条件]; -- avg求平均值统计
select max(字段名) from 表名 [条件]; -- max求最大值统计
select min(字段名) from 表名 [条件]; -- min求最小值统计
select count(任意类型的值) from 表名 [条件]; -- count的参数可以是任意值,一般使用count(1)进行统计
    -- count(字段名):统计的是表中该字段不为null的个数,当表中无记录时,返回null;
    -- count(*):统计表中所有记录,当该字段为null时,会记录null的个数,当表中无记录时,返回null;
    -- count(1):统计表中的所有记录,当该字段为null时,会记录null的个数,当表中无记录时,返回0.
--2.聚合统计:ORACLE的聚合统计是通过分组函数来实现的,和mysql有区别
Oracle中:select后一定是分组聚合的条件或者是聚合函数,不能为*
mysql中:select后可以是分组聚合的条件或者是聚合函数或者是表中的其他字段,也可以为*
select [只能是group by分组中的字段],统计函数 from 表名 group by 分组字段名 [having 条件(条件只能是统计函数)];
--3.注意事项:
group by:后面的分组依据可以有多个字段或者是聚合函数的结果
having:是分组之后的条件查询
where:是分组之前的条件查询
--4.语句的使用顺序:
S(select)...F(from)...W(where)...G(group by)...H(having)...O(order by) --适用于Oracle
S(select)...F(from)...W(where)...G(group by)...H(having)...O(order by)...L(limit) --适用于mysql
1.1.5 伪列查询:Oracle数据库特有

​ 在Oracle的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是在表中并不存储,伪列是Oracle数据库自动为每一个表创建的。伪列只能查询,不能进行增删改操作。常见的两个伪列:ROWID和 ROWNUM。
ROWID:
​ 表中的每一行在数据文件中都有一个物理地址,ROWID 伪列返回的就是该行的物理地址。使用 ROWID 可以快速的定位表中的某一行。ROWID 值可以唯一的标识表中的一行。由于 ROWID 返回的是该行的物理地址,因此使用ROWID可以显示行是如何存储的,并且使用ROWID查询数据效率较高。
用法:select rowid from 表名;

ROWNUM:是Oracle数据库实现分页的基础
​ 在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回1,第二行返回2,以此类推。通过 ROWNUM伪列可以限制查询结果集中返回的行数。注意: rownum 是在查询语句扫描每条记录时产生的。
用法:select rownum from 表名;

1.2 连接查询

1.2.1 内连接查询:用法和mysql相同
语法:inner join语句,inner可以省略,显式内连接和隐式内连接可以相互转换
--显式内连接查询:
select 字段名 from 表名1 inner join 表名2 on 条件语句; -- 条件是两个表中相同的属性值判定条件,一般是外键约束
-- 如:select * FROM 客户表 c inner join 订单表 o on c.客户id = o.客户id; 客户id是订单表中的外键
--隐式内连接查询:
select 字段名 from 表名1,表名2 where 条件语句; -- 条件一般是外键约束
1.2.2 外连接查询:和mysql有区别
--方式1:Oracle和mysql通用的格式
    语法:outer join语句,左右外连接可以相互转换,将表的先后顺序调换即可
    --左外连接查询:left outer join语句,outer一般可以省略,查询的是左边表的全部
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值