6. 정리
다른 표 기준으로 고치는 표준 방식은 상관 서브쿼리 UPDATE 에 WHERE EXISTS 를 붙이는 것입니다. 빼면 짝 없는 행이 NULL 이 됩니다.
MySQL 은 UPDATE t JOIN s ON ... SET, MSSQL 은 UPDATE t SET ... FROM t JOIN s, 조인 DELETE 는 둘 다 DELETE t FROM t JOIN s ... 입니다.
Oracle 은 상관 서브쿼리·MERGE·조인 뷰(키 보존 테이블만, 아니면 ORA-01779)를 쓰고 23ai 부터 UPDATE ... FROM, DELETE ... FROM 을 지원합니다.
원천 키가 중복이면 서브쿼리와 MERGE 는 오류이지만 MSSQL UPDATE ... FROM 은 임의의 한 행을 조용히 씁니다. 원천을 키당 한 행으로 만들어 두는 것이 안전합니다.
INSERT ALL(맞는 조건 전부)과 INSERT FIRST(처음 맞는 하나)는 Oracle 9i·Tibero 문법으로, 원천을 한 번 읽습니다. MySQL·MSSQL 은 INSERT ... SELECT ... WHERE 를 조건 수만큼 씁니다.
고급 10개를 돌아보면 순위·프레임·LAG/LEAD 같은 분석 함수, 계층 쿼리, PIVOT, ROLLUP, WITH, MERGE, 조인 DML 까지 복잡한 일을 문장 하나로 끝내는 도구였습니다. 다음 카테고리는 SQL 실무로, 지금까지 배운 문법을 실제 업무 데이터에 적용하는 패턴을 다룹니다.