In Oracle, "not exists" is used to determine whether a clause returns a result set. If the clause returns a result set, it is false. If the clause does not return a result set, it is true. The syntax is "select * from daul where not exists (clause query condition)".
The operating environment of this tutorial: Windows 10 system, Oracle 11g version, Dell G3 computer.
What is the usage of not exists in oracle
exists: The emphasis is on whether to return the result set, and it is not required to know what is returned. For example:
select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
As long as the sub-child guided by exists If the sentence has a result set returned, then the exists condition is established. Please note that the returned field is always 1. If it is changed to "select 2 from grade where...", then the returned field is 2. This number is meaningless. So the exists clause does not care about what is returned, but whether there is a result set returned.
The biggest difference between exists and in is that the in clause can only return one field, for example:
select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)
, the in clause returns three fields, which is not true Correct, the exists clause is allowed, but in only allows one field to be returned. Just remove any two fields in 1, 2, and 3.
And not exists and not in are the opposites of exists and in respectively.
exists (sql returns the result set as true)
not exists (sql does not return the result set as true)
The process of not exists is described in detail below:
As follows:
Table A
ID NAME
1 A1
2 A2
3 A3
Table B
ID AID NAME
1 1 B1
##2 2 B2 3 2 B3Table A and table B have a 1-to-many relationship A.ID => B.AIDSELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)The execution result is1 A12 A2The reason can be analyzed as follows
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1) --->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据 SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2) --->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据 SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3) --->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据NOT EXISTS is the other way around
SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)The execution result is3 A3
EXISTS = IN, the meaning is the same but there is a slight difference in syntax. It seems that the efficiency of using IN is less, which may be the reason why the index will not be executed.
SELECT ID,NAME FROM A WHERE ID IN (SELECT AID FROM B)NOT EXISTS = NOT IN, the meaning is the same but there is a difference in syntax. Little difference
SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)Sometimes we will encounter the situation where we need to select a certain column without duplication, use a certain column as the selection condition, and other columns will be output normally.Recommended tutorial: "
Oracle Video tutorial》
The above is the detailed content of What is the usage of not exists in oracle. For more information, please follow other related articles on the PHP Chinese website!

Oracle software simplifies business processes through database management, ERP, CRM and data analysis capabilities. 1) OracleERPCloud automates financial, human resources and other processes; 2) OracleCXCloud manages customer interactions and provides personalized services; 3) OracleAnalyticsCloud supports data analysis and decision-making.

Oracle's software suite includes database management, ERP, CRM, etc., helps enterprises optimize operations, improve efficiency, and reduce costs. 1. OracleDatabase manages data, 2. OracleERPCloud handles finance, human resources and supply chain, 3. Use OracleSCMCloud to optimize supply chain management, 4. Ensure data flow and consistency through APIs and integration tools.

The main difference between MySQL and Oracle is licenses, features, and advantages. 1. License: MySQL provides a GPL license for free use, and Oracle adopts a proprietary license, which is expensive. 2. Function: MySQL has simple functions and is suitable for web applications and small and medium-sized enterprises. Oracle has powerful functions and is suitable for large-scale data and complex businesses. 3. Advantages: MySQL is open source free, suitable for startups, and Oracle is reliable in performance, suitable for large enterprises.

MySQL and Oracle have significant differences in performance, cost and usage scenarios. 1) Performance: Oracle performs better in complex queries and high concurrency environments. 2) Cost: MySQL is open source, low cost, suitable for small and medium-sized projects; Oracle is commercialized, high cost, suitable for large enterprises. 3) Usage scenarios: MySQL is suitable for web applications and small and medium-sized enterprises, and Oracle is suitable for complex enterprise-level applications. When choosing, you need to weigh the specific needs.

Oracle software can improve performance in a variety of ways. 1) Optimize SQL queries and reduce data transmission; 2) Appropriately manage indexes to balance query speed and maintenance costs; 3) Reasonably configure memory, optimize SGA and PGA; 4) Reduce I/O operations and use appropriate storage devices.

Oracle is so important in the enterprise software and cloud computing sectors because of its comprehensive solutions and strong technical support. 1) Oracle provides a wide range of product lines from database management to ERP, 2) its cloud computing services such as OracleCloudPlatform and Infrastructure help enterprises achieve digital transformation, 3) Oracle database stability and performance and seamless integration of cloud services improve enterprise efficiency.

MySQL and Oracle have their own advantages and disadvantages, and comprehensive considerations should be taken into account when choosing: 1. MySQL is suitable for lightweight and easy-to-use needs, suitable for web applications and small and medium-sized enterprises; 2. Oracle is suitable for powerful functions and high reliability needs, suitable for large enterprises and complex business systems.

MySQL uses GPL and commercial licenses for small and open source projects; Oracle uses commercial licenses for enterprises that require high performance. MySQL's GPL license is free, and commercial licenses require payment; Oracle license fees are calculated based on processors or users, and the cost is relatively high.


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

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Chinese version
Chinese version, very easy to use

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
