본문 바로가기

SQL Professional14

[독학! SQLP] SQLP 낙방 후기 지난 토요일(8월 23일) SQLP 시험에 응시했다.결론부터 말하자면, 망했다. 아직 최종 결과는 나오지 않았지만, 실기 문제 2문제에서 거의 손도 못 댔기 때문에 합격은 물 건너갔다...이번 경험을 통해 SQLP 공부방법과 특히 SQLP 실행계획 공부법의 중요성을 뼈저리게 느꼈다.원인 분석SQLP는 SQLD보다 한 과목이 더 있다. 바로 SQL 고급 활용 및 튜닝.문제는 이 과목이 앞선 두 과목을 합친 것보다 훨씬 방대하고 어렵다는 것. 이번 시험 준비의 중점은 개념 학습. “일단 이론부터 잡아야지”라는 생각이었다.그런데 결과적으로는 실전 훈련이 부족했고, 망해버렸다..SQLP 합격 커트라인과 배점 구조SQLP 시험은 총 72문항(총 100점).객관식 70문항 (각 1점)서술형 2문항 (각 15점, 부.. 2025. 8. 25.
[독학! SQLP] 데이터베이스 구조 테이블 스페이스세그먼트를 저장하는 논리적 공간하나 이상의 데이터 파일(Datafile)로 구성데이터 파일실제 OS 레벨 물리 파일세그먼트특정 DB 객체(테이블, 인덱스, 파티션, LOB)에 할당된 익스텐트들의 집합객체 1개 = 세그먼트 1개 원칙테이블 생성시 테이블 세그먼트는 항상 생성인덱스 세그먼트는 PK/UNIQUE 제약조건, 명시적 인덱스 생성이 있을때 생성파티션 세그먼트는 파티션 정의 시 생성테이블 또는 인덱스가 파티션 구조라면 각 파티션이 하나의 세그먼트가 된다.LOB 세그먼트는 LOB 컬럼 존재 시 생성세그먼트 공간이 부족해지면, 테이블 스페이스로부터 익스텐트를 추가로 할당.세그먼트에 할당된 모든 익스텐트가 같은 데이터 파일에 위치하지 않을수 있음. 하나의 테이블 스페이스를 여러 데이터 파일로.. 2025. 8. 21.
[독학! SQLP] 계층 쿼리 계층형 쿼리?정의: 트리(tree) 구조처럼 상위-하위 관계(부모-자식)를 가지는 데이터를 조회하는 SQL 기법대표 문법 (Oracle)SELECT ...FROM tableSTART WITH 조건 -- 루트(최상위) 지정CONNECT BY [NOCYCLE] PRIOR 부모 = 자식 -- 상위-하위 관계ORDER SIBLINGS BY 컬럼 -- 형제 노드 간 정렬예제 데이터 셋-- EMP(사번, 이름, 상사사번, 부서)CREATE TABLE EMP ( EMPNO NUMBER PRIMARY KEY, ENAME VARCHAR2(20), MGR NUMBER NULL, DEPT VARCHAR2(10));INSERT INTO EMP VALUES (100, 'KING' , NULL, 'HQ.. 2025. 8. 20.
[독학! SQLP] 서브쿼리 서브쿼리?정의: 하나의 SQL문 안에 포함된 또 다른 SQL문. SELECT, INSERT, UPDATE, DELETE 등에서 사용 가능.형태: 보통 괄호 ( ) 안에 작성됨.용도: 비교 값 제공, 조건절로 사용, 집계된 값 반환 등.서브쿼리의 종류단일행 서브쿼리결과가 1행 1열WHERE 절에서 사용연산자 : =, , =예시-- 평균 급여보다 큰 사원SELECT ename , sal FROM emp WHERE sal > (SELECT AVG(sal) FROM emp);다중행 서브쿼리결과가 여러행WHERE 절에서 사용연산자 : IN, ANY, ALL, EXISTS예시-- 댈러스 부서 직원SELECT ename , deptno FROM emp WHERE deptno IN (S.. 2025. 8. 20.
[독학! SQLP] 트랜잭션 1. 개념 요약트랜잭션(Transaction):→ ALL or NOTHING (원자성)DB에서 논리적으로 하나의 작업 단위를 구성하는 연산 집합예시은행 이체 (A 계좌 출금 + B 계좌 입금 → 둘 다 성공해야 함)2. 트랜잭션의 4대 성질 (ACID)성질설명포인트A (Atomicity, 원자성)모두 수행되거나 전혀 수행되지 않아야 함“원자 → 쪼갤 수 없다”C (Consistency, 일관성)트랜잭션 전후 DB의 무결성이 유지제약조건, 규칙 만족I (Isolation, 독립성)동시에 수행돼도 각 트랜잭션은 독립적“격리”D (Durability, 영속성)커밋된 데이터는 영구적으로 보존장애 발생해도 유지 3. 트랜잭션 제어 명령어명령어설명COMMIT트랜잭션 확정, 영구 저장ROLLBACK트랜잭션 취소, 원.. 2025. 8. 20.
[독학! SQLP] SQL 조인! 1. EQUI JOIN (= 내부 조인, 등가 조인)정의: 두 테이블의 조인 조건이 = 비교로 이루어진 조인. 가장 기본적인 형식: INNER JOIN … ON A.col = B.col예시SELECT e.empno, e.ename, d.dnameFROM emp eJOIN dept d ON e.deptno = d.deptno;포인트: 시험에서는 “EQUI JOIN = INNER JOIN”을 묻는 경우 多.2. NON-EQUI JOIN정의: 조인 조건이 = 이외(>, 예시 (급여 등급 매칭)SELECT e.ename, e.sal, s.gradeFROM emp eJOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;포인트: 급여 등급, 성적 등 범위 매칭 문제로 출.. 2025. 8. 20.
[독학! SQLP] 그룹핑 쿼리 개념 요약구분설명결과 집합 특징GROUPING SETS여러 GROUP BY 집합을 한 쿼리에서 동시에 수행결과가 UNION ALL과 유사 (각 grouping 별 결과 따로)ROLLUP계층적(위계적) 합계 생성 (→ 부분합 + 총합)n개의 컬럼이면 n+1 단계의 집계CUBE가능한 모든 컬럼 조합의 합계 생성 (→ 다차원 집계)n개의 컬럼이면 2^n 조합 결과예시 SQL & 결과CREATE TABLE Sales ( region VARCHAR(10), product VARCHAR(10), amount NUMBER);INSERT INTO Sales VALUES ('서울', 'A', 100);INSERT INTO Sales VALUES ('서울', 'B', 200);INSERT INTO.. 2025. 8. 20.
[독학! SQLP] 함수 정리! 집계 함수COUNT(*) : NULL 포함 전체 행 수, DISTINCT 키워드 사용 불가.COUNT(expr) : NULL 제외한 행 수SUM([DISTINCT | ALL] expr) : NULL 제외한 합계AVG([DISTINCT | ALL] expr) : NULL 제외한 평균MAX/MIN([DISTINCT | ALL] expr) : NULL 제외한 최대값 / 최소값. 숫자·문자·날짜 모두 가능.STDDEV(expr) : NULL 제외한 표준편차VARIANCE(expr) : NULL 제외한 분산단일행 문자형 함수LOWER(str) / UPPER(str) / INITCAP(str)소문자 / 대문자 / 단어의 첫글자만 대문자SELECT LOWER('SQLP') -- sqlp : 소문자로 .. 2025. 8. 20.
[독학! SQLP] NULL에 관하여! NULL의 기본 개념NULL ≠ 공백, NULL ≠ 0집계 함수에서는 NULL 값이 연산 대상에서 제외됨 (SUM, AVG 등).사칙연산에 NULL이 포함되면 결과는 항상 NULL.예: 10 + NULL → NULL비교 연산(=, >, =, 부정 비교 연산(!=, , NOT 칼럼명 =...) 역시 조건 만족하지 않음.조건절에서 NULL 비교 시 반드시 IS NULL 또는 IS NOT NULL 사용.NULL 관련 단일행 함수NVL(표현식 1, 표현식 2) (Oracle) / ISNULL(표현식 1, 표현식 2) (SQL Server) → 표현식1이 NULL이면 표현식 2 반환.NULLIF(표현식 1, 표현식 2)→ 두 값이 같으면 NULL, 다르면 표현식 1 반환.예: NULLIF(10, 10) → NUL.. 2025. 8. 19.
[독학! SQLP] DCL? DDL? DML? TCL? DCL (데이터 제어어, Data Control Language)권한 제어 (사용자 접근 권한, 보안 관련)자동 COMMIT (취소 불가)주요 명령어GRANT : 권한 부여WITH GRANT OPTION : 권한을 받은 사용자가 다른 사용자에게 권한을 다시 부여할 수 있음.REVOKE : 권한 취소CASACASE : 권한을 회수하면, 그 권한을 통해 다른 사용자에게 전파된 권한도 같이 회수RESTRICT : 권한을 회수할 때, 그 권한을 기반으로 다른 사용자에게 부여된 권한이 있으면 REVOKE 불가DDL (데이터 정의어, Data Definition Language)데이터 구조 정의/변경/삭제 언어실행 즉시 자동 COMMIT → 취소 불가주요 명령어CREATE, ALERT, DROP, RENAME, T.. 2025. 8. 19.
[독학! SQLP] 정규형? 정규화? 반정규화? 정규화 (Normalization)정의 : 데이터의 중복을 제거하고, 이상현상을 방지하며, 데이터 일관성을 유지하기 위해 릴레이션을 분해하는 과정목적 : 데이터 중복 제거, 이상현상 방지, 일관성 확보장점 : 삽입 / 삭제 / 갱신 이상 제거 → 데이터 무결성 보장단점 : 테이블 / 조인 수 증가 → 성능 저하 가능키워드 : 무손실 분해, 종속 보존참고무손실 분해(조인): 나눴다가 조인하면 빠짐/중복 없이 원래 그대로. (외래키로 자연조인되게 설계)종속 보존: 원래 규칙(FD)을 분해된 테이블들에서도 그대로 검사 가능.정규형 (Normal Form)1) 1차 정규형 (1NF)모든 칼럼이 한 칸에 하나의 값(원자값)을 가져야 함.반복 칼럼(phone1, phone2 …)이나 콤마로 여러 값을 넣거나 JSO.. 2025. 8. 19.
[독학! SQLP] 학습용 Oracle 설치 가이드 일할 때는 주로 마리아 디비를 쓴다. 그래서 학습용 도로 오라클을 따로 설치했다. 1. 설치Oracle Database 21c XE (Express Edition)으로 설치하기로 결정했다. 가볍고 간단한 버전이지만, 학습에는 무리가 없다고 판단했다.1) 도커 설치docker run -d \ --name oracle-xe \ -p 1521:1521 -p 5500:5500 \ -e ORACLE_PASSWORD=oracle \ gvenzl/oracle-xe:21-slim 2) 설치 확인docker ps | grep oracle-xedocker logs -f oracle-xe 2. 접속 확인호스트 / 포트 : localhost:1521SID : XE계정 : system암호 : oracle → 위에서 -e.. 2025. 8. 19.
[독학! SQLP] 엔터티? 식별자? 속성? 속성값? 도메인? 인스턴스? 관계? 1) 엔터티 (Entity, Table)정의 : 관리할 가치가 있는 실세계의 객체 또는 개념 (사람, 사물, 사건, 장소 등)특징반드시 식별자를 가진다 (유일성)속성(Attribute)들로 구성된다두 개 이상 인스턴스의 집합다른 엔터티와 관계(Relationship)로 연결된다통계/코드성 엔터티는 관계 생략 가능발생 시점 분류기본(키) 엔터티 : 최초 발생, 독립적 존재, 부모 역할 가능 (예: 고객, 상품)중심 엔터티 : 반복되는 행위/상태 관리, 트랜잭션 중심 (예: 주문, 계약)행위 엔터티 : 이벤트/행위를 기록, 로그성 (예: 주문상세, 결제내역, 배송기록)예시 : 고객, 주문, 상품2) 식별자 (Identifier, Key)정의 : 엔터티 내 인스턴스를 유일하게 구분할 수 있는 속성(들)식별자의.. 2025. 8. 18.
[독학! SQLP] 데이터 모델? 데이터 모델링? 데이터 독립성? 1. 데이터 모델링정의: 현실 세계를 데이터베이스에 옮기기 위해 추상화·단순화·정확화 하는 과정목적: 통합적 관점에서 개념(논리) 스키마 설계특징 (3가지)추상화: 현실을 일정 수준으로 단순하게 표현단순화: 누구나 쉽게 이해할 수 있도록 구조화정확화: 데이터 간 의미와 제약조건을 정확히 표현유의사항중복 : 동일 데이터 반복 저장 → 불필요한 저장공간 낭비비유연성 : 변경·확장 어려운 설계비일관성 : 같은 데이터가 서로 다르게 관리2. 데이터 모델정의: 데이터 모델링의 결과물 (= 개념 스키마) 구성요소:엔터티(Entity, 테이블)속성(Attribute, 칼럼)관계(Relationship, PK/FK)제약조건(Constraint, 무결성 제약)3. 스키마 구조 (ANSI 3단계 스키마 구조)(1) 외부 .. 2025. 8. 18.