728x90

 

 

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 이 되지 않음

  1. SQL 서버의 경우, AUTO COMMIT 꺼두면 UPDATE, CREATE 모두 취소되고 다시 테이블이 생성되지 않음
  2. 오라클은 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 절과 함께 사용하면 집계의 대상이 되는 레코드 범위를 지정할 수 있다

  1. Partition by 와 Group by 는 파티션 분할한다는 점에서 유사
  2. 집계 Window Function(sum, max, min)을 Window절과 함께 사용하면 레코드 범위(집계대상) 지정가능
  3. Window Function 으로 결과 건수 줄지 않음
  4. 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 오름차순 정렬

https://gent.tistory.com/339

 

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 : 정렬 컬럼명, 필수

 

 

연관 링크

 

자료 출처
[SQLD] 34회 기출 문제 ( 50문제 / 정답,해설포함 ) (tistory.com)

yurimac님 pdf 정리 자료

 

728x90
반응형

+ Recent posts