PostgreSQL 선택, 삽입, 업데이트 및 삭제 예제와 함께 존재합니다.

무엇이 존재하는가 PostgreSQL?

The PostgreSQL 존재 연산자는 하위 쿼리에 행이 있는지 테스트합니다. 즉, 연산자가 하위 쿼리와 함께 사용된다는 의미입니다. Exists 연산자는 하위 쿼리에서 적어도 하나의 행이 발견되면 충족된 것으로 간주됩니다. 이 연산은 SELECT, UPDATE, INSERT 및 DELETE 문과 함께 사용할 수 있습니다.

Postgres 존재 쿼리 구문

다음은 PostgreSQL EXISTS 문:

WHERE EXISTS (subquery);

위의 구문은 EXISTS 연산자가 인수를 받는 것을 보여줍니다. 인수는 하위 쿼리입니다. 하위 쿼리는 단순히 SELECT 문 열 이름이나 표현식 목록 대신 SELECT *로 시작해야 합니다.

PostgreSQL SELECT 문과 함께 존재

EXISTS 연산자와 함께 SELECT 문을 사용하는 방법을 살펴보겠습니다. 다음 테이블이 있습니다.

도서:

PostgreSQL SELECT 문과 함께 존재

가격:

PostgreSQL SELECT 문과 함께 존재

다음 문장을 실행합니다:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

다음을 반환합니다.

PostgreSQL SELECT 문과 함께 존재

위 명령은 하위 쿼리에 의한 레코드 ID와 ID가 일치하는 Book 테이블의 모든 레코드를 반환해야 합니다. 아이디가 XNUMX개만 일치했습니다. 따라서 하나의 레코드만 반환되었습니다.

PostgreSQL INSERT 문과 함께 존재합니다.

EXISTS 연산자를 다음과 같이 사용할 수 있습니다. INSERT 문. 우리는 다음 3개의 테이블을 가지고 있습니다:

도서:

PostgreSQL INSERT 문과 함께 존재합니다.

가격:

PostgreSQL INSERT 문과 함께 존재합니다.

가격2:

PostgreSQL INSERT 문과 함께 존재합니다.

그러면 다음 명령문을 실행할 수 있습니다.

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

이제 가격표는 다음과 같습니다.

PostgreSQL INSERT 문과 함께 존재합니다.

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);

Postgres는 UPDATE 문과 함께 존재합니다.

가격 테이블의 가격 열을 업데이트하는 중입니다. 우리의 목표는 ID를 공유하는 항목의 가격을 동일하게 만드는 것입니다. 한 행, 즉 5개만 일치했습니다.

하지만 가격이 동일 즉 205이므로 업데이트가 이루어지지 않았습니다. 차이가 있었다면 업데이트가 되었을 것입니다.

Postgres는 DELETE 문과 함께 존재합니다.

A PostgreSQL DELETE 문은 EXISTS 연산자를 사용할 수 있습니다. 다음은 예입니다.

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

이제 가격표는 다음과 같습니다.

Postgres는 DELETE 문과 함께 존재합니다.

ID가 5인 행이 삭제되었습니다.

PostgreSQL pgAdmin을 사용하는 Exists 문

이제 pgAdmin을 사용하여 이러한 작업을 수행하는 방법을 살펴보겠습니다.

Exists 쿼리를 사용하는 방법 PostgreSQL pgAdmin을 사용하여 SELECT 문 사용

다음은 Exists 쿼리를 사용하는 단계입니다. PostgreSQL pgAdmin을 사용하는 SELECT 문으로:

1단계) pgAdmin 계정에 로그인하세요.

pgAdmin을 열고 자격 증명을 사용하여 계정에 로그인하십시오.

2단계) 데모 데이터베이스 생성

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL pgAdmin을 사용하는 Exists 문

3단계) ​​쿼리 입력

쿼리 편집기에 아래 쿼리를 입력합니다.

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

4단계) 쿼리 실행

실행 버튼을 클릭하세요

PostgreSQL pgAdmin을 사용하는 Exists 문

다음을 반환해야 합니다.

PostgreSQL pgAdmin을 사용하는 Exists 문

INSERT 문 사용

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

다음 위치에 문이 존재합니다. PostgreSQL pgAdmin 사용

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

단계 4) 실행 버튼을 클릭하세요.

다음 위치에 문이 존재합니다. PostgreSQL pgAdmin 사용

이제 가격 테이블은 다음과 같아야 합니다.

다음 위치에 문이 존재합니다. PostgreSQL pgAdmin 사용

업데이트 문 포함

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

다음 위치에 문이 존재합니다. PostgreSQL pgAdmin 사용

단계 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) 실행 버튼을 클릭하세요.

PostgreSQL pgAdmin을 사용하는 Exists 문

이제 가격 테이블은 다음과 같아야 합니다.

PostgreSQL pgAdmin을 사용하는 Exists 문

DELETE 문 사용

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL pgAdmin을 사용하는 Exists 문

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL pgAdmin을 사용하는 Exists 문

이제 가격 테이블은 다음과 같아야 합니다.

PostgreSQL pgAdmin을 사용하는 Exists 문

요약

  • EXISTS 연산자는 하위 쿼리에 행이 존재하는지 테스트합니다.
  • 하위 쿼리와 함께 사용되며 하위 쿼리가 최소한 하나의 행을 반환하면 충족되었다고 합니다.
  • SELECT, UPDATE, INSERT, DELETE 문과 함께 사용됩니다.

이 튜토리얼에 사용된 데이터베이스 다운로드