Oracle基本、多表、子查询、排序

Oracle基本、多表、子查询、排序

基本查询

  • 选择行
select 列名 from 表名 where 列名 = '值1';
  1. 去除重复行
select distinct 列名 from 表名;
  • 比较查询
  1. 运算符
运算符说明
=等于
>大于
>=大于等于
<小于
<=小于等于
<>不等于
!=不等于
  • 范围查询

between and

select *from  表名  where BETWEEN 最小值  AND 最大值;

in

select 列名1,列名2 from where 列名1 IN(数值1,数值2);
  • 模糊查询
通配符说明
%表示0个或多个字符
_表示单个字符

like

select *from 表名 where 列名 LIKE '通配符';

回避特殊符号

select *from 表名 where 列名 LIKE 'oracle\_%' escape'\';
//oracle_abc
  • 判断空值

is null / is not null

select 列名1,列名2 from 表名 where 列名1 IS NOT NULL;
//输出满足列的非空值
  • 逻辑运算
操作符说明
AND逻辑与
OR逻辑或
NOT逻辑否

逻辑操作符的优先级别

NOT > AND > OR

子查询

子查询是嵌套在其他SQL语句中,也叫嵌套查询
不能在group by子句使用

  • 相关子查询

相关子查询先执行主查询,再执行子查询

  • 多行子查询
运算符说明
In等于列表任何一个
All和所有的返回值比较
Any和任意一个返回值比较

多表查询

  • 笛卡尔集
  • 内连接Inner join

只返回满足条件的记录

from 表名1 inner join表名2 on 列名1 = 列名2
  1. 等值连接和非等值连接:=

1.使用列别名提升效率,但不简洁
列别名1 = 列别名2
2.使用表别名jian’hua连接查询,提高查询性能
表别名1.列 = 表别名2.列

  1. 自然连接Natural join
  • 外连接

外连接是标准连接的扩展,它不仅会返回满足条件的所有j记录,而且还会返回不满足连接条件的部分记录

1.第一种方式
操作符(+)
左外连接: 表名1 = 表名2+)
右外连接: 表名1+= 表名2

2.第二种方式
左外连接: from 表名1 left join表名2 on 列名1 = 列名2
右外连接: from 表名1 right join表名2 on 列名1 = 列名2
完全外连接: from 表名1 full join表名2 on 列名1 = 列名2
  • 自连接

将同一张表看成一张表

  • 交叉连接 cross join
  • Set 运算符

Set操作符注意事项:查询语句中的 列名 和 表达式 在数量和数据类型上要相对应

集合操作符说明
union / union all并集 / 并集(有重复行)
intersect交集
Minus差集
查询语句1 集合操作符 查询语句2

排序

ORDER BY子句

  • 单列排序
//升序(默认升序)
select  列名1 from 表名 ORDER BY 列名1 ASC;
//降序
select  列名1 from 表名 ORDER BY 列名1 DESC;
  • 多列排序
  1. 先给列名1排序,再列名1的基础下,给列名2排序
select  列名1 列名2 from 表名 ORDER BY 列名1 ASC,列名2 DESC;
  1. 先给列名1排序,再列名1的基础下,给列名2排序
    会返回一个排序数字,可操作返回显示的数量
row_number()over(partition by 列名1 order by 列名2 desc)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值