데이터 엔지니어링/SQL
-
Oracle PIVOT과 UNPIVOT 쿼리 사용법과 예제 🌟데이터 엔지니어링/SQL 2024. 12. 11. 20:40
Oracle의 **PIVOT**과 **UNPIVOT**는 데이터를 가로와 세로 형태로 변환하는 데 사용됩니다. 특히, 집계 데이터를 테이블로 표현하거나, 열 데이터를 행으로 변환할 때 매우 유용합니다.1. PIVOT과 UNPIVOT의 개념1) PIVOT행 데이터를 열 데이터로 변환합니다.주로 집계 함수와 함께 사용하여 데이터를 요약하거나 테이블을 재구성합니다.2) UNPIVOT열 데이터를 행 데이터로 변환합니다.여러 열에 분리된 데이터를 단일 열로 통합하는 데 유용합니다.2. PIVOT 사용법과 예제기본 구조:SELECT * FROM ( SELECT , , FROM ) PIVOT ( () FOR IN (, , ...));예제 1: 월별 매출 데이터를 열로 변환샘플 테이블: ..
-
ORACLE 계층형 쿼리(Hierarchical Query)란? (CONNECT BY, START WITH, LEVEL, SYS_CONNECT_BY_PATH, PRIOR)데이터 엔지니어링/SQL 2024. 12. 11. 20:36
Oracle의 계층형 쿼리는 데이터베이스 테이블에 계층 구조(Hierarchy)가 있는 데이터를 처리할 때 사용됩니다. 예를 들어, 직원 테이블에서 상사와 부하 직원 관계, 제품 카테고리의 상위/하위 관계 등을 계층적으로 표현할 수 있습니다.Oracle에서는 계층형 쿼리를 작성하기 위해 CONNECT BY 및 START WITH 절을 사용하며, LEVEL, SYS_CONNECT_BY_PATH 같은 함수로 계층 정보를 조작할 수 있습니다.주요 키워드 및 기능CONNECT BY부모-자식 관계를 정의합니다.연결 조건을 지정하여 계층 구조를 설정합니다.START WITH계층 쿼리를 시작할 루트 노드를 정의합니다.LEVEL계층의 깊이를 나타내는 가상 열로, 루트는 LEVEL=1입니다.SYS_CONNECT_BY_P..
-
Oracle 문자열 분리 Split: 방법과 활용 예시데이터 엔지니어링/SQL 2024. 11. 15. 22:20
Oracle에서 데이터를 다룰 때 문자열을 특정 구분자로 분리해야 하는 경우가 자주 발생합니다. 특히 쉼표(,), 세미콜론(;), 또는 공백과 같은 구분자를 기준으로 데이터를 나누어 처리하는 것은 데이터 정제와 분석의 필수 과정이죠. 이 글에서는 Oracle에서 문자열을 Split하는 다양한 방법과 함께 실용적인 예제를 공유합니다.1. REGEXP_SUBSTR를 이용한 문자열 SplitOracle 10g부터 제공되는 REGEXP_SUBSTR 함수는 정규 표현식을 사용하여 특정 구분자로 나뉜 문자열을 추출하는 데 유용합니다.예제: 쉼표로 구분된 문자열 분리SELECT REGEXP_SUBSTR('apple,banana,grape', '[^,]+', 1, 1) AS part1, REGEXP_SUB..
-
Oracle에서 INSERT INTO 사용법 및 실용적인 예제 5가지데이터 엔지니어링/SQL 2024. 11. 15. 21:27
데이터베이스를 다루다 보면 새로운 데이터를 추가해야 할 때가 많습니다. 이때 사용하는 기본 SQL 명령어가 바로 **INSERT INTO**입니다. Oracle Database에서 INSERT INTO는 데이터를 테이블에 삽입하기 위한 가장 기본적인 방법입니다. 단일 행에서부터 다중 행, 서브쿼리까지 다양한 방식으로 활용 가능합니다.INSERT INTO 기본 문법1️⃣ 컬럼을 지정하는 방식INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)VALUES (값1, 값2, ...);특정 컬럼에만 값을 지정하며 삽입합니다.컬럼 순서를 지정해 명확성을 높이고, 실수를 방지할 수 있습니다.2️⃣ 컬럼을 생략하는 방식INSERT INTO 테이블명VALUES (값1, 값2, ...);테이블의 모든 컬럼에 값을 넣..
-
DB Isolation(데이터베이스 격리)란?데이터 엔지니어링/SQL 2024. 11. 15. 21:17
데이터베이스 격리(Isolation)는 트랜잭션(transaction)에서 중요한 속성 중 하나로, 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않고 독립적으로 실행되도록 보장하는 메커니즘입니다.이를 통해 데이터 일관성을 유지하고, 동시성 문제를 방지합니다. 격리 수준이 적절히 설정되지 않으면 트랜잭션 간에 충돌이 발생하거나 잘못된 데이터가 읽히는 등의 문제가 생길 수 있습니다.트랜잭션 격리의 중요성트랜잭션은 기본적으로 ACID 속성을 만족해야 합니다:A(Atomicity): 트랜잭션은 모두 성공하거나, 전혀 실행되지 않음.C(Consistency): 트랜잭션이 끝난 후 데이터의 상태가 일관성을 유지함.I(Isolation): 각 트랜잭션이 독립적으로 실행됨.D(Durability): 트랜잭션이 완료..
-
Oracle UPDATE 문 사용법과 다양한 예제 모음데이터 엔지니어링/SQL 2024. 11. 14. 21:59
Oracle에서 UPDATE 문은 테이블의 기존 데이터를 수정할 때 사용됩니다. 기본적으로 UPDATE 문은 특정 조건에 맞는 레코드의 특정 컬럼 값을 업데이트할 수 있습니다. 구문과 함께 다양한 예제를 보여드릴게요.기본 구문UPDATE 테이블명SET 컬럼명 = 값[WHERE 조건];테이블명: 데이터를 수정할 테이블 이름입니다.SET: 수정할 컬럼과 값을 지정합니다.WHERE: 조건에 따라 특정 레코드를 선택합니다. 이 조건이 없으면 모든 레코드가 업데이트되므로 주의가 필요합니다.예제 1: 기본적인 UPDATE 문 사용다음은 employees 테이블에서 employee_id가 100인 직원의 salary를 5000으로 수정하는 예제입니다.UPDATE employeesSET salary = 5000WHER..
-
[Oracle] 오류 해결 ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다.데이터 엔지니어링/SQL 2021. 2. 24. 17:21
회사에서 소스를 돌려 보다가 ORA-00933 이런 에러를 볼 경우가 많은데 이런 경우는 sql 텍스트로 받을 때 내용에서 콤마, 작은 따옴표 등등 문제가 있어서 그런것이다 예를 들어 sql = "" sql += " select " sql += " 1 from dual" sql += " where column1 = ' " + text + " ' " 이런 식으로 작성 하였다면 text 옆에 작은 따옴표를 주시 해야하고 select 옆에 콤마가 잘 들어 가있는지 알아봐야 할것같다.
-
MSSQL 로그파일 트랜잭션 내용 정리 (오류 해결 :트랜잭션 로그가 꽉 찼습니다.)데이터 엔지니어링/SQL 2021. 2. 22. 18:00
로그파일 트랜잭션 오류 해결 방법 모음 1. DB 의 현재 사용량 확인 Use [ DB명] DBCC SQLPERF(LOGSPACE) 로그스페이스 설정값에 대해 확인 SP_HelpDB [DB명] 실제 위치랑 사용량 확인 위에 쿼리 실행시 조회 위에 내용이 조회가 되게 됩니다. 2. MDF (Database File) 파일 용량을 현재 사용량으로 축소 Use [DB명] DBCC SHRINKDATABASE ([DB명], TRUNCATEONLY) 3. MDF (Database File) 파일 용량을 200MB 로 축소 Use [DB명] DBCC SHRINKDATABASE ([DB명], 200) 4. LDF (Log File) 파일 용량을 현재 사용량으로 축소 Use [DB명] DBCC SHRINKFILE ([D..