-
[SQLD]공부6일차_2과목이론양많네...?_241113자격증/SQLD 2024. 11. 13. 00:46반응형
# 최초 등록일 : 2024년 10월 13일 00:45
# 최근 변경일 : 2024년 10월 13일 13:13
# 내용 : 2과목 정리하기SQLD 5일차 공부는 아래에 링크에~
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
반응형'자격증 > SQLD' 카테고리의 다른 글
[SQLD]공부8일차_진짜문제풀이만해보기2_241115 (2) 2024.11.15 [SQLD]공부7일차_진짜문제풀이만해보기_241114 (0) 2024.11.14 [SQLD]공부5일차_1과목마무리!+2과목_241112 (4) 2024.11.12 [SQLD]공부4일차_문제풀면서부족한거채워보기_241109 (2) 2024.11.09 [SQLD]공부3일차_머릿속에넣기_이론정리중_241108 (8) 2024.11.08