PostgreSQL 선택, 삽입, 업데이트 및 삭제 예제와 함께 존재합니다.
무엇이 존재하는가 PostgreSQL?
The PostgreSQL 존재 연산자는 하위 쿼리에 행이 있는지 테스트합니다. 즉, 연산자가 하위 쿼리와 함께 사용된다는 의미입니다. Exists 연산자는 하위 쿼리에서 적어도 하나의 행이 발견되면 충족된 것으로 간주됩니다. 이 연산은 SELECT, UPDATE, INSERT 및 DELETE 문과 함께 사용할 수 있습니다.
Postgres 존재 쿼리 구문
다음은 PostgreSQL EXISTS 문:
WHERE EXISTS (subquery);
위의 구문은 EXISTS 연산자가 인수를 받는 것을 보여줍니다. 인수는 하위 쿼리입니다. 하위 쿼리는 단순히 SELECT 문 열 이름이나 표현식 목록 대신 SELECT *로 시작해야 합니다.
PostgreSQL SELECT 문과 함께 존재
EXISTS 연산자와 함께 SELECT 문을 사용하는 방법을 살펴보겠습니다. 다음 테이블이 있습니다.
도서:
가격:
다음 문장을 실행합니다:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
다음을 반환합니다.
위 명령은 하위 쿼리에 의한 레코드 ID와 ID가 일치하는 Book 테이블의 모든 레코드를 반환해야 합니다. 아이디가 XNUMX개만 일치했습니다. 따라서 하나의 레코드만 반환되었습니다.
PostgreSQL INSERT 문과 함께 존재합니다.
EXISTS 연산자를 다음과 같이 사용할 수 있습니다. INSERT 문. 우리는 다음 3개의 테이블을 가지고 있습니다:
도서:
가격:
가격2:
그러면 다음 명령문을 실행할 수 있습니다.
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
이제 가격표는 다음과 같습니다.
Price5라는 테이블에서 ID가 2인 행이 일치되었습니다. 그런 다음 이 레코드가 Price 테이블에 삽입되었습니다.
Postgres는 UPDATE 문과 함께 존재합니다.
UPDATE 문에서 EXISTS 연산자를 사용할 수 있습니다.
다음 쿼리를 실행합니다.
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
가격 테이블의 가격 열을 업데이트하는 중입니다. 우리의 목표는 ID를 공유하는 항목의 가격을 동일하게 만드는 것입니다. 한 행, 즉 5개만 일치했습니다.
하지만 가격이 동일 즉 205이므로 업데이트가 이루어지지 않았습니다. 차이가 있었다면 업데이트가 되었을 것입니다.
Postgres는 DELETE 문과 함께 존재합니다.
A PostgreSQL DELETE 문은 EXISTS 연산자를 사용할 수 있습니다. 다음은 예입니다.
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
이제 가격표는 다음과 같습니다.
ID가 5인 행이 삭제되었습니다.
PostgreSQL pgAdmin을 사용하는 Exists 문
이제 pgAdmin을 사용하여 이러한 작업을 수행하는 방법을 살펴보겠습니다.
Exists 쿼리를 사용하는 방법 PostgreSQL pgAdmin을 사용하여 SELECT 문 사용
다음은 Exists 쿼리를 사용하는 단계입니다. PostgreSQL pgAdmin을 사용하는 SELECT 문으로:
1단계) pgAdmin 계정에 로그인하세요.
pgAdmin을 열고 자격 증명을 사용하여 계정에 로그인하십시오.
2단계) 데모 데이터베이스 생성
- 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
- 데모를 클릭하세요.
3단계) 쿼리 입력
쿼리 편집기에 아래 쿼리를 입력합니다.
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
4단계) 쿼리 실행
실행 버튼을 클릭하세요
다음을 반환해야 합니다.
INSERT 문 사용
pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.
단계 1) pgAdmin 계정에 로그인하세요.
단계 2)
- 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
- 데모를 클릭하세요.
단계 3) 쿼리 편집기에 쿼리를 입력합니다.
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
단계 4) 실행 버튼을 클릭하세요.
이제 가격 테이블은 다음과 같아야 합니다.
업데이트 문 포함
pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.
단계 1) pgAdmin 계정에 로그인하세요.
단계 2)
- 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
- 데모를 클릭하세요.
단계 3) 쿼리 편집기에 쿼리를 입력합니다.
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
단계 4) 실행 버튼을 클릭하세요.
이제 가격 테이블은 다음과 같아야 합니다.
DELETE 문 사용
pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.
단계 1) pgAdmin 계정에 로그인하세요.
단계 2)
- 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
- 데모를 클릭하세요.
단계 3) 쿼리 편집기에 쿼리를 입력합니다.
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
단계 4) 실행 버튼을 클릭하세요.
이제 가격 테이블은 다음과 같아야 합니다.
요약
- EXISTS 연산자는 하위 쿼리에 행이 존재하는지 테스트합니다.
- 하위 쿼리와 함께 사용되며 하위 쿼리가 최소한 하나의 행을 반환하면 충족되었다고 합니다.
- SELECT, UPDATE, INSERT, DELETE 문과 함께 사용됩니다.