▣ SQL : Database

    [Oracle] RECURSIVE와 WITH, 재귀적으로 데이터 조회하기 [재귀 쿼리의 활용과 이해]

    - RECURSIVE와 WITH, 재귀적으로 데이터 조회하기 Oracle에서도 MySQL과 같이 재귀 쿼리가 존재한다. Oracle에서의 재귀 쿼리는 다음과 같다. [MySQL] RECURSIVE, 재귀적으로 데이터 조회하기 [재귀 쿼리의 활용과 이해] - RECURSIVE, 재귀적으로 데이터 조회하기 1. RECURSIVE 쿼리란? RECURSIVE 쿼리는 데이터베이스에서 재귀적으로 데이터를 조회하거나 처리하는 데 사용되는 쿼리다. 주로 계층적 데이터 모델이나 트리 yermi.tistory.com WITH -- Anchor Member: 초기 쿼리 부분, 재귀를 시작하는 지점 OrgChart (employee_id, name, manager_id, level) AS ( SELECT employee_id..

    [MySQL] RECURSIVE, 재귀적으로 데이터 조회하기 [재귀 쿼리의 활용과 이해]

    - RECURSIVE, 재귀적으로 데이터 조회하기 1. RECURSIVE 쿼리란? RECURSIVE 쿼리는 데이터베이스에서 재귀적으로 데이터를 조회하거나 처리하는 데 사용되는 쿼리다. 주로 계층적 데이터 모델이나 트리 구조와 같은 데이터를 다룰 때 유용하며, 대표적으로 Common Table Expressions (CTE)를 활용하여 구현된다. - 재귀 쿼리의 활용 계층적 데이터 조회: 조직도, 카테고리 트리 등의 계층적 데이터를 조회할 때 유용 그래프 탐색: 그래프 구조의 데이터를 탐색하고 분석하는 데 활용될 수 있음 계층적 쿼리 연산: 계층적 데이터를 수정하거나 계산할 때 사용될 수 있음 2. 재귀 쿼리의 구성 요소 Anchor Member: 재귀를 시작하는 기본 쿼리. 이 쿼리의 결과가 재귀적으로 ..

    [MySQL] EXPLAIN을 이해하여 쿼리 성능 최적화하기 [MySQL 인덱스 타는지 확인하는 방법]

    - EXPLAIN을 이해하여 쿼리 성능 최적화하기 1. EXPLAIN이란? EXPLAIN은 MySQL 쿼리의 실행 계획을 분석하는 데 사용되는 명령어이며, 쿼리를 실행하는 방식과 각 단계에서 어떤 작업을 수행하는지 볼 수 있다. (Explain을 사용하면 쿼리의 성능을 평가하고 최적화할 수 있다.) EXPLAIN SELECT * FROM table_name WHERE condition; 위 쿼리를 실행하면 아래와 같이 해당 쿼리의 실행 계획을 출력한다. - EXPLAIN 출력 컬럼 별 의미 id: 쿼리 내 단계의 순서 select_type: 쿼리의 유형 (단순 SELECT, UNION 등) table: 접근하는 테이블의 이름 type: 각 테이블에 대한 데이터 액세스 방법 (예: ALL, index 등)..

    [Oracle] 데이터 무결성 제약 조건의 종류 [primary key, unique key, foreign key, NOT NULL, CHECK]

    - 데이터 무결성 제약 조건의 종류 무결성 제약 조건 설명 NOT NULL 열이 NULL을 포함할 수 없음 고유 키(unique key) 테이블의 모든 행에서 고유한 값을 갖는 열 또는 열 조합을 지정 기본 키(primary key) 해당 컬럼 값은 반드시 존재해야 하며 유일해야 함 (UNIQUE, NOT NULL 제약조건을 결합한 형태) 참조 키(foreign key) 한 열과 참조된 테이블의 열 간에 외래 키 관계를 설정하고 시행 CHECK 해당 칼럼에 저장 가능한 데이터 값의 범위나 조건 지정 1. NOT NULL 무결성 제약 조건 해당 컬럼의 값이 NULL을 가질 수 없다는 것을 정의하는 제약 조건 테이블 레벨이 아닌 열 레벨로만 지정 가능하다. NOT NULL 무결성 제약조건이 지정된 칼럼은 반..

    [Oracle] 실무에서 서브쿼리 사용 시 주의사항 [ORA-01427, ORA-00913, ORA-00907 해결방법]

    - 실무에서 서브쿼리 사용 시 주의사항 1. 단일 행 서브쿼리에서 오류가 발생하는 경우 2. 메인쿼리와 서브쿼리 컬럼의 수가 일치하지 않는 경우 3. 서브쿼리 내에서 ORDER BY 절 사용 4. 서브쿼리의 결과가 NULL인 경우