PostgreSQL용 SQL 패턴 라이브러리
요약
본 문서는 PostgreSQL 사용자를 위한 SQL 패턴 라이브러리를 제공하며, 데이터 유효성 검사(이메일, 회사 정보 등), 다른 DB 마이그레이션 방법, CSV 파일 입출력 등의 실용적인 쿼리 모음을 다룹니다. 개발자들이 복잡한 데이터 처리 시 필요한 핵심 SQL 구문을 한 곳에서 참고할 수 있도록 구성되어 있습니다.
핵심 포인트
- 다양한 유형의 데이터(이메일, 회사 정보 등) 유효성 검사 패턴 제공
- MySQL/MariaDB에서 PostgreSQL로 마이그레이션하는 방법 안내
- SELECT 결과를 CSV 파일로 내보내고 다시 테이블에 로드하는 스니펫 포함
- 러시아어 문자 전사 및 이름 기반 성별 판단 등의 고급 기능 지원
🐘 PostgreSQL을 위한 준비된 SQL 쿼리 모음
목차
PostgreSQL에서 CSV 파일 내보내기 및 가져오기 스니펫 (шпаргалка по выгрузке и загрузке CSV файлов в PostgreSQL)
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
[검색 구문으로 단어 시작을 고려하여 엔티티 이름 가져오기] (#как-получить-названия-сущностей-по-поисковой-фразе-с-учётом-начала-слов-поисковые-подсказки)
1. [오타가 있는 단어에 대해 가장 적합한 대체 단어 옵션 가져오기 (오타 수정)?] (#как-для-слова-с-опечаткой-ошибкой-получить-наиболее-подходящие-варианты-слов-для-замены-исправление-опечаток)
1. [트리 및 그래프] (#деревья-и-графы)
1. [각 노드 트리의 조상 및 후손 이름 목록 가져오기 (지역 예시)?] (#как-получить-список-названий-предков-и-наследников-для-каждого-узла-дерева-на-примере-регионов)
1. [그래프에서 순환 관계 가져오기?] (#как-получить-циклические-связи-в-графе?)
1. [그래프에서 순환 관계 방지하기?] (#как-защититься-от-циклических-связей-в-графе?)
1. [4단계 활동 분야의 모든 레벨 이름 가져오기?] (#как-получить-названия-всех-уровней-сферы-деятельности-4-го-уровня)
1. [쿼리 실행 최적화] (#оптимизация-выполнения-запросов)
1. [쿼리 실행 계획 (EXPLAIN)을 시각적인 그래픽 형태로 보는 방법?] (#как-посмотреть-на-план-выполнения-запроса-explain-в-наглядном-графическом-виде?)
1. [IN(...)에 수천 개의 값을 가진 SELECT 쿼리 가속화하기?] (#как-ускорить-select-запросы-c-тысячами-значений-в-in?)
1. [EXPLAIN 쿼리 출력을 다른 쿼리에서 사용하는 방법?] (#как-использовать-вывод-explain-запроса-в-другом-запросе?)
1. [PostgreSQL v10에서 v12로 마이그레이션 후 SELECT 쿼리 가속화하기?] (#как-ускорить-select-запрос-после-переезда-с-postgresql-v10-на-v12?)
1. [SELECT COUNT(*) 쿼리 가속화하기?] (#как-ускорить-select-count-запрос?)
1. [함수를 N천 번 실행하고 속도 측정하는 방법?] (#как-выполнить-функцию-n-тысяч-раз-и-измерить-скорость-выполнения?)
필드 값으로 중복 레코드 가져오기(어떻게 필드 값으로 중복 레코드를 얻을 수 있나요?)
- 쿼리 실행 시간을 결과에서 얻는 방법은 무엇인가요?
- 큰 테이블을 N천 개의 레코드로 분할하는 방법은 무엇인가요?
- 이전 쿼리가 결과를 반환하지 않은 경우 다음 SQL 쿼리를 실행하는 방법은 무엇인가요?
- 레코드를 컬럼 세트로 펼치는 방법은 무엇인가요?
- 하나의 쿼리에서 각 레코드에 대한 총합과 백분율을 얻는 방법은 무엇인가요?
- 생년월일로 나이를 계산하는 방법은 무엇인가요?
- ISO-8601 형식으로 날짜 또는 날짜와 시간을 얻는 방법은 무엇인가요?
- 지구 표면에서 두 지점 간의 거리를 킬로미터 단위로 계산하는 방법은 무엇인가요?
- 주어진 좌표를 기준으로 가장 가까운 주거지를 찾는 방법은 무엇인가요?
- SELECT 쿼리 결과에 대한 대략적인 데이터 볼륨을 계산하는 방법은 무엇인가요?
- NOT IN()의 서브쿼리가 0개의 레코드를 반환하는 이유는 무엇인가요?
- record와 NULL 비교의 특징은 무엇인가요?
- 큰 테이블에서 레코드 개수를 매우 빠르게 얻는 방법은 무엇인가요?
- 재귀 쿼리를 만드는 방법은 무엇인가요?
사용자 데이터 수정 (DML)
- 단일 쿼리로 레코드 추가 또는 업데이트하기 (UPSERT)?
- 중복된 경우 시퀀스 증가 없이
INSERT ... ON CONFLICT ...사용하기? INSERT ... VALUES ...를 통해 행 추가 속도 높이기?- 여러 테이블의 데이터를 수정하고 영향을 받은 레코드의 ID를 단일 쿼리로 반환하는 방법은?
- 연관된 테이블의 데이터를 단일 쿼리로 수정하는 방법은?
- ID를 포함하여, 그 ID 값을 동일한
INSERT쿼리 내 다른 필드에 저장해야 하는 레코드 추가하기는 어떻게 하나요? - 첫 번째 쿼리에서 삽입된 ID를 사용하여 여러 후속 쿼리를 실행하는 방법은?
- UPDATE 쿼리의 데이터가 DB의 데이터와 일치할 경우 레코드를 업데이트하지 않도록 하는 방법은?
- 다른 사람이 이미 수행한 변경 사항을 덮어쓰지 않고 레코드를 업데이트하는 방법은?
- 단일 쿼리로 여러 레코드를 다른 데이터로 업데이트하는 방법은?
- 테이블의 수백만 개 레코드를 모든 레코드를 잠그거나 DB에 부하를 주지 않으면서 업데이트하거나 삭제하는 방법은?
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
PostgreSQL용 SQL 패턴 라이브러리
테이블에서 수만 개의 레코드를 삭제하면서 모든 레코드를 잠그지 않고 DB 부하를 줄이는 방법
- 기존 테이블에 컬럼을 추가하면서 잠금(blocking)을 피하는 방법
- 아직 존재하지 않는 경우 테이블 제약 조건을 추가하는 방법
- 테이블 잠금 없이 외래 키(Foreign Key) 제약 조건을 수정하는 방법
- 레코드 추가 또는 업데이트 시 M개의 가능한 필드 중 N개가 채워졌는지 확인하는 방법
- enum 타입에서 값을 삭제하는 방법
- 전체 DB에서 특정 객체 이름의 모든 언급을 찾는 방법
- 컬럼 타입을
int에서bigint로 변경하는 방법 - 시퀀스 값이 뒤처졌을 때 복구하는 방법
한 필드 중 하나가 NULL일 수 있는 복합 고유 인덱스 생성 방법 {#как-сделать-составной-уникальный-индекс-где-одно-из-полей-может-быть-null}
AI 자동 생성 콘텐츠
본 콘텐츠는 개발 자료 GitHub · 8f242527의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기