PostgreSQL 쿼리 삭제(선택에서 행 삭제)

다음에서 쿼리 삭제 PostgreSQL

The 문 삭제 in PostgreSQL 테이블에서 하나 이상의 레코드를 삭제하는 데 사용됩니다. 테이블에서 선택한 행을 삭제하려는 경우 PostgreSQL DELETE 문을 WHERE 절과 결합할 수 있습니다. 그렇지 않으면 모든 레코드가 삭제됩니다.

Postgres 삭제 쿼리 구문

DELETE 문은 아래 구문으로 정의할 수 있습니다.

[ WITH [ RECURSIVE ] with-query [, ...] ]
DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ]
    [ USING using-list ]
    [ WHERE condition(s) | WHERE CURRENT OF cursor-name]
    [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]

파라미터

  • 쿼리 포함: WITH 절을 사용하면 DELETE 쿼리에서 이름으로 참조할 하나 이상의 하위 쿼리를 참조할 수 있습니다.
  • 테이블 이름: 레코드를 삭제할 테이블의 이름입니다.
  • 별명: 대상 테이블의 이름을 대체합니다.
  • using-list: 다른 테이블의 열을 WHERE 절에서 사용할 수 있도록 허용하는 테이블 표현식입니다.
  • 정황): 선택 과목. 기록을 삭제하기 위해 충족해야 하는 조건입니다. 이 섹션을 제공하지 않으면 모든 테이블 이름 레코드가 삭제됩니다.
  • 커서 이름: WHERE CURRENT OF 조건에서 사용할 커서입니다. 이 커서로 마지막으로 가져온 행이 삭제됩니다.
  • 출력 표현: 모든 행을 삭제한 후 DELETE 문에서 처리하여 반환할 표현식입니다.
  • 출력 이름: 반환된 열에 사용할 이름입니다.

DELETE 문은 전체 행을 삭제하므로 열 이름을 지정할 필요가 없습니다.

PostgreSQL 하나의 조건으로 쿼리 삭제

DELETE 문은 단일 조건과 함께 사용할 수 있습니다. 조건은 WHERE 절을 사용하여 설정됩니다. 다음 데이터가 있는 Price 테이블을 고려하세요.

가격

PostgreSQL 하나의 조건으로 쿼리 삭제

ID가 4인 레코드를 삭제해 보겠습니다.

DELETE FROM Price
WHERE id = 4;

위 명령은 ID가 4인 레코드를 삭제합니다. 삭제가 성공했는지 확인하겠습니다.

PostgreSQL 하나의 조건으로 쿼리 삭제

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

두 가지 조건으로 쿼리 삭제

The PostgreSQL DELETE 문은 두 가지 조건을 취할 수 있습니다. 두 조건은 AND 연산자를 사용하여 결합해야 합니다. 다음 표를 사용하겠습니다.

가격:

PostgreSQL 두 가지 조건으로 쿼리 삭제

아래 주어진 예를 고려하십시오.

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

위 명령에서는 id가 3이고 가격이 300인 행을 삭제합니다. 이제 테이블을 쿼리할 수 있습니다.

SELECT * FROM Price

다음이 반환됩니다.

PostgreSQL 두 가지 조건으로 쿼리 삭제

ID가 3이고 가격이 300인 레코드가 삭제되었습니다.

PostgreSQL 존재 조건을 사용하여 쿼리 삭제

EXISTS 조건을 사용하면 DELETE를 더 복잡하게 만들 수 있습니다. 때로는 다른 테이블의 레코드를 기반으로 한 테이블의 레코드를 삭제해야 할 수도 있습니다.

FROM 절은 삭제를 수행할 때 여러 테이블의 레코드를 나열할 수 없다는 것을 알 수 있습니다. EXISTS 절은 매우 유용합니다. 다음 두 테이블이 있습니다.

도서:

PostgreSQL 존재 조건을 사용하여 쿼리 삭제

가격:

PostgreSQL 존재 조건을 사용하여 쿼리 삭제

이제 다음 쿼리를 실행할 수 있습니다.

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

위 명령은 Book 테이블의 ID와 일치하고 가격이 250보다 작은 Price 테이블에 레코드가 있는 Book 테이블에서 삭제합니다.

이제 Book 테이블은 다음과 같습니다.

PostgreSQL 존재 조건을 사용하여 쿼리 삭제

ID가 1인 레코드가 삭제되었습니다.

행을 삭제하는 방법 PostgreSQL pgAdmin 사용

행을 삭제하는 단계는 다음과 같습니다. PostgreSQL pgAdmin 사용:

조건이 하나인 경우

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

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

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

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

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

다음 위치에서 행 삭제 PostgreSQL

3단계) ​​쿼리 입력

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

DELETE FROM Price
WHERE id = 4;

4단계) 쿼리 실행

실행 버튼을 클릭하세요

다음 위치에서 행 삭제 PostgreSQL

5단계) 행이 삭제되었는지 확인

삭제가 성공했는지 확인해 보겠습니다.

다음 위치에서 행 삭제 PostgreSQL

두 가지 조건으로

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

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

단계 2)

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

다음 위치에서 행 삭제 PostgreSQL

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

DELETE FROM Price
WHERE id = 3
AND price = 300;

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

다음 위치에서 행 삭제 PostgreSQL

단계 5) 삭제가 성공했는지 확인해 보겠습니다.

다음 위치에서 행 삭제 PostgreSQL

EXISTS 조건 사용

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

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

단계 2)

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

EXISTS 조건을 사용하여 행 삭제

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

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

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

EXISTS 조건을 사용하여 행 삭제

단계 5) 삭제가 성공했는지 확인해 보겠습니다.

EXISTS 조건을 사용하여 행 삭제

제품 개요

  • DELETE 문은 테이블에서 하나 이상의 레코드를 삭제하는 데 사용됩니다.
  • 테이블에서 선택한 행만 삭제하려면 DELETE 문과 WHERE 절을 결합하면 됩니다.
  • WHERE 절 없이 DELETE 절을 사용하면 테이블의 모든 레코드가 삭제됩니다.
  • table-name 매개변수를 사용하면 레코드를 삭제할 테이블의 이름을 추가할 수 있습니다.
  • WHERE 절을 사용하여 지정된 하나의 조건으로 DELETE 문을 사용할 수 있습니다.
  • DELETE 문은 WHERE 절에 지정된 두 조건과 함께 사용할 수도 있습니다. 두 조건은 AND 연산자를 사용하여 결합해야 합니다.
  • The 존재 조건은 다른 테이블의 레코드를 기반으로 테이블에서 레코드를 삭제하는 데 도움이 될 수 있습니다.

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