1.子查询知识体系,单行子查询,多行子查询
1查询工资比scott高的员工信息 A第一步:查询出scott这个员工的工资 select sal from emp where ename = 'SCOTT'; B第二步:查询出工资比scott高的员工信息 select * fromemp where sal 3000; 总结: 子查询的本质:多个select语句的嵌套 2:子查询的知识体
1查询工资比scott高的员工信息
A 第一步:查询出scott这个员工的工资
select sal from emp
where ename = 'SCOTT';
B 第二步:查询出工资比scott高的员工信息
select * fromemp
where sal >3000;
总结:
子查询的本质:多个select语句的嵌套
2:子查询的知识体系搭建
A 合理的书写风格
B 子查询外面()不要忘记
C 子查询和主查询可以查询的是同一张表,也可以不是同一张表
只要子查询返回的结果,主查询可以用即可。
D 在什么地方可以防止子查询
select a,b,c ---OK,只能存放单行子查询,不能使多行子查询 from tab1 ---OK 可以有子查询 where col in(em1,em2) ---可以有子查询 col between a1 and a2 col > 222 col > () group by … ---不可以有子查询 having …. ---可以有子查询 order by … ---不可以有子查询 |
E 子查询的分类
1.单行操作符对应单行子查询,多行操作符对应多行子查询。 |
2.按照子查询返回的条目数,分为:单行子查询和多行子查询 |
3.单行子查询只能使用单行比较操作符(= > >= ) |
4.多行子查询只能使用多行比较操作符(int any all) |
3 单行子查询
Eg:查询员工信息和141号工种一样的,薪水比143号员工工资高的员工 |
SQL> conn hr/123456 已连接。 SQL> select last_name,job_id,salary 2 FROM employees 3 WHERE job_id = 4 (SELECT job_id 5 FROM employees 6 WHERE employee_id = 141); |
|
Eg:查询工资最低的员工信息 |
select last_name,job_id,salary FROM employees WHERE salary = (SELECT MIN(salary) FROM employees); |
|
Eg:求各个部门编号和部门的最低工资(这个最低工资要比50号部门的最低工资要高) |
思路分析:看子查询 看group by 和 having条件检索 看检索对象 //子查询:求50号部门的最低工资 à检索 各部门的最低工资 比50号部门的最低工资 大的部门号和部门最小工资 |
SELECT department_id,MIN(salary) FROM employees GROUP By department_id HAVING MIN(salary) > (SELECT MIN(salary) FROM employees WHERE department_id = 50); |
|
4 查询部门名称是SALES的员工信息(2中方式)
方法1:子查询 |
SELECT * FROM emp WHERE DEPTNO = (SELECT deptno FROM dept WHERE dname = 'SALES'); |
|
方法2:多表查询 |
SELECT e.* FROM emp e,dept d WHERE e.deptno = d.deptno and d.dname = 'SALES'; |
|
注意:第二种(多表查询的执行速度比子查询的执行速度快,因为多表查询是一次将数据读到内存中进行读取,消耗内存而加快速度) 第一种(子查询要进行两次连接数据库的操作,连接数据库的操作是一个耗时操作,减低了速度)。 |
5 select后面要查询的列中可以是单行子查询,不可以是多行子查询
错误案例: |
select ename,empno,(select deptno from emp) AA from emp; |
|
正确案例: |
select ename,empno,(select deptno from emp where EMPNO = 7369) AA from emp; |
|
select * from (select ename,sal from emp); |
|
7 多行子查询
多行子查询只能使用多行比较操作符(in any all)
--eg 查询部门名称是*(不是)SALES 和 ACCOUNTING 的员工信息 2种方法
--eg 查询薪水 比30号部门 任意一个员工薪高的员工信息
-eg 查询薪水 比30号部门 所有员工 高的员工信息
查询部门名称是*(不是)SALES 和 ACCOUNTING 的员工信息 2种方法 |
select * from emp where deptno in (select deptno from dept where dname = 'SALES' or dname = 'ACCOUNTING'); |
|
操作符 |
含义 |
IN |
等于列表中的任何一个 |
ANY |
和子查询返回的任意一个值比较 |
ALL |
和子查询返回的所有值比较 |
ANY
SELECT employee_id,last_name,job_id,salary FROM employees WHERE salary (SELECT salary FROM employees WHERE job_id = 'IT_PROG') AND job_id 'IT_PROC'; |
|
ALL
SELECT employee_id,last_name,job_id,salary FROM employees WHERE salary (SELECT salary FROM employees WHERE job_id = 'IT_PROG') AND job_id 'IT_PROC' |
|
Eg: 比30号部门 任意一个员工薪高的员工信息 大于集合中的最小值 any |
select * from emp where sal > all(select sal from emp where deptno = 30); |
|
等价于: |
select * from emp where sal > (select max(sal) from emp where deptno = 30); |
|
查询是经理的员工信息 |
分析: SELECT * FROM emp WHERE empno in(经理的集合); |
实际: select * from emp where empno in ( select mgr from emp ); |
|
select * from emp where empno not in ( select mgr from emp where mgr is not null ); |
|

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Download the latest version of 12306 ticket booking app. It is a travel ticket purchasing software that everyone is very satisfied with. It is very convenient to go wherever you want. There are many ticket sources provided in the software. You only need to pass real-name authentication to purchase tickets online. All users You can easily buy travel tickets and air tickets and enjoy different discounts. You can also start booking reservations in advance to grab tickets. You can book hotels or special car transfers. With it, you can go where you want to go and buy tickets with one click. Traveling is simpler and more convenient, making everyone's travel experience more comfortable. Now the editor details it online Provides 12306 users with a way to view historical ticket purchase records. 1. Open Railway 12306, click My in the lower right corner, and click My Order 2. Click Paid on the order page. 3. On the paid page

How to check my academic qualifications on Xuexin.com? You can check your academic qualifications on Xuexin.com, but many users don’t know how to check their academic qualifications on Xuexin.com. Next, the editor brings you a graphic tutorial on how to check your academic qualifications on Xuexin.com. Interested users come and take a look! Xuexin.com usage tutorial: How to check your academic qualifications on Xuexin.com 1. Xuexin.com entrance: https://www.chsi.com.cn/ 2. Website query: Step 1: Click on the Xuexin.com address above to enter the homepage Click [Education Query]; Step 2: On the latest webpage, click [Query] as shown by the arrow in the figure below; Step 3: Then click [Login Academic Credit File] on the new page; Step 4: On the login page Enter the information and click [Login];

1. Fresh graduate Java engineers: 5K for ordinary level, 10K for those with strong ability. 2. Java engineer with one year of work experience: 8K for ordinary level, 15K for strong ability. 3. Java engineer with three years of work experience: 10-15K for ordinary level, 18-20K for those with strong ability. 4. Java engineers with five years of work experience or above: 18K-30K for ordinary level, 25K-40K for those with strong ability.

MySQL and PL/SQL are two different database management systems, representing the characteristics of relational databases and procedural languages respectively. This article will compare the similarities and differences between MySQL and PL/SQL, with specific code examples to illustrate. MySQL is a popular relational database management system that uses Structured Query Language (SQL) to manage and operate databases. PL/SQL is a procedural language unique to Oracle database and is used to write database objects such as stored procedures, triggers and functions. same

If you want to check the activation date using an Apple mobile phone, the best way is to check it through the serial number in the mobile phone. You can also check it by visiting Apple's official website, connecting it to a computer, and downloading third-party software to check it. How to check the activation date of Apple mobile phone Answer: Serial number query, Apple official website query, computer query, third-party software query 1. The best way for users is to know the serial number of their mobile phone. You can see the serial number by opening Settings, General, About This Machine. . 2. Using the serial number, you can not only know the activation date of your mobile phone, but also check the mobile phone version, mobile phone origin, mobile phone factory date, etc. 3. Users visit Apple's official website to find technical support, find the service and repair column at the bottom of the page, and check the iPhone activation information there. 4. User

Title: How to use Oracle to query whether a table is locked? In Oracle database, table lock means that when a transaction is performing a write operation on the table, other transactions will be blocked when they want to perform write operations on the table or make structural changes to the table (such as adding columns, deleting rows, etc.). In the actual development process, we often need to query whether the table is locked in order to better troubleshoot and deal with related problems. This article will introduce how to use Oracle statements to query whether a table is locked, and give specific code examples. To check whether the table is locked, we

Forum is one of the most common website forms on the Internet. It provides users with a platform to share information, exchange and discuss. Discuz is a commonly used forum program, and I believe many webmasters are already very familiar with it. During the development and management of the Discuz forum, it is often necessary to query the data in the database for analysis or processing. In this article, we will share some tips for querying the location of the Discuz database and provide specific code examples. First, we need to understand the database structure of Discuz

Check the latest price of BitTorrent Coin (BTT) BTT is a cryptocurrency on the TRON blockchain that is used to reward BitTorrent network users for sharing and downloading files. Here's how to find the latest price for BTT: Choose a reliable price check website or app. Some commonly used price query websites include: CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/Binance: https://www.binance.com/ Search on the website or app BTT. Check out the latest prices for BTT. Note: Cryptocurrency Prices
