본문 바로가기
728x90

데이터베이스(DB)38

SQLD CBT 사이트 추천 SQLD 를 합격했고 공부하던 중 cbt 사이트가 잘 없어서 문제풀이에 고생이 많았다. 검색하다가 찾은 좋은 cbt 사이트를 공유합니다! https://cbt.youngjin.com/ 이기적 CBT, 영진닷컴 cbt.youngjin.com 2024. 7. 8.
[SQLD 2-3-4] 관리 구문 - DCL DCL (Data Control Language)- 데이터 제어어로 객체에 대한 권한을 부여(GRANT) 하거나 회수(REVOKE) 하는 기능- 테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능권한- 일반적으로 본인(접속한 계정) 소유가 아닌 테이블은 원칙적으로 조회 불가(권한 통제)- 업무적으로 필요시 테이블 소유자가 아닌 계정에 테이블 조회, 수정 권한 부여 가능 # 권한 종류1) 오브젝트(객체) 권한- 테이블에 대한 권한 제어   ex) 특정 테이블에 대한 SELECT, INSERT UPDATE, DELETE, MERGE 권한- 테이블 소유자는 타 계정에 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능 2) 시스템 권한- 시스템 작업(테이블 생성 등) 등을 제어 ex.. 2024. 7. 2.
[SQLD 2-3-3] 관리 구문 - DDL # 데이터 유형  # 제약 조건- 데이터 무결성을 위해 각 컬럼에 생성하는 데이터의 제약 장치- 테이블 생성 시 정의 가능, 컬럼 추가 시 정의 가능, 이미 생성된 컬럼에 제약조건만 추가 가능DDL (Data Definition Laguage)- 데이터 정의어- 데이터 구조 정의(객체 생성, 삭제, 변경) 언어- CREATE(객체 생성), ALTER(객체 변경), DROP(객체 삭제), TRUNCATE(데이터 삭제)- AUTO COMMIT(명령어 수행하면 즉시 저장, 원복 불가)CREATE- 테이블이나 인덱스와 같은 객체를 생성하는 명령어- 테이블 생성 시 테이블명, 컬럼명, 컬럼순서, 컬럼크기, 컬럼의 데이터타입 정의 필수- 테이블 생성 시 각 컬럼의 제약조건 및 기본값은 생략 가능- 테이블 생성 시 .. 2024. 6. 21.
[SQLD 2-3-2] 관리 구문 - TCL TCL (Transaction Control Language)- 트랜잭션 제어어로 COMMIT, ROLLBACK 이 포함됨- DML 에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어- DML 수행 후 트랜잭션을 정상 종료하지 않는 경우 LOCK 발생할 수 있음 # 잠금 (LOCK)- 트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한- 잠금이 걸린 데이터는 잠금을 실행한 트랜잭션만이 접근 및 해제 가능(관리자 권한 계정 제외) 트랜잭션- 트랜잭션은 데이터베이스의 논리적 연산 단위(하나의 연속적인 업무 단위)- 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함- 분할 할 수 없는 최소의 단위- ALL OR NOTHING 개념(모두 COMMIT 하거나.. 2024. 6. 20.
[SQLD 2-3-1] 관리 구문 - DML DML (Data Manipulation Language)- 데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)- 저장(Commit) 혹은 취소(Rollback) 반드시 필요 # INSERT- 테이블에 행을 삽입할 때 사용- 한 번에 한 행만 입력가능(SQL Server 여러 행 동시 삽입 가능)- 하나의 컬럼에는 한 값만 삽입 가능- 컬럼별 데이터타입과 사이즈에 맞게 삽입- INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능. 작성하지 않은 컬럼은 NULL 이 입력됨- 전체 컬럼에 대한 데이터 입력 시 테이블명 뒤의 컬럼명 생략 가능# 문법INSERT INTO 테이블 VALUES(값1, 값, ...); -- 전체 컬럼의 값을 입력INSERT INTO 테이블(컬.. 2024. 6. 18.
[SQLD 2-2-8] SQL 활용 - 정규 표현식 정규 표현식(Regular Expression)- 문자열의 공통된 규칙을 보다 일반화 하여 표현하는 방법- 정규 표현식 사용 가능한 문자함수 제공(regexp_replace, regexp_substr, regexp_instr, ...)  ex) 숫자를 포함하는, 숫자로 시작하는 4 자리, 두번째 자리가 A 인 5 글자 정규 표현식 종류REGEXP_REPLACE- 정규식 표현을 사용하여 문자열 내의 패턴을 다른 문자열로 대체 # 문법REGEXP_REPLACE(source_string, pattern, replace_string, position, occurrence, match_parameter)  - source_string : 검색할 문자열- pattern : 대체할 패턴을 정의하는 정규 표현식- re.. 2024. 6. 17.
[SQLD 2-2-7] SQL 활용 - PIVOT 절과 UNPIVOT 절 데이터의 구조# LONG DATA (Tidy data)- 하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조- RDBMS 의 테이블 설계 방식- 다른 테이블과의 조인 연산이 가능한 구조# WIDE DATA (Cross data)- 행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표- 하나의 속성값이 여러 컬럼으로 분리되어 표현- RDBMS 에서 WIDE 형식으로 테이블 설계 시 값이 추가될 때 마다 컬럼이 추가돼야 하므로 비효율적- 다른 테이블과의 조인 연산 불가- 주로 데이터를 요약할 목적으로 사용PIVOT 절- 교차표를 만드는 기능- STACK 컬럼, UNSTACK 컬럼, VALUE 컬럼의 정의가 중요!- FROM 절에 SATCK, UNSTACK, VALUE 컬럼명만 정의 .. 2024. 6. 15.
[SQLD 2-2-6] SQL 활용 - 계층형 질의와 셀프 조인 계층형 질의 (Hierarchical Query)- 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 계층형 질의를 사용- 계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다.  예를 들어, 사원 테이블에서는 사원들 사이에 상위 사원(관리자)과 하위 사원 관계가 존재하고 조직 테이블에서는 조직들 사이에 상위 조직과 하위 조직 관계가 존재한다.  엔티티를 순환관계 데이터 모델로 설계할 경우 계층형 데이터가 발생한다.순환관계 데이터 모델의 예로는 조직, 사원, 메뉴 등이 있다. Oracle 계층형 질의- START WITH 절은 계층 구조 전개의 시작위치를 지정하는 구문. 즉, 루트 데이터를 지정한다.(액세스) - CONNECT BY 절은 다음에 전개될 자식 데.. 2024. 6. 14.
[SQLD 2-2-5] SQL 활용 - Top N 쿼리 TOP N QUERY- 페이징 처리를 효과적으로 수행하기 위해 사용- 전체 결과에서 특정 N개 추출예) 성적 상위자 3명 TOP-N 행 추출 방법1. ROWNUM2. RANK3. FETCH # ROWNUM- 출력된 데이터 기준으로 행 번호 부여- 절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없음(= 연산 불가)- 첫번째 행이 증가한 이후 할당되므로 '>' 연산 사용 불가(0 은 가능) # 예) 상위 3개의 급여를 가진 직원을 선택할 시SELECT *FROM ( SELECT ROWNUM, name, salary FROM employees ORDER BY salary DESC)WHERE ROWNUM  ROWNUM은 정렬된 결과에 번호를 매기기 전에 번호를 할당하므로, 서브.. 2024. 6. 13.
728x90