728x90
1. VIEW에 대한 설명
- 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
- 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 또한, 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다.
- 보안성 : 뷰를 생성할 때 해당 칼럼을 빼고 생성함으로써 사용자에게 정보를 감출 수 있다.
- 물리성 : View는 논리적인 SELECT를 포함하는 OBJECT로 실제 데이터를 저장하지 않는다.
2. 테이블 TAB_A, TAB_B에 INSERT를 한 결과?
- SQL SERVER : IDENTITY[ ( seed, increment ) ]
- seed : 첫 번째 행이 입력될 때의 시작값
- 증가되는 값
- 해당 컬럼에 값을 넣을 경우 Error발생(Error 발생을 막기 위해서는 IDENTITY_INSERT를 OFF로 하면 되나 이런 경우 IDENTITY를 쓴 의미가 없어진다.)
- SQL SERVER의 IDENTITY로 지정된 컬럼에는 값을 넣으면 에러가 난다.
- ORACLE의 CHECK조건을 만족하지 못할 경우 에어가 나나 NULL은 무시된다.
3. Hash Join
- Non Equal Join 사용이 불가능하다. 그냥 Equal Join만 사용가능하다.
- Sort작업이 필요한 경우는 Sort Merge Join을 사용한 경우이다.
- 각 테이블에 INDEX가 반드시 필요하진 않다.
- 일반적으로 작은 테이블을 MEMORY에 올리는 선행 테이블로 사용한다.
4. 가장 효율적으로 아래의 인덱스를 사용할 수 있는 조건절?
- 문자를 숫자형으로 형변환함.
- 예외적으로 LIKE의 경우 COL을 무조건 형변환함, 숫자를 문자로 변환함.
- LIKE의 경우 컬럼을 무조건 문자로 형변환함. 즉, 해당 조건절은 WHERE TO CHAR(COL1) LIKE '2%'로 변형되어 인덱스를 사용하지 못한다.
- IS NOT NULL은 해당 인덱스를 FULL SCAN할 수 있으나 효율이 떨어진다.
- 부정형 비교에는 인덱스를 사용할 수 없다.
5. ORACLE SQL문을 SQL SERVER SQL문으로 바꿔라
- TOP (Expression) [PERCENT] [WITH TIES]
- WITH TIES : ORDER BY 조건 기준으로 TOP N의 마지막 행으로 표시되는 추가 행의 데이터가 같을 경우 N+ 동일 정렬 순서 데이터를 추가 반환하도록 지정하는 옵션(마지막 기준 공통일 경우 모두 출력)
- ROWNUM < 4의 의미는 3건까지 출력이므로 TOP(3)이다.
- WITH TIES를 사용할 경우 동일 데이터가 있을 때 추가 건수가 출력되는 현상이 가능하다.
6. SQL에서 리프데이터 이면 1, 그렇지 않으면 0을 출력하는 키워드로 알맞은 것은?
- CONNECT_BY_ISLEAF : 전개 과정에서 해당 데이터가 리프 데이터이면 1, 그렇지 않으면 0
- CONNECT_BY_ISCYCLE : 전개 과정에서 자식을 갖는데, 해당 데이터가 조상으로 존재하면 1, 그렇지 않으면 0 / 여기서 조상이란 자신으로부터 루트까지의 경록에 존재하는 데이터를 말함.
- SYS_CONNECT_BY_PATH : 하위 레벨의 컬럼까지 모두 표시해준다.
- CONNECT_BY_ROOT : Root노드의 정보를 표시한다.
7. TAB1, TAB2에서 아래의 SQL의 결과 건수는?
- 2, 4, 3, 5, 12
- FULL OUTER JOIN = LEFT OUTER JOIN UNION RIGHT OUTER JOIN
8. WINDOW FUNTION에서의 SQL문?
- RANGE BETWEEN start_point AND end_point
- start_point는 end_point와 같거나 작은 값이 들어간다.
- Default값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW이다.
- UNBOUNDED PRECEDING : start_point에만 들어갈 수 있으며, 파티션의 First Row이다.
- UNBOUNDED FOLLOWING : end_point에만 들어갈 수 있으며, 파티션의 Last Row이다.
- CURRENT ROW : start, end_point둘다 가능하다. 윈도우는 CURRENT ROW에서 start하거나 end한다.
9. SQL문에서 FROM?
- FROM절은 가장 먼저 실행된다.
- FROM절에 사용되는 Subquery를 보통 Inline View라고 한다.
- FROM절은 SELECT절과 항상 짝을 이룬다.
10. 유저와 권한중 권한에 대한 설명
- 사용자가 실행하는 모든 DDL문장은 그에 해당하는 적절한 권한이 있어야만 문장을 실행 할 수 있다.
- 테이블의 소유자는 해당 테이블의 DML 권한을 다른 유저에게 부여할 수 있다.
- 권한 부여를 편리하게 관리하기 위해 만들어진 권한의 집합인 ROLE이 있다.
- DBA 권한은 STSTEM, SYS등의 상위 유저와 그에 해당하는 권한을 가진 경우 부여가 가능하다.
11. 빈칸채우기
- 소문자 / 대문자로 되어 있는 경우 두개의 문자열이 같이 위해서 적용해야 하는 함수인 "UPPER"를 사용한다.
유사 문제
- 이때에는 두개다 대문자이기 때문에 TRIM으로 빈칸을 제거하는게 답이다.
12. 빈칸채우기
- 계층형 쿼리에서 최대 계층의 수를 구하기 위한 문제이다. "MAX(LEVEL)"을 사용하여 최대 계층수를 구한다.
13. 빈칸채우기
- NOT EXISTS의 OUTER JOIN으로의 변형을 묻는 문제이다.
- NOT EXISTS는 OUTER JOIN으로 변경 시 NOT NULL COLUMN에 대한 "IS NULL"체크로 NOT EXISTS를 구현가능하다.
- 따라서 답은 : P.사원번호 IS NULL
유사문제
- WHERE절이 IS NULL이고 FROM절이 비어있으면 "LEFT OUTER"을 이용한다.
14. SQL에 출력되는 ROWS의 갯수는?
- DNAME의 그룹은 3, JOB의 그룹은5개, DNAME,JOB의 그룹은 9개가 형성된다.
'WorkHard > 자격증' 카테고리의 다른 글
[SQLD 개발자] 기출문제 공부(30회) (0) | 2023.03.03 |
---|---|
[SQLD 개발자] 기출문제 공부(30회) (0) | 2023.03.02 |
[SQLD 개발자] 기출문제 공부(21회) (0) | 2023.02.28 |
[SQLD 개발자] 기출문제 공부(21회) (0) | 2023.02.27 |
[SQLD 개발자] 기출문제 공부(21회) (0) | 2023.02.23 |