본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
EPL과 유튜브 데이터로 배우는 DuckDB

SQL 효율을 높이는 DuckDB 전용 SQL - Part 2

by 아참형인간 2026. 5. 4.

https://2stndard.tistory.com/notice/203

 

[발간예정][EPL과 유튜브로 배우는 DuckDB] 실습 코드와 데이터

EPL과 유튜브 데이터로 배우는 DuckDB에서 사용되는 실습 데이터와 코드를 제공합니다. EPL_DATA&samplefile.zip : 책에서 사용하는 영국 프리미어리그 데이터 셋과 샘플로 사용하는 파일espn.duckdb.zip : 책

2stndard.tistory.com

[DuckDB] 데이터 분석 생산성을 높여주는 SQL 핵심 문법 정리


최근 데이터 분석 및 OLAP 엔진으로 각광받고 있는 DuckDB는 기존 표준 SQL의 번거로움을 해결해주는 강력한 'Syntactic Sugar(편의 문법)'를 제공합니다.


1. CREATE OR REPLACE TABLE (기존 테이블 삭제하고 생성하기)

  • DuckDB: CREATE OR REPLACE TABLE 테이블이름 ...
  • 용도: 테이블 생성시 테이블 명이 동일한 테이블이 있으면 삭제 후 테이블 생성.
CREATE TABLE tbl (a char(1) PRIMARY KEY, b char(1));
CREATE OR REPLACE TABLE tbl (a INTEGER PRIMARY KEY, b INTEGER);

2. INSERT OR REPLACE INTO (기존 데이터 삭제하고 데이터 삽입)

  • DuckDB: INSERT OR REPLACE INTO 테이블명 ...
  • 용도: 기존 테이블에 데이터 삽입시 기본키가 중복되는 데이터가 있을 경우 기존 데이터를 삭제하고 삽입.
INSERT INTO tbl  VALUES (1, 300);
INSERT OR REPLACE INTO tbl VALUES (1, 500);

3. INSERT INTO … BY NAME (열 이름 기반 데이터 삽입)

  • DuckDB: INSERT INTO ... BY NAME ...
  • 용도: 데이터 삽입시 위치가 달라도 열 이름이 동일한 열로 데이터 삽입
INSERT INTO tbl BY NAME (SELECT 42 AS b, 32 AS a);
INSERT INTO tbl BY NAME (SELECT 22 AS b);

4. INSERT OR IGNORE INTO (삽입시 오류 미발생)

  • DuckDB: SELECT DISTINCT ON (기준컬럼) *
  • 용도: 데이터를 삽입할 때 기본키 충돌과 같은 오류 발생힌다면 오류를 발생시키지 않고 데이터 삽입하지 않음.
INSERT OR IGNORE INTO tbl VALUES (1, 84);

5. DESC(RIBE) (테이블 요약 정보)

  • DuckDB: DESC 테이블명
  • 용도: 테이블의 각 열에 대한 요약정보 산출.
DESC tbl;

6. SUMMARIZE (테이블 기술통계)

  • DuckDB: SUMMARIZE 테이블명
  • 용도: 테이블 각 열에 대한 기술통계 산출.
SUMMARIZE tbl;

댓글