30번
ORACLE과 SQL SERVER(MS SQL)의 COMMIT
오라클의 경우 DDL은 autocommit true false 보다 윗개념으로 쿼리문 실행되면 바로 커밋이 된다
auto commit false로 설정 영향x
Oracle 의 경우
기본 값이 auto commit off
ddl 이 일어날 경우 묵시적 commit이 됨 (설정 불가)
Sql Server 의 경우
기본 값이 auto commit on
false 가 될 경우 ddl 도 묵시적 commit 이 되지 않음
- SQL 서버의 경우, AUTO COMMIT 꺼두면 UPDATE, CREATE 모두 취소되고 다시 테이블이 생성되지 않음
- 오라클은 DDL의 AUTO COMMIT이 기본이기 때문에 CREATE 취소되지 않고, UPDATE도 취소 X
34번
테이블명 & 컬럼명 규칙
1)테이블명 네이밍
테이블 명은 다른 테이블의 이름과 중복x
반드시 문자로 시작해야한다
- A-Z , a-z , 0-9 , _ , $ , #만 사용 가능
2)컬럼명 네이명
테이블 내의 칼럼명은 중복x
각 컬럼들 , 로 구분되고 ; 로 끝난다.
칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다
반드시 문자로 시작해야한다
- A-Z , a-z , 0-9 , _ , $ , #만 사용 가능
37번
오더바이(ORDER BY) 특징
1)SELECT 구문에 사용되지 않은 컬럼도 OERDER BY 구문에서 사용할 수 있다
2) ORDER BY 1, COL1 과 같이 숫자와 컬럼을 혼용하여 사용할 수 있다
3) ORACLE 은 NULL 을 가장 큰 값으로 취급하여 ORDER BY 시 맨 뒤로 정렬되고 SQL SERVER 반대로 가장 앞으로 정렬한다
39번
Hash Join
Hash Join 은 정렬 작업이 없어 정렬이 부담되는 대량배치작업에 유리
Equal Join(동등 조인)에서만 가능
대용량 처리에 유리
각 테이블에 INDEX가 반드시 필요한 것은 아님
데이터 건수가 적은 테이블을 선행 테이블로 두는 것이 유리
정렬 작업이 없어 정렬이 부담되는 대량배치작업에 유리
40번
최상위 관리자가 나올려면 left outer join 이 되어야 함. 최상위 관리자는 manager_id 가 null 이거나 없기 때문.
41번
INTERSECT
결과의 교집합으로 중복된 행을 하나의 행으로 표시한다
결과의 교집합으로 중복된 행을 모두 포함한다
42번
window function
Sum,max, min 등과 같은 집계 window function을 사용할 때 window 절과 함께 사용하면 집계의 대상이 되는 레코드 범위를 지정할 수 있다
- Partition by 와 Group by 는 파티션 분할한다는 점에서 유사
- 집계 Window Function(sum, max, min)을 Window절과 함께 사용하면 레코드 범위(집계대상) 지정가능
- Window Function 으로 결과 건수 줄지 않음
- group by, Window Function 병행 불가
44번
ORDER SIBLINGS BY
같은 레벨 내에서 정렬
Start with SUPER_ID IS NULL
- (1, NULL, A) 선택(루트 LEVEL1)
CONNECT BY PRIOR ID = SUPER_ID
- ID가 자식 SUPER_ID 가 부모 / ID=2,3은 SUPER_ID=1 의 자식 / ID=4는 SUPER_ID=2의 자식
ORDER SIBLINGS BY 는 같은 레벨 내에서 정렬
- ID=2,3은 둘다 LEVEL=1 이므로 정렬, CODE DESC 코드 뒷순서 부터 정렬
46번
INITCAP
첫 번째 문자만 대문자로 변환
48번
AND OR 우선순위
AND가 OR보다 우선 연산이므로 AND부터 먼저 해주면
SALARY > 200 조건만 만족해서 3임
NOT - AND - OR 순으로 연산
49번
NTILE
전체 건수를 인수값으로 N등분함
https://goldswan.tistory.com/25
NTILE(4) OVER (ORDER BY COL1) AS VAL
FROM SQLD_34_X7
50번
LAG & LEAD
이전 N번째 행을 가져옴
(해당 쿼리를 보면 두번째 이전의 salary 값을 가져오므로 답은 2 가 된다.)
DEPARTMENT_ID 그룹, SALARY 오름차순 정렬
LAG 함수 : 이전 행의 값을 리턴
LEAD 함수 : 다음 행의 값을 리턴
**LAG**(expr [,offset] [,default]) **OVER**([partition_by_clause] order_by_clause)
**LEAD**(expr [,offset] [,default]) **OVER**([partition_by_clause] order_by_clause)
expr : 대상 컬럼명
offset : 값을 가져올 행의 위치 기본값은 1, 생략가능
default : 값이 없을 경우 기본값, 생략가능
partition_by_clause : 그룹 컬럼명, 생략가능
order_by_clause : 정렬 컬럼명, 필수
연관 링크
- 기출 39회 26-50번 https://rise-up.tistory.com/775
- 기출 39회 1-25번 https://rise-up.tistory.com/774
- 기출 38회 1-50번 https://rise-up.tistory.com/764
- 기출 35회 31-50번 https://rise-up.tistory.com/763
- 기출 35회 1-30번 https://rise-up.tistory.com/762
- 기출 34회 30-50번 https://rise-up.tistory.com/761
- 기출 34회 1-29번 https://rise-up.tistory.com/760
- 기출 30회 1-24번 https://rise-up.tistory.com/759
- 기출 30회 25-50번 https://rise-up.tistory.com/758
자료 출처
[SQLD] 34회 기출 문제 ( 50문제 / 정답,해설포함 ) (tistory.com)
yurimac님 pdf 정리 자료
'SQL > SQLD 공부노트' 카테고리의 다른 글
[SQL][SQLD] 기출 35회 31~50번 (0) | 2022.09.13 |
---|---|
[SQL][SQLD] 기출 35회 1~30번 (1) | 2022.09.13 |
[SQL][SQLD] 기출 34회 1~29번 (0) | 2022.09.12 |
[SQL][SQLD] 기출 30회 25~50번 (0) | 2022.09.11 |
[SQL][SQLD] DB모델링 : 기본속성, 설계속성, 파생속성 (0) | 2022.09.11 |