[PostgreSQL] 46~51강까지의 내용 정리
DELETE JOIN 문부터 TCL 문법까지
DELETE JOIN 문
-DELETE 사용 시 다른 테이블을 참조하여 삭제 처리
-DELETE 문에 USING 절 사용(참조 테이블)
-두 테이블의 연결 조건(조인 조건) 필요
-DELETE JOIN 문은 서브쿼리로 대체 가능
UPSERT 문
-UPDATE와 INSERT를 동시에 고려
-기존 데이터에 값이 있으면 UPDATE를, 있으면 INSERT를 수행
-다른 DBMS에서는 MERGE 문으로 사용
INSERT INTO 테이블명(컬럼명...)
VALUES (값...)
ON CONFLICT 타겟 ACTION;
/*
여기서 타겟은
(컬럼명)
ON CONSTRAINT 제약조건명
WHERE 절
ACTION은 삽입할 데이터가 이미 있으면 어떻게 할 지를 지정
DO NOTHING //아무 것도 하지 않음
DO UPDATE SET 컬럼 = 값... WHERE 조건 //삽입하고자 하는 값으로 수정
*/
사용 예시
insert into menu1
select * from menu2
on conflict (id)
do update set price = EXCLUDED.price;
BEGIN, COMMIT, ROLLBACK, SAVEPOINT
-savepoint는 지정한 중간 단계로 복구하는 TCL 문법
-select는 단순 조회기 때문에 데이터의 변경을 저장할 필요가 없다, 따라서 commit은 select와 무관
-savepoint를 통한 rollback 지점 지정 가능
-어떤 rollback도 commit 시점 이전으로 돌아갈 수 없다
etc.
Q. professor_test1 테이블에서 각 직급별로 최대 PAY 값을 구한 뒤 해당 값으로 모두 수정하기
A.
update professor_test1 p1
set pay = (select max(pay) from professor_test1 p2 where p1.position = p2.position);
Author And Source
이 문제에 관하여([PostgreSQL] 46~51강까지의 내용 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bacccine/PostgreSQL-4651강까지의-내용-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)