ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD]공부6일차_2과목이론양많네...?_241113
    자격증/SQLD 2024. 11. 13. 00:46
    반응형

    # 최초 등록일 : 2024년 10월 13일 00:45
    # 최근 변경일 : 2024년 10월 13일 13:13

    # 내용 : 2과목 정리하기

     

    SQLD 5일차 공부는 아래에 링크에~

     

    [SQLD]공부5일차_1과목마무리!+2과목_241112

    # 최초 등록일 : 2024년 10월 12일 13:35# 최근 변경일 : 2024년 10월 12일 23:03# 내용 : 1과목 정리하기 + 1과목 문제풀이 공부 4일차는 아래에 링크에~ [SQLD]공부4일차_문제풀면서부족한거채워보기_241109#

    doradorabean.tistory.com

     

    2과목 생각보다 외울 것이 많았다.

    아직 정리되지 않았다니...!! ㅎㅎ

    ------------------------------------------------------------------------------------------------------------------------------

     

    * FETCH절 : 출력될 행의 수를 제한하는 절

      > OFFSET : 건너뛸 행의 수

      > N : 출력할 행의 수

      > FETCH : 출력할 행의 수를 전달하는 구문

      > FIRST : OFFSET을 쓰지 않았을 때 처음부터 N행 출력 명령

      > NEXT : OFFSET을 사용했을 경우 제외한 행 다음부터 N행 출력 명령

      > ROW | ROWS : 행의 수에 따라 하나일 경우, 단수, 여러값이면 복수형 (굳이 구분 X)

     

    * TOP N 쿼리 : 상위 N개 행 추출 문법 + WITH TIES를 사용하여 동 순위까지 함께 출력 가능

     

    * 계층형 질의 : 하나의 테이블 내 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층을 표현하는 기법

      > PRIOR의 위치에 따라 연결하는 데이터가 달라짐

      > START WITH : 데이터를 출력할 시작 지정하는 조건

      > CONNECT BY PRIOR : 행을 이어나갈 조건

      > NOCYCLE : 순환이 발생하면 무한 루프가 될 수 있기 때문에 이를 방지하고자 사용

     

    * 계층형 질의 가상 컬럼

      > LEVEL : 각 DEPTH를 표현(시작점부터 1)

      > CONNECT_BY_ISLEFA : LEAF NODE(최하위노드) 여부(참1 거짓0)

     

    * 계층형 질의 가상 함수

      > CONNECT_BY_ROOT 컬럼명 : 루트노드의 해당하는 컬럼값

      > SYS_CONNECT_BY_PATH(컬럼, 구분자) : 이어지는 경로 출력

      > ORDER SIBLINGS BY 컬럼 : 같은 LEVEL일 경우 정렬 수행

      > CONNECT_BY_ISCYCLE : 계층형 쿼리의 결과에서 순환이 발생했는지 여부

     

    * PIVOT VS UNPIVOT (데이터의 구조를 변경하는 기능)

     

      > LONG DATA (Tidy data) : 하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조 (cf 행으로)

      > WIDE DATA (Cross table) : 행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표, 하나의 속성값이 여러 컬럼으로 분리되어 표현 (cf 컬럼으로 열로)

      > PIVOT : LONG -> WIDE, 교차표를 만드는 기능

        > FROM 절에 STACK, UNSTACK, VALUE 컬럼명만 정의 필요 --> 서브컬럼으로 제한하지 않으면 STACK 컬럼이 많아짐

        > PIVOT절에 UNSTACK, VALUE 컬럼명 정의, IN연산자에 UNSTACK 컬럼 값을 정의

      > UNPIVOT : WIDE -> LONG

        > STACK컬럼 : 이미 UNSTACK되어 있는 여러 컬럼을 하나의 컬럼으로 STACK시 새로 만들 컬럼 이름

        > VALUE컬럼 : 교차표에서 셀 자리값을 하나의 컬럼으로 표현하고자 할 때 새로 만들 컬럼명

        

    * 정규 표현식 : 문자열의 공통된 규칙을 보다 일반화 하여 표현하는 방법, 정규 표현식 사용 가능한 문자함수 제공

     

    * REGEXP_REPLACE : 정규식 표현을 사용한 문자열 치환 가능

      > 바꿀문자열 생략 시 문자열 삭제

      > 검색 위치 생략 시 1

      > 발견 횟수 생략 시 0(모든)

      > 옵션 : c(대소구분), i(대소구분x), m(패턴을 다중라인으로 선언)

     

    * REGEXP_SUBSTR : 정규식 표현식을 사용한 문자열 추출

      > 검색위치 생략 시 1

      > 발견횟수 생략 시 1

      > 추출그룹은 서브패턴을 추출 시 그 중 추출한 서브패턴 번호

     

    * REGEXP_INSTR : 주어진 문자열에서 특정패턴의 시작 위치를 반환

      > 시작위치 생략 시 처음부터 확인(기본값:1)

      > 발견횟수 생략 시 처음 발견된 문자열 위치 리턴

     

    * REGEXP_LIKE : 주어진 문자열에서 특정패턴을 갖는 경우 반환(WHERE절 사용만 가능)

    * REGEXP_COUNT : 주어진 문자열에서 특정 패턴의 횟수를 반환

     

    * DML (Data Manipulation Language) : INSERT, UPDATE, DELETE, MERGE, COMMIT 또는 ROLLBACK 반드시 필요

     

    * INSERT

     

    * UPDATE

     

    * DELETE

     

    * MERGE : 데이터 병합, 참조 테이블과 동일하게 맞추는 작업 (INSERT, UPDATE, DELETE 작업을 동시에 수행)

     

    * TCL(Transaction Control Language) : 트랜잭션 제어어, commit, rollback

      > lock(잠금) : 트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한

      > 트랜잭션: 데이터베이스의 논리적 연산 단위(하나의 연속적인 업무 단위), 분할 할 수 없는 최소의 단위

        > 원자성: 트랜잭션 정의된 연산들 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아있어야함

        > 일관성: 트랜잭션 실행 전 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션 실행 이후에도 데이터베이스 내용의 잘못이 있으면 안됨

        > 고립성: 트랜잭션 실행도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안됨

        > 지속성: 트랜잭션이 성공적으로 수행되면 갱신한 데이터베이스 내용이 영구적으로 저장

      > commit: 데이터를 저장하는 명령어

      > rollback: 데이터 변경을 취소하는 명령어

         > savepoint : 트랜잭션 내에서 롤백을 부분적으로 수행하기 위해 사용되는 지점을 지정하는 데 사용

     

    * DDL(Data Definition Language) : 데이터 정의, CREATE, ALTER, DROP, TRUNCATE(데이터 삭제), Auto commit(즉시 수행, 원복불가)

     

    * CREATE : 테이블이나 인덱스와 같은 객체를 생성하는 명령어, 테이블 생성시 소유자 명시 가능, // 테이블을 복제해서 테이블을 생성할 때, 테이블에 있는 제약조건, INDEX는 복제되지 않음

     

    * ALTER : 테이블 구조 변경, 컬럼순서변경불가

      > 컬럼 추가, 데이터타입변경, 컬럼 사이즈 변경, 컬럼 삭제, 제약조건, Default 값변경

     

    * DROP

     

    * TRUNCATE : 구조 남기고 데이터만 즉시 삭제

     

    ** DELETE / DROP / TRUNCATE 차이

      > 데이터 일부 또는 전체 삭제, 롤백 가능

      > 데이터 전체 삭제만 가능(일부 삭제 불가), 롤백 불가

      > 데이터와 구조를 동시에 삭제, 롤백 불가

     

    * 제약 조건 : 데이터 무결성을 위해 각 컬럼에 생성하는 데이터의 제약 장치

      > 테이블 생성 시 정의 가능, 컬럼 추가 시 정의 가능, 이미 생성된 컬럼에 제약조건만 추가 가능

     

    * PK (기본키) : 유일한 식별자, 중복 허용 X, NULL 허용  X (UNIQUE INDEX, NOT NULL)

     

    * FK : 참조테이블의 참조 컬럼에 있는 데이터를 확인하면서 본 테이블 데이터를 관리할 목적으로 생성

      > 옵션 ON DELETE CASCADE : 부모 데이터 삭제 시 자식 데이터 함께 삭제

      > 옵션 ON DELETE SET NULL : 부모 데이터 삭제 시 자식 데이터의 참조값은 NULL로 수정

     

    * CHECK : 직접적으로 데이터의 값 제한

     

    * 기타 오브젝트

      * 뷰(view): 저장공간을 가지지는 않지만 테이블처럼 조회 및 수정할 수 있는 객체

        > 종류 : 단순뷰, 복합뷰

          > 하나의 테이블 조회 뷰, 둘 이상의 테이블 조인 뷰

        > 특징 : 기본테이블로부터 유도된 테이블이기에 기본 테이블과 같은 형태의 구조, 데이터를 안전하게 보호 가능, 저장공간을 가지지 않음, 기본 테이블을 삭제하면 그 테이블을 참조하는 뷰 역시 삭제됨

        > 장점 : 논리적 독립성을 제공, 데이터의 접근을 제어 함으로써 보안 유지, 사용자의 데이터 관리 단순화, 데이터의 다양한 지원 가능 

        > 단점 : 뷰의 정의 변경 불가, 삽입삭제경신 연산에 제한, 인덱스 구성불가

     

    * SAEQUENCE 시퀀시: 자동으로 연속적인 숫자 부여해주는 객체

     

    * SYNONYM 시노님 : 테이블 별칭 생성

     

    * DCL(Date Control Language) : GRANT, REVOKE, 테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능

     

    * 권한

      > 권한의 종류 : 오브젝트권한, 시스템권한

                             > 테이블에 대한 권한 제어(INSERT, UPDATE...), 시스템 작업등을 제어(테이블생성....)

     

    * GRANT : 권한 부여 시 반드시 테이블 소유자나 관리자 계정으로 접속하여 권한을 부여하여야 함, 동시에 여러 유저에 대한 권한 부여 가능, 동시 여러 권한 부여 가능, 동시 여러 객체 권한 부여 불가

     

    * REVOKE : 동시 여러 권한 회수 가능, 이미 회수된 권한 재회수 불가, 동시 여러 유저로부터의 권한 회수 가능

     

    * ROLE(롤): 권한의 묶음, SYSTEM 계정에서 ROLE 생성 가능

     

    * 권한 부여 옵션 : 중간관리자의 권한

      > WITH GRANT OPTION : 오브젝트 권한을 다른 사용자에게 부여, 중간관리자가 부여한 권한은 중간관리자만 회수 가능, 중간관리자에게 부여된 권한 회수 시 제 3자에게 부여된 권한도 함께 회수됨

      > WITH ADMIN OPTION : 시스템 권한/롤 권한은 다른 사용자에게 부여, 중간관리자를 거치지 않고 직접 회수 가능, 중간관리자 권한 회수시 제 3자에게 부여된 권한도 함께 회수X

    반응형
Designed by Tistory.