본문 바로가기

SQL22

SQL(20) - DML 데이터베이스에서 데이터를 다루다 보면 단순히 조회만 하는 것이 아니라, 새로운 데이터를 추가하거나, 기존 데이터를 수정하거나, 불필요한 데이터를 삭제해야 하는 순간이 많다. 이러한 작업을 담당하는 것이 바로 DML(Data Manipulation Language, 데이터 조작 언어)이다.DML은 이미 만들어져 있는 테이블을 대상으로 레코드를 추가(INSERT), 변경(UPDATE), 삭제(DELETE), 병합(MERGE) 하는 SQL 명령어들의 집합이다. 앞서 다룬 SELECT 문이 데이터를 읽는(Read) 역할이라면, DML은 데이터를 직접 다루는 쓰기(Write) 역할이라고 할 수 있다.DML과 트랜잭션DML을 사용할 때 꼭 알아야 할 중요한 특징이 있다.바로 자동 커밋(AUTOCOMMIT)이 적용되.. 2025. 8. 21.
SQL(21) - PIVOT절과 UNPIVOT절과 정규표현식 SQL(21) - PIVOT절과 UNPIVOT절, 그리고 정규표현식데이터베이스에서 테이블은 행(Row) 과 열(Column) 로 구성된다.열(Column)은 속성의 이름과 구조를 정의하며, 이것이 테이블의 스키마가 된다. 행(Row)은 실제 데이터 값이 들어 있는 개별 레코드다.보통 데이터는 행 중심으로 나열되지만, 때로는 열 중심으로 변환해서 보는 것이 더 유용하다. 이때 사용하는 기능이 바로 PIVOT과 UNPIVOT이다. 또한 SQL에서는 문자열을 다룰 때 정규표현식을 활용할 수 있는데, 이는 데이터 가공과 검색에 매우 강력한 도구가 된다.1. PIVOT절PIVOT은 행을 열로 바꾸는 기능이다. 지정된 칼럼의 각 행 속성값이 새로운 열의 헤더로 변환되며, 이에 맞춰 데이터가 재배치된다.예를 들어, .. 2025. 8. 18.
SQL(20) - Top N 쿼리 & 셀프 조인 Top N 쿼리와 계층형 질의, 셀프 조인 정리SQL을 사용하다 보면 빌보드 핫 100과 같이 상위 N순위까지만 추출하고 싶은 경우가 자주 발생한다. 이런 형태의 쿼리를 Top N 쿼리라고 하며, 주로 순위 함수나 ROWNUM을 이용해 작성할 수 있다. 또한 데이터가 조직도나 상품 분류 체계처럼 계층 구조를 가진다면, 이를 다루기 위해 계층형 질의와 셀프 조인을 사용할 수 있다. 이번 글에서는 이 개념들을 정리해 본다.1. Top N 쿼리Top N 쿼리는 데이터 중 상위 N개의 행만 추출할 때 사용된다. 대표적으로 순위 함수(RANK, DENSE_RANK, ROW_NUMBER) 또는 ROWNUM 함수를 활용할 수 있다.1.1 ROWNUM 함수ROWNUM은 ROW_NUMBER 함수와 다르다.ROW_NUMB.. 2025. 8. 17.
SQL(19) - 윈도우 함수 윈도우 함수(Windows Functions) 정리SQL에서 윈도우 함수는 행과 행 사이의 관계를 계산하거나 누적 값, 순위, 비율 등을 구하는 데 사용되는 함수다.GROUP BY와 유사하게 행 단위로 집계를 수행할 수 있지만, 두 연산 방식에는 중요한 차이가 있다.GROUP BY는 집계 결과로 새로운 그룹별 행 구성을 만들지만, 윈도우 함수는 기존 행의 구조를 유지하면서 각 행에 새로운 값을 추가하거나 기존 값을 계산할 수 있다.1. 순위 함수 (Ranking Functions)윈도우 함수 중 가장 대표적인 기능은 순위 계산이다. 주로 RANK, DENSE_RANK, ROW_NUMBER 세 가지를 사용한다.RANK: 동일 순위의 행이 있을 경우 같은 순위값을 가진다. 이후 순위값은 앞 순위까지의 누적 .. 2025. 8. 13.
SQL - (18) 집합연산자와 그룹함수 집합연산자와 그룹함수 정리SQL에서는 데이터 집합에 대한 연산을 수행하거나 그룹별로 집계 결과를 구하는 기능을 제공한다. 이 글에서는 집합연산자와 그룹함수의 개념과 차이를 정리한다.1. 집합연산자 (Set Operators)집합연산자는 두 개의 결과 집합에 대해 합집합, 교집합, 차집합 연산을 수행한다.JOIN은 특정 키를 기준으로 행을 결합하지만, 집합연산자는 키 조건 없이 단순히 전체 결과 집합 간의 집합 연산을 수행한다.두 집합을 비교하기 위해서는 컬럼의 개수와 데이터 타입이 동일해야 하며, 컬럼명은 달라도 무방하다. 최종 결과의 컬럼명은 첫 번째 쿼리의 컬럼명을 따른다.1.1 UNION ALL vs UNIONUNION ALL : 두 집합을 합쳐 모든 행을 그대로 반환한다. 공통된 행도 중복된 개수.. 2025. 8. 11.
SQL (17) - 서브쿼리 서브쿼리(Subquery): 쿼리 안의 또 다른 쿼리SQL 문은 결과를 반환하는 독립적인 명령이다. 이처럼 쿼리 내부에도 또 하나의 독립적인 SQL 문을 삽입할 수 있다. 이런 구조를 서브쿼리라고 하며, 삽입 위치에 따라 동작 방식이 달라진다. 서브쿼리는 일반적으로 복잡한 로직을 간결하게 표현할 때 사용되며, 삽입되는 위치에 맞는 형식으로 결과를 반환해야 한다.1. 스칼라 서브쿼리 (Scalar Subquery)스칼라 서브쿼리는 SELECT 절에서 컬럼 위치에 삽입되는 서브쿼리다. 반드시 하나의 값을 반환해야 하며, 일반 컬럼처럼 사용된다.SELECT emp_name, (SELECT MAX(salary) FROM employees) AS highest_salary FROM employees;.. 2025. 8. 7.