Oracle表的查询

Posted 云上咖啡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle表的查询相关的知识,希望对你有一定的参考价值。

表查询
关键字、字段、表名不加引号时不区分大小写
引号定义的内容区分大小写
运算中有null值时,结果为null
*nvl(字段,赋值):如果字段值为null,则取后面一个值
*like 关键字:%表示若干个字符,_代表一个字符
in 关键字:in(条件集合)
order by:排序
别名 : 中文加“”
分组: group by
max():对字段取最大值
min(): 对字段取最小值
having :对分组的结果进行限制操作
where :对源数据进行限制操作
sum():对字段求和
avg():对字段求平均值
count():统计数据数量
分组函数只能出现在选择列、having、order by字句
字句顺序:group by,having ,order by
规定:多表查询时,条件至少不能少于表的个数-1(排除笛卡尔集)
between and:字段 between a1 and a2 (字段在a1-a2之间)
自连接:同一张表的连接查询
子查询:嵌套查询(在sql中嵌入的select语句),分为单行/多行子查询
all用法:select ename,sal,deptno from emp where sal>all (select sal from emp where deptno=30);
any用法:select ename,sal,deptno from emp where sal>any (select sal from emp where deptno=30);
多行子查询:select * from emp where (deptno,job) = (select deptno,job from emp where ename = ‘SMITH‘);
经典逻辑示例(显示工资高于自己部门平均工资的员工信息)
select emp.ename,emp.sal a1.mysal emp.deptno from emp ,(select deptno,avg(sal) mysal from emp group by deptno) a1 where emp.deptno=a1.deptno and emp.sal>a1.mysal;

分页
select * from (select a1.* ,rownum rn from (select * from emp) a1 where rownum<=10) where rn>=5;
所有改动只需该最里层的数据

用子查询创建表
create table 表名 (字段1,字段2,字段3) as select empno,ename,sal from emp;

合并查询:多个查询结果合并为一个
查询语句 union 查询语句(取并集自动distinct)
查询语句 union all 查询语句(取并集不自动distinct)
查询语句 intersect 查询语句(取交集)
查询语句 minus 查询语句(取差集(在第一个集合存在且不存在于第二个集合中))

创建数据库
1、用工具 Database configuration assistant(dbca)
2、用函数





































以上是关于Oracle表的查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle 怎样查询某用户下的所有表的表名

oracle 怎样查询某用户下的所有表的表名

oracle查询怎么多个表的第一列

oracle如何查询嵌套表的分项

oracle怎么查询所有的表有没有主键

oracle中怎么用sql查表以及表的字段名