DB

EXIST : 테이블에 값이 존재하는지 확인할 때 쓰는 것

Okguri 2022. 5. 2. 19:54

@@수정필요 

 

select 1 from table 
1이나 'X'로 처리를 해주는데 이유는 진짜 값을 가져오려는 게 아니라, 
있는지 없는지만 체크해오려고 하는 거기 때문에 상수값을 넣어준다 

교집합, 차집합을 나타낼 때 써주면 좋다. 
한 로우씩 체크를 함

select * from 무한도전;
select * from 런닝맨;

SELECT * FROM 런닝맨 A WHERE EXISTS(select 1 from 무한도전 B WHERE A.NAME= B.NAME)

1. 먼저 FROM 런닝맨이 실행
2. WHERE EXISTS 가 실행되면서 한 로우씩 체크. 무한도전 테이블과 런닝맨 테이블에 같은 NAME이 있으면 TRUE 반환하여, 해당 로우가 나타남. 만약 NAME이 같지 않으면, FALSE 반환하면서 해당 ROW는 나타나지 않음. 
중요한 것 : 런닝맨 테이블에서 SELECT 해옴!


SELECT * FROM 런닝맨 A WHERE NOT EXISTS(SELECT 1 FROM 무한도전 B WHERE A.NAME = B.NAME);

=> 런닝맨과 무한도전 테이블의 NAME 컬럼이 같은 ROW를 제외하고 런닝맨 테이블의 결과값 나옴