欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-24 23:13:08
Oracle查询、排序(DQL数据查询语言)基本查询排序基本查询选择列选择行select 列名 from 表名 where 列名 = ’值1‘;去除重复行select distinct 列名 from 表名;比较查询运算符运算符说明=等于>大于>=大于等于<小于<=小于等于<>不等于!=不等于范围查询between andselect *f...

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;
  • 列别名排序
select  列名1 列名1的列别名 from 表名 ORDER BY 列名1的列别名 ASC;
  • 多列排序
select  列名1 列名2 from 表名 ORDER BY 列名1 ASC,列名2 DESC;

以!上!内!容!

以上内容仅为自我领悟、亲身碰遇困处或难处的学习笔记
如有错误,欢迎指正!!!

点击返回首目录

本文地址:https://blog.csdn.net/StudyPower_Max/article/details/107265717