본문 바로가기

[자격증] SQLD(SQL개발자)28

제37회 SQL 개발자(SQLD) 합격 후기 1. 자격명 : SQL 개발자(SQLD) 2. 시험일시 : 2020년 5월 31일 (일) 10:00 3. 합격후기 - 제가 했던 학습법 : 개념을 이해하고 직접 실습해보며 SQL문 익히고 마지막에 기출문제 풀었습니다. - 추천 학습법 : 취득목적이면 개념 어느정도 이해하시고 기출문제를 많이 보시면 충분히 합격 할 것 같습니다. 참고사이트 : www.dbguide.net/db.db?cmd=view&boardUid=148404&boardConfigUid=9&categoryUid=216&boardIdx=132&boardStep=1 데이터 전문가 지식포털 DBGuide.net 엔터티 속성 관계 식별자 데이터 모델의 이해 1. 모델링의 이해 가. 모델링의 정의 인류의 가장 보편적인 특징이면서 욕구 중의 하나는 의.. 2020. 7. 14.
[ SQLD ] SQL 최적화 기본 원리 - 3. 조인 수행 원리 [ SQLD ] 3. SQL 최적화 기본 원리 3-3. 조인 수행 원리 1. NL Join 하나의 테이블을 선행테이블로 정하고 조건을 만족하는 행을 찾은 후 나머지 후행 테이블에서 데이터를 찾는다. 선행테이블을 외부테이블이라 하고 후행테이블을 내부테이블이라고 한다. 힌트절 : /*+ ORDERED use_nl */ 방법 ① 선행 테이블에서 조건을 만족하는 행을 찾는다. ② 선행 테이블에서 후행 테이블에 조인 가능한지 인덱스를 찾는다. -> RANDOM ACCES 발생 ③ 후행 테이블에서 조건을 만족하는 행을 찾는다. ④ 만족하는 행을 추출버퍼에 넣는다.2. Sort Merge Join - 두 테이블을 정렬하고 병합하는 조인 - 넓은 범위의 데이터를 처리할 때 이용되던 조인 기법 - 정렬을 이용하기 때문에.. 2020. 5. 30.
[ SQLD ] SQL 최적화 기본 원리 - 2. 인덱스 기본 [ SQLD ] 3. SQL 최적화 기본 원리 3-2. 인덱스 기본 1. 인덱스 (Index) 원하는 데이터를 쉽고 빠르게 검색하는 방법 기본키는 자동으로 인덱스가 생성됨 테이블에 인덱스를 생성하지 않아도 되고 여러 개를 생성해도 된다. 인덱스 생성 CREATE INDEX 인덱스명 ON 테이블명(칼럼명); 1-1 ) 인덱스 구조 (트리 기반 인덱스) Root Block : 가장 상위에 있는 블록 Branch Block : 분기를 목적으로 하며 다음 단계 주소를 가지고 있는 블록 Leaf Block : 인덱스를 구성하는 칼럼의 데이터 , 행의 주소가 있는 레코드 식별자(RID, Record Identifier/Rowid)로 구성 2. 인덱스 스캔 (Index Scan) 2-1) 전체 테이블 스캔 (Inde.. 2020. 5. 30.
[ SQLD ] SQL 최적화 기본 원리 - 1. 옵티마이저와 실행계획 [ SQLD ] 3. SQL 최적화 기본 원리 3-1. 옵티마이저와 실행계획 1. 옵티마이저 SQL을 실행 할 때 최적의 실행 방법을 결정하는 역할 똑같은 결과라도 효율적으로 실행하면 성능이 달라진다. 2. 옵티마이저 종류 2-1) 규칙기반 옵티마이저 옵티마이저를 결정 할 때 우선순위를 정해 놓은 규칙대로 실행계획을 생성하는 방법 우선순위 설명 1 Single row by rowid (ROWID를 통해 하나의 행을 액세스) 2 Single row by cluster join (cluster join을 통해 하나의 행을 액세스) 3 Single row by hash cluster key with unique or primary key (유일한 인덱스나 기본키를 가진 해시 클러스트 키를 통해 하나의 행을 액.. 2020. 5. 30.
[ SQLD ] SQL 활용 - 7. DCL (Data Control Language) (데이터 제어어) [ SQLD ] 2. SQL 활용 2-7. DCL 1. DCL (데이터 제어어) - 테이블 사용자 권한 부여 명령어 GRANT : 권한부여 REVOKE : 권한회수 GRANT 권한 ON 테이블명 TO 유저명; REVOKE 권한 ON 테이블명 TO 유저명; 권한 설명 ALL 모든권한 부여 SELECT SELECT 권한 부여 INSERT INSERT 권한 부여 UPDATE UPDATE 권한 부여 DELETE DELETE 권한 부여 REFERENCES 참조 권한 부여 ALTER ALTER 권한 부여 INDEX 인덱스 생성 권한 부여 GRANT SELECT, INSERT ON 음식점 TO 승큐리티; -> 승큐리티 유저에게 음식점 테이블에 대한 SELECT, INSERT 권한을 부여한다. 2. WITH GRANT.. 2020. 5. 30.
[ SQLD ] SQL 활용 - 6. 윈도우 함수 [ SQLD ] 2. SQL 활용 2-6. 윈도우 함수 1. 윈도우 함수 행과 행관계의 연산 SQL을 쉽게 정의하기 위해 만든 함수 SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ( [PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절] ) FROM 테이블 명; OVER 문구 필수 2. 순위 함수 (RANK Function) 2-1) RANK 함수 순위를 계산하는 함수 동일순위는 동일한 순위 값을 부여한다. SELECT 상호이름,메뉴이름, 음식가격, RANK() OVER (ORDER BY 음식가격 DESC) 비싼_랭킹 FROM 음식점; -> 5위가 없다. 2-2) DENSE_RANK 함수 동일한 순위를 하나의 순위로 생각한다. SELECT 상호이름,메뉴이.. 2020. 5. 30.
[ SQLD ] SQL 활용 - 5. 그룹 함수 [ SQLD ] 2. SQL 활용 2-5. 그룹 함수 1. 그룹함수 합계나 평균값을 계산을 위해 SQL을 UNION, UNION ALL로 묶은 후 1개의 테이블을 여러 번 읽고 다시 재정렬 -> 복잡 그룹 함수를 사용하여 하나의 SQL로 테이블을 한 번만 읽어서 빠르게 원하는 계산 가능 2. ROLLUP 함수 GROUP BY 함수에서 Subtotal을 생성하기 위해 사용 SELECT 음식종류, SUM(음식가격) from 음식점 GROUP BY ROLLUP ( 음식종류); -> 음식종류별로 합계를 출력하라. 테이블 생성 소스 원하시면 댓글로 말씀 해주세요. 3. GROUPING 함수 소계된 결과에는 1을 출력 아닌 결과는 0을 출력 SELECT 음식종류, 메뉴이름, SUM(음식가격), GROUPING(메뉴.. 2020. 5. 30.
[ SQLD ] SQL 활용 - 4. 서브쿼리 (Subquery) [ SQLD ] 2. SQL 활용 2-4. 서브쿼리 (Subquery) 1. 서브쿼리 (Subquery) 메인 쿼리문 안에 또 다른 쿼리문이 있는 것으로 서브쿼리라고 부른다. FROM구에 SELECT문을 쓸 때는 "인라인 뷰" 라고 부른다. 예를들어 한식집에서 메뉴와 음식가게의 평균적인 가격을 보고싶을때 사용한다. SELECT 음식명, 음식가격 , (SELECT AVG(음식가격) FROM 한식) FROM 한식; SELECT 메인쿼리 안 SELECT 서브쿼리를 사용했다. 빨간네모가 서브쿼리이다. 2. 단일 행 서브 쿼리 서브쿼리가 비교 연산자(=, =, )와 함께 사용할 때 결과 건수가 반드시 1건만 조회 3. 다중 행 서브 쿼리 서브쿼리가 비교 연산자(IN, ALL, ANY, EXISTS)와 함께 사용할.. 2020. 5. 29.
[ SQLD ] SQL 활용 - 3. 계층형 질의 [ SQLD ] 2. SQL 활용 2-3. 계층형 질의 1. 계층형 질의 계층형 구조의 데이터를 조회 하는 것으로 트리형태의 계층형 구조를 위에서부터 아래로 탐색하는것 ※계층형 DB (트리구조, 1:N구조, 부모자식구조) 2. 오라클 계층형 질의 SELECT LEVEL,LPAD(' ', 3 * (LEVEL-1)) || 현재번호, 현재번호, 부모번호 FROM CON START WITH 부모번호 IS NULL CONNECT BY PRIOR 현재번호 = 부모번호; LEVEL : 깊이를 나타낸다. ROOT의 깊이 1부터 시작. 위 계층형의 최대깊이는 3이다. MAX(LEVEL) = 3 STAR WITH : 시작조건이며 ROOT를 지정한다. CONNECT BY PRIOR 자식=부모 : 계층구조에서 자식 → 부모방.. 2020. 5. 29.