Oracle对emp表的几种查询

148 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

Oracle简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

首先,切换到需要的用户 由于需要查询的emp表在SCOTT用户下,切换到SCOTT表

ALTER USER scott IDENTIFIED BY Orcl123456 ACCOUNT UNLOCK; select * from emp;

然后简单试一下,对员工的工资进行一个降序排序

select ename,job,sal from emp where sal<=2000 order by sal desc;

可以得到结果

image.png

可以发现员工按照工资(sal)的多少进行了降序排列。

内连接

使用显式内连接和隐式内连接分别查询。 先介绍一下两种连接的区别坐标坐标

隐式内连接:没有JOIN关键字,条件使用WHERE指定

显式内连接:使用INNER JOIN ... ON语句, 可以省略INNER

两种查询的sql语句如下

select e.ename,e.job,e.sal,d.dname,d.loc from emp e INNER JOIN dept d ON e.deptno = d.deptno WHERE d.dname='RESEARCH';

select e.ename,e.job,e.sal,d.dname,d.loc from emp e INNER JOIN dept d ON e.deptno = d.deptno AND d.dname='RESEARCH';

可以在代码后半段明显看到两种查询方式的区别

子查询

然后使用子表查询查询一下30号部门的员工,()里嵌套一个子查询

select ename ,job,sal,deptno from emp WHERE job IN (select distinct job from emp WHERE deptno = 30);

得到结果

image.png