시험장 가기 전에 꼭 봐야 할 주관식 문제 모음
들어가며
- 시험에 나올 수 있는 주관식 문제들을 정리해본다.
- 자료 출처 : 노랭이 문제집, SQLD 시험 대비 문제집 등
문제 1
Q. 모델링의 특징 3가지를 쓰시오.
정답 : 단순화, 추상화, 명확화
해설 : 단추명
문제 2
Q. 각 속성이 가질 수 있는 값의 범위를 뜻하는 용어를 쓰시오.
정답 : 도메인(Domain)
해설 : 값의 범위 -> 도메인
문제 3
Q. DCL에 속하는 명령어를 쓰시오.
정답 : GRANT, REVOKE
해설 : DCL은 데이터를 관리(Control)하는 명령어이다. DCL은 그(GRANT), 래(REVOKE)
문제 4
Q. DDL에 속하는 명령어를 쓰시오.
정답 : CREATE, ALTER, DROP, TRUNCATE, RENAME
해설 : DDL은 데이터를 새롭게 정의(Definition)하는 명령어이다. DDL은 크(CREATE), 알(ALTER), 드(DROP), 트(TRUNCATE), 리(RENAME)
문제 5
Q. DML에 속하는 명령어를 쓰시오.
정답 : SELECT, INSERT, UPDATE, DELETE, MERGE
해설 : DML은 데이터를 조작(Manipulation)하는 명령어이다. DML은 세(SELECT), 인(INSERT), 업(UPDATE), 데(DELETE), 머(MERGE)
문제 6
Q. TCL에 속하는 명령어를 쓰시오.
정답 : COMMIT, ROLLBACK, CHECKPOINT(SAVEPOINT)
해설 : TCL은 트랜잭션을 관리(Control)하는 명령어이다. TCL은 커(COMMIT), 롤(ROLLBACK), 체/세(CHECKPOINT/SAVEPOINT)
문제 7
Q. SELECT 할 때 데이터 중복을 제거해주는 키워드를 쓰시오.
정답 : DISTINCT
해설 : SELECT 문에 DISTINCT를 넣을 경우 데이터 중복이 제거된다.
문제 8
Q. 트랜잭션의 특징 3가지를 쓰시오.
정답 : 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)
해설 : 트랜잭션의 특징으로는 A(원자성), C(일관성), I(고립성), D(지속성)이 있다.
▶ 원자성(Atomicity) : 트랜잭션과 관련된 일은 모두 실행되던지 모두 실행되지 않도록 하던지를 보장하는 특성이다.
▶ 일관성(Consistency) : 트랜잭션이 성공했다면, 데이터베이스는 그 일관성을 유지해야 한다. 일관성은 특정한 조건을 두고, 그 조건을 만족하는지를 확인하는 방식으로 검사할 수 있다.
▶ 고립성(독립성, Isolation) : 트랜잭션을 수행하는 도중에 다른 연산작업이 끼어들지 못하도록 한다. 임계 영역을 두는 것으로 달성할 수 있다.
▶ 지속성(Durability) : 성공적으로 트랜잭션이 수행되었다면, 그 결과는 완전히 반영이 되어야 한다. 완전히 반영되면 로그를 남기게 되는데, 후에 이 로그를 이용해서 트랜잭션 수행전 상태로 되돌릴 수 있어야 한다. 때문에 트랜잭션은 로그 저장이 완료된 시점에서 종료가 되어야 한다.
문제 9
Q. 독립성, 편리성, 보안성 하면 떠오르는 것을 쓰시오.
정답 : 뷰(View)
해설 : 뷰는 독(독립성), 편(편리성), 보(보안성)의 특징을 갖는다.
▶ 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
▶ 편리성 : 복잡한 질의를 뷰를 생성함으로써 매번 관련 질의를 길게 작성하는 것이 아닌 단순하게 작성할 수 있다.
▶ 보안성 : 숨기고 싶은 정보가 존재한다면 뷰 생성 시 해당 칼럼을 빼고 생성하여 사용자에 정보를 감출 수 있다.
문제 10
Q. 순위가 1 2 3 3 4 5 ... 일 때 생각나는 함수를 쓰시오.
정답 : DENSE_RANK
해설 : RANK의 경우 1 2 3 3 5 6, DENSE_RANK의 경우 1 2 3 3 4 5
문제 11
Q. 교집합을 구하는 집합 연산자는 무엇인지 쓰시오.
정답 : INTERSECT
해설 : 교집합은 INTERSECT, 차집합은 MINUS
문제 12
Q. SELECT NULLIF('A', 'A') FROM DUAL; 의 결과를 쓰시오.
정답 : NULL
해설 : NULL(expr1, expr2) 함수는 expr1과 expr2이 같을 경우 NULL을 반환한다.
문제 13
Q. SELECT문의 논리적인 수행 순서는 어떻게 되는가?
정답 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
해설 : 프리(FROM) 웨어(WHERE) 구(GROUP BY) 하(HAVING) 세(SELECT) 요(ORDER BY)
문제 14
Q. 부모를 삭제하면 자식도 삭제되는 옵션을 쓰시오.
정답 : CASCADE
해설 : cascade : 폭포처럼 쏟아지는 물 -> 부모가 삭제되면 자식도 연달아 삭제된다.
문제 15
Q. UNION과 UNION ALL의 차이점은 무엇인가?
정답 : UNION은 중복 데이터를 제거한다.
해설 : UNION ALL은 중복 데이터를 모두(ALL) 포함한다.
문제 16
Q. 데이터를 빠르게 조회하기 위해 미리 계산된 값이 저장되는 속성은 무엇인가?
정답 : 파생 속성
해설 : 파생 속성은 다른 속성에 영향을 받아 발생하는 속성으로, 미리 계산된 값이 이에 해당된다.
문제 17
Q. 계층 쿼리에서 형제 노드 간의 정렬을 지정하는 구문은 무엇인가?
정답 : ORDER SIBLINGS BY
해설 : 형제(자매) = SIBLINGS
문제 18 ⭐
Q. 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위를 무엇이라 하는가?
정답 : 속성(Attribute)
해설 : 최소의 데이터 단위 = 속성
출처 : 노랭이 문제집 ⭐
문제 19
Q. SELECT 절에 오는 서브 쿼리는 무엇인지 쓰시오.
정답 : 스칼라 서브쿼리
해설 : scala; 방향의 구별은 없고 하나의 수치만으로 완전히 표시되는
문제 20
Q. 엔티티의 일반 속성 간에는 서로 종속되지 않는 것과 관련된 정규형을 쓰시오.
정답 : 제 3 정규형
해설 : 엔티티의 일반 속성 간에는 서로 종속되지 않는다 -> 제 3 정규형
문제 21
Q. 관계의 표기법에 표현되는 개념 3가지를 쓰시오.
정답 : 관계명, 관계 차수, 관계 선택 사양
해설 : 관계의 표기법 3가지에는 명(관계명) 차(관계 차수) 선사(관계 선택 사양)가 있다.
문제 22
Q. SELECT COALESCE(NULLIF('A', 'A'), 'B') FROM DUAL;의 결과를 쓰시오.
정답 : B
해설 : COALESCE() 함수는 NULL이 아닌 첫 번째 값을 반환한다. NULLIF('A', 'A')의 결과값이 NULL이므로, 결국 B가 반환된다.
문제 23 ⭐
Q. STADIUM 테이블의 이름을 STADIUM_JSC로 변경하는 SQL을 작성하시오. (ANSI 표준 기준)
정답 : RENAME STADIUM TO STADIUM_JSC;
해설 : RENAME old_name TO new_name;
출처 : 노랭이 문제집 ⭐
문제 24
Q. 다양한 권한을 그룹으로 묶어 관리할 수 있는 것을 무엇이라고 하는가?
정답 : ROLE
해설 : 다양한 권한을 그룹으로 묶는다. -> ROLE
문제 25
Q. 사용자에게 권한을 부여하는 명령어는 무엇인가?
정답 : GRANT
해설 : 권한 부여 -> GRANT 명령어 ON 테이블 TO 사용자, (그온투)
권한 회수 -> REVOKE 명령어 ON 테이블 FROM 사용자; (레온프)
문제 26
Q. 카티션 곱을 생성하는 JOIN 방법은 무엇인가?
정답 : CROSS JOIN
해설 : Cartesian Product -> CROSS JOIN
문제 27
Q. SELECT ABS(-3.8) FROM DUAL; 의 결과는 무엇인가?
정답 : 3.8
해설 : ABS()는 절댓값을 반환하는 함수이다.
문제 28
Q. 그룹 함수 3가지를 쓰시오.
정답 : ROLLUP, CUBE, GROUPING SETS
해설 : 그룹 함수로는 롤큐그세가 있다.
문제 29
Q. SELECT FLOOR(12.5) FROM DUAL; 의 결과는 무엇인가?
정답 : 12
해설 : FLOOR() 함수는 내림 함수이고(floor; 바닥), CEIL() 함수는 올림 함수이다. (ceil; 천장)
문제 30
Q. INSERT와 UPDATE를 한 번에 수행할 수 있도록 해주는 명령어는 무엇인가?
정답 : MERGE INTO
해설 : MERGE INTO를 사용하면 INSERT와 UPDATE를 한 번에 수행할 수 있다. MERGE는 DML이다.
MERGE_INTO 변경할테이블 USING ___ ON ___ WHEN MATCHED THEN UPDATE SET 컬럼='값' WHEN NOT MATCHED THEN ___ INSERT VALUES
MERGE INTO dept AS a
USING (SELECT 1 AS dual) AS b
ON (a.deptno = 50)
WHEN MATCHED THEN
UPDATE SET a.dname = 'IT', a.loc = 'SOUTHLAKE'
WHEN NOT MATCHED THEN
INSERT(deptno, dname, loc) VALUES(50, 'IT', 'SOUTHLAKE');
문제 31
Q. INSERT, UPDATE, DELETE(DML)를 잘못 눌렀을 때 원래대로 되돌릴 수 있는 명령어는?
정답 : ROLLBACK
해설 : DDL(CREATE, ALTER, DROP, TRUNCATE, RENAME)을 사용할 경우 자동으로 커밋(Auto Commit)이 된다. DML은 자동으로 커밋이 되지 않는다. ROLLBACK 함수를 사용할 경우 DML을 사용하더라도 원래대로 되돌릴 수 있도록 해준다.
문제 32
Q. 차집합을 구하는 집합 연산자는 무엇인가?
정답 : MINUS
해설 :
문제 33
Q. 순수 관계 연산자를 쓰시오.
정답 : Select, Project, Join, Division
해설 : 순수 관계 연산자로는 셀(Select), 프(Project), 조(Join), 디(Division)가 있다.
문제 34
Q. 이름이 같은 컬럼을 기준으로 EQUI JOIN 하는 것을 무엇이라고 하는가?
정답 : NATURAL JOIN
해설 : NATURAL JOIN은 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 등가조인(EQUI JOIN)을 수행한다.
문제 35
Q. WHERE 절에서 OR과 AND 중 우선순위가 높은 것은?
정답 : AND
해설 : WHERE 절에서 연산자 우선 순위는 () > NOT > AND > OR 순으로 낮아진다.
문제 36
Q. SELECT SIGN(-77) FROM DUAL; 의 결과를 쓰시오.
정답 : -1
해설 : SIGN() 함수는인자가 양수일 경우 1을, 0일 경우 0을, 음수일 경우 -1을 반환한다.
문제 37
Q. COMMIT, ROLLBACK, SAVEPOINT를 묶어서 무엇이라고 하는가?
정답 : TCL(Transaction Control Language, 트랜잭션 제어어)
해설 : TCL은 커롤체(세)
문제 38
Q. COUNT(*)와 COUNT(컬럼명)의 차이점은 무엇인지 쓰시오.
정답 : COUNT(*)은 NULL을 세고, COUNT(컬럼명)은 NULL을 세지 않는다.
해설 : IN(컬럼명) 또한 NULL을 포함시키지 않는다.
문제 39
Q. ORDER BY를 수행할 때 NULL을 맨 끝으로 보내는 옵션은 무엇인가?
정답 : NULLS LAST
해설 : 널들(NULLS)을 마지막(LAST)에
문제 40
Q. DELETE 보다 빠르지만, 로그가 남지 않아 돌이킬 수 없는 명령문은 무엇인가?
정답 : TRUNCATE
해설 : DELETE는 로그를 남기지만, TRUNCATE는 로그를 남기지 않는다. 또한 TRUNCATE는 데이터를 지우고 기본 구조를 유지시킨다.
문제 41
Q. FROM 절에 오는 서브 쿼리는 무엇인가?
정답 : 인라인 뷰(Inline View)
해설 : 위치에 따른 서브 쿼리의 종류
▶ SELECT 절 : 스칼라 서브쿼리
▶ FROM 절 : 인라인 뷰
문제 42
Q. GROUP BY 할 때 사용하는 조건절은 무엇인가?
정답 : HAVING
해설 : GROUP BY 할 때 조건절로 HAVING을 사용한다.
SELECT job, COUNT(*) cnt
FROM emp
WHERE deptno IN ('10', '20', '30')
GROUP BY job
HAVING COUNT(*) > 2; /* 직업(job) 별 직원수가 3명 이상일 경우만 조회 */
문제 43
Q. SELECT CEIL(-2.7) FROM DUAL; 의 결과를 쓰시오.
정답 : -2
해설 : CEIL() 함수는 올림 함수, FLOOR() 함수는 내림 함수이다. -2.7을 올림하면 -3이 아닌 -2가 된다.
문제 44
Q. 날짜형 데이터를 문자형으로 변환하는 함수를 쓰시오.
정답 : TO_CHAR
해설 : TO_CHAR -> to Character
문제 45
Q. 계층 쿼리에서 가장 상위 LEVEL의 값은 무엇인가?
정답 : 1
해설 : 상위 LEVEL의 값은 0이 아닌 1이다. 반드시 기억하자.
문제 46
Q. SELECT SUBSTR('NEXT LEVEL', -5, 3) FROM DUAL; 의 결과를 쓰시오.
정답 : LEV
해설 : SUBSTR(문자열, 시작 위치, 글자수). 시작 위치는 -5로, 'NEXT LEVEL' 문자열의 끝에서 5자리 앞인 L이다. 글자수는 3이므로 LEV가 출력된다.
문제 47
Q. 둘 이상의 속성으로 구성된 식별자를 무엇이라고 하는가?
정답 : 복합 식별자
해설 : 식별자는 유형에 따라 다양하게 분류한다.
① 대표성 여부 : 후보 식별자 / 주식별자(PK) / 보조 식별자 (주식별자, 보조 식별자 ⊂ 후보 식별자)
② 스스로 생성 여부 : 내부 식별자 / 외부 식별자(FK)
③ 단일 속성 여부 : 단일 식별자(1가지 속성) / 복합 식별자(2가지 이상의 속성)
문제 48
Q. 주어진 문자열을 대문자로 변환하는 함수를 쓰시오.
정답 : UPPER
해설 : 소문자 -> 대문자 : UPPER, 대문자 -> 소문자 : LOWER
문제 49 ⭐
Q. 아래 설명을 읽고, 다음 (ㄱ)에 들어갈 단어를 작성하시오.
첫 번째, 데이터모델링을 할 때 정규화를 정확하게 수행한다.
두 번째, 데이터베이스 용량 산정을 수행한다.
세 번째, 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
네 번째, 용량과 트랜잭션의 유형에 따라 (ㄱ)를 수행한다.
다섯 번째, 이력 모델의 조정, PK/FK 조정, 슈퍼 타입/서브 타입 조정 등을 수행한다.
정답 : 반정규화(역정규화)
해설 : 성능을 고려한 데이터 모델링의 순서는 정규화 -> DB 용량 산정 -> 트랜잭션 유형 파악 -> 반정규화(역정규화) -> 이력 모델 조정, PK/FK 조정, 슈퍼 타입/서브 타입 조정이다.
출처 : 노랭이 문제집 ⭐
문제 50 ⭐
Q. 아래 설명에서 데이터 액세스 성능을 향상시키기 위해 적용하는 방법에 대해서 (ㄱ)을 채우시오.
하나의 테이블에 많은 양의 데이터가 저장되면 인덱스를 추가하고 테이블을 몇 개로 쪼개도 성능이 저하되는 경우가 있다. 이때 논리적으로는 하나의 테이블이지만, 물리적으로는 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터 관리 방법도 개선할 수 있도록 적용하는 기법을 ( ㄱ ) 이라고 한다.
정답 : 파티셔닝(Partitioning)
해설 : 논리적으로는 하나의 테이블이지만, 물리적으로는 여러 개의 테이블로 분리하는 기법 -> 파티셔닝
출처 : 노랭이 문제집 ⭐
문제 51 ⭐
Q. 아래 내용에 해당하는 SQL 명령어의 종류를 쓰시오.
논리적인 작업의 단위를 묶어 DML에 의해 조작된 결과를 작업 단위(Transaction)별로 제어하는 명령어인 Commit, Rollback, Savepoint 등이 여기에 해당하며, 일부에서는 DCL(Data Control Language)로 분류하기도 한다.
정답 : 트랜잭션 제어어(TCL)
해설 : 작업 단위(Transaction)별로 제어하는 명령어 -> TCL
출처 : 노랭이 문제집 ⭐
문제 52 ⭐
Q. 4개의 칼럼으로 이루어진 EMP 테이블에서 COMM 칼럼을 삭제하고자 할 때, 아래 SQL 문장의 (ㄱ), (ㄴ)에 들어갈 내용을 기술하시오.
( ㄱ ) TABLE EMP ( ㄴ ) COMM;
정답 : (ㄱ) ALTER (ㄴ) DROP COLUMN
해설 : ALTER 명령을 이용한 컬럼 삭제 -> ALTER TABLE 테이블명 DROP COLUMN 컬럼명
출처 : 노랭이 문제집 ⭐
문제 52 ⭐
Q. 아래의 고객지역 테이블을 대상으로 질의 결과와 같이 거주지와 근무지를 출력하고자 한다. 아래 SQL의 ( ㄱ ) 안에 들어갈 내용을 작성하시오.
[SQL]
SELECT ( ㄱ ) 거주지, 근무지 FROM 고객지역;
정답 : DISTINCT
해설 : DISTINCT는 SELECT 절에서 사용되며, 중복을 제거해주는 역할을 한다.
출처 : 노랭이 문제집 ⭐
문제 53 ⭐
Q. 아래의 고객지역 테이블을 대상으로 질의 결과와 같이 거주지와 근무지를 출력하고자 한다. 아래 SQL의 ( ㄱ ) 안에 들어갈 내용을 작성하시오.
( ㄱ ) 은 데이터베이스의 논리적 연산단위로서 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. ( ㄱ )의 종료를 위한 대표적 명령어로서는 데이터에 대한 변경사항을 데이터베이스에 영구적으로 반영하는 ( ㄴ )과 데이터에 대한 변경사항을 모두 폐기하고 변경 전의 상태로 되돌리는 ( ㄷ )이 있다.
정답 : (ㄱ) 트랜잭션(Transaction) (ㄴ) 커밋(Commit), (ㄷ) 롤백(Rollback)
해설 : 데이터베이스의 논리적 연산 단위 -> 트랜잭션, 영구적 반영 -> 커밋, 변경사항 폐기 -> 롤백
출처 : 노랭이 문제집 ⭐
문제 54 ⭐
Q. 아래의 상품 테이블의 데이터에 대하여 관리자가 아래와 같이 SQL 문장을 실행하여 데이터를 변경하였다. 데이터 변경 후의 상품ID '001'의 최종 상품명을 작성하시오.
[SQL 구문]
BEGIN TRANSACTION; SAVE TRANSACTION SP1; UPDATE 상품 SET 상품명 = 'LCD-TV' WHERE 상품ID = '001'; SAVE TRANSACTION SP2; UPDATE 상품 SET 상품명 = '평면-TV' WHERE 상품ID = '001'; ROLLBACK TRANSACTION SP2; COMMIT;
정답 : LCD-TV
해설 : ROLLBACK TRANSACTION SP2 명령으로 인하여 SAVE TRANSACTION SP2 명령을 입력했었던 순간으로 되돌아간다. 따라서 LCD-TV가 최종 상품명이 된다.
출처 : 노랭이 문제집 ⭐
문제 55 ⭐
Q. 아래의 ( ㄱ ) 에 들어갈 내용을 적으시오.
SQL을 사용하여 데이터베이스에서 데이터를 조회할 때 원하는 데이터만을 검색하기 위해서 SELECT, FROM 절과 함께 ( ㄱ ) 을(를) 이용하여 조회되는 데이터의 조건을 설정하여 데이터를 제한할 수 있다.
정답 : WHERE(절)
해설 : WHERE 절은 SELECT, FROM 절과 함께 쓰이는 조건절이다. 참고로 GROUP BY 절의 조건절로 HAVING을 쓴다.
출처 : 노랭이 문제집 ⭐
문제 56 ⭐
Q. 아래는 SEARCHED_CASE_EXPRESSION SQL 문장이다. 이때 사용된 SEARCHED_CASE_EXPRESSION은 SIMPLE_CASE_EXPRESSION을 이용해 똑같은 기능을 표현할 수 있다. 아래 SQL 문장의 ( ㄱ ) 안에 들어갈 표현을 작성하시오. (스칼라 서브쿼리는 제외함.)
[SEARCHED_CASE_EXPRESSION 문장 사례] SELECT LOC, CASE WHEN LOC = 'NEW YORK' THEN 'EAST' ELSE 'ETC' END as AREA FROM DEPT; [SIMPLE_CASE_EXPRESSION 문장 사례] SELECT LOC, CASE ( ㄱ ) ELSE 'ETC' END as AREA FROM DEPT;
정답 : LOC WHEN 'NEW YORK' THEN 'EAST'
해설 : WHEN LOC = 'NEW YORK' THEN 'EAST' -> LOC WHEN 'NEW YORK' THEN 'EAST'
출처 : 노랭이 문제집 ⭐
문제 57 ⭐
Q. 사원 테이블에서 MGR의 값이 7698와 같으면 NULL을 표시하고, 같지 않으면 MGR을 표시하려고 한다. 아래 SQL 문장의 ( ㄱ ) 안에 들어갈 함수명을 작성하시오.
SELECT ENAME, EMPNO, MGR ( ㄱ )(MGR, 7698) as NM FROM EMP;
정답 : NULLIF
해설 : NULLIF(expr1, expr2) 함수는 expr1과 expr2가 같을 경우 NULL을, 그렇지 않을 경우 expr1을 반환한다.
출처 : 노랭이 문제집 ⭐
문제 58 ⭐
Q. 아래의 각 함수에 대한 설명 중, ( ㄱ ), ( ㄴ ), ( ㄷ )에 들어갈 함수를 차례대로 작성하시오.
( ㄱ )(표현식1, 표현식2) : 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다.
( ㄴ )(표현식1, 표현식2) : 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
( ㄷ )(표현식1, 표현식2) : 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
정답 : (ㄱ) NVL, (ㄴ) NULLIF, (ㄷ) COALESCE
해설 : 단일행 NULL 관련 함수의 종류
▶ NVL(expr1, expr2) : expr1이 NULL이면 expr2 반환, 그렇지 않을 경우 expr1 반환
▶ NVL2(expr1, expr2, expr3) : expr1이 NULL이면 expr3 반환, 그렇지 않을 경우 expr2 반환
▶ ISNULL(expr1, expr2) : expr1이 NULL이면 expr2 반환, 그렇지 않을 경우 expr1 반환
▶ NULLIF(expr1, expr2) : expr1와 expr2이 같으면 NULL 반환, 그렇지 않을 경우 1 반환
▶ COALESCE(expr1, expr2, ...) : expr1, expr2, ... 중에서 NULL이 아닌 최초의 표현식 반환, 모든 표현식이 NULL이면 NULL 반환
출처 : 노랭이 문제집 ⭐
문제 59 ⭐
Q. 아래의 사례1은 Cartesian Product를 만들기 위한 SQL 문장이며 사례1과 같은 결과를 얻기 위해 사례2 SQL 문장의 ( ㄱ ) 안에 들어갈 내용을 작성하시오.
[사례1]
SELECT ENAME, DNAME FROM EMP, DEPT ORDER BY ENAME;
[사례2]
SELECT ENAME, DNAME FROM EMP ( ㄱ ) DEPT ORDER BY ENAME;
정답 : CROSS JOIN
해설 : Cartesian Product(카타시안 곱) -> CROSS JOIN
출처 : 노랭이 문제집 ⭐
문제 60 ⭐
Q. 신규 부서의 경우 일시적으로 사원이 없는 경우도 있다고 가정하고 DEPT와 EMP를 조인하되, 사원이 없는 부서 정보도 같이 출력하도록 할 때, 아래 SQL 문장의 ( ㄱ ) 안에 들어갈 내용을 기술하시오.
SELECT E.ENAME, D.DEPTNO, D.DNAME FROM DEPT D ( ㄱ ) EMP E ON D.DEPTNO = E.DEPTNO;
정답 : LEFT (OUTER) JOIN
해설 : 사원이 없는 부서 정보도 같이 출력하는 건 부서(DEPT) LEFT (OUTER) JOIN 사원(EMP)와 같이 사용했다는 뜻이다. 부서 정보는 무조건 전부 출력되는데 사원이 없을 경우, NULL로 채워져서 출력된다.
출처 : 노랭이 문제집 ⭐
문제 61 ⭐
Q. 다음과 같은 2개의 릴레이션이 있다고 가정하자. student의 기본키는 st_num이고, department의 기본키는 dept_num이다. 또한 student의 d_num은 department의 dept_num을 참조하는 외래키이다. 아래 SQL문의 실행 결과 건수는?
SELECT count(st_name) FROM student s WHERE not exists (SELECT * FROM department d WHERE s.d_num = d.dept_num and dept_name = '전자계산학과');
정답 : 5
해설 : NOT EXISTS ~ dept_name = '전자계산학과' 부분에서 '전자계산학과'가 아닌 학생의 수를 출력하라는 문제임을 파악할 수 있다.
출처 : 노랭이 문제집 ⭐
문제 62 ⭐
Q. 아래와 같은 데이터 상황에서 아래의 SQL을 수행할 경우 정렬 순서상 2번째 표시될 값을 적으시오.
SELECT C3 FROM TAB1 START WITH C2 IS NULL CONNECT BY PRIOR C1 = C2 ORDER SIBLINGS BY C3 DESC;
정답 : C
해설 : 주어진 데이터를 계층 구조로 그려보면 다음과 같다.
A
/ \
B C
/
D
CONNECT BY PRIOR C1 = C2에서 순방향 전개(C2에서 C1으로 이동)임을 파악할 수 있다. 따라서 A -> B -> C -> D 또는 A -> C -> B -> D 순서대로 정렬이 수행되는데, ORDER SIBLINGS BY C3 DESC에서 형제 노드의 경우, 내림차순(DESC)으로 정렬하라는 조건이 있으므로 A -> C -> B -> D 순서대로 정렬이 수행된다. 따라서 2번째 표시될 값은 C이다.
출처 : 노랭이 문제집 ⭐
문제 63 ⭐
Q. 아래 결과를 얻기 위한 SQL문에서 ( ㄱ ) 에 들어갈 함수를 작성하시오.
[SQL문]SELECT 구매고객, 구매월, COUNT(*) "총 구매건", SUM(구매금액) '총 구매액' FROM 구매이력 GROUP BY ( ㄱ )(구매고객, 구매월)
정답 : ROLLUP
해설 : 문제에서 주어진 결과를 보면 (구매고객, 구매월), (구매고객, NULL), (NULL, NULL)이 표현되어 있다. 이처럼 (A, B), (A, NULL), (NULL, NULL)과 같이 표현될 경우 ROLLUP 함수가 쓰인 것이다. (참고로 CUBE 함수의 경우 (A, B), (A, NULL), (NULL, B), (NULL, NULL)와 같이 표현된다.)
출처 : 노랭이 문제집 ⭐
문제 64 ⭐
Q. 아래 설명 중, ( ㄱ ), ( ㄴ ) 에 해당하는 내용을 작성하시오.
DBMS에 생성된 USER와 다양한 권한들 사이에서 중개 역할을 할 수 있도록 DBMS에서는 ROLE을 제공한다. 이러한 ROLE을 DBMS USER에게 부여하기 위해서는 ( ㄱ ) 명령을 사용하며, ROLE을 회수하기 위해서는 ( ㄴ ) 명령을 사용한다.
정답 : (ㄱ) GRANT, (ㄴ) REVOKE
해설 : ROLE을 DBMS에 부여 -> GRANT, ROLE을 DBMS에서 회수 -> REVOKE
출처 : 노랭이 문제집 ⭐
문제 65 ⭐
Q. 아래의 ( ㄱ ) 에 들어갈 내용을 쓰시오.
DBMS에 사용자를 생성하면 기본적으로 많은 권한을 부여해야 한다. 많은 DBMS에서는 DBMS 관리자가 사용자별로 권한을 관리해야 하는 부담과 복잡함을 줄이기 위하여 다양한 권한을 그룹으로 묶어 관리할 수 있도록 사용자와 권한 사이에서 중개 역할을 수행하는 ( ㄱ ) 을 제공한다.
정답 : ROLE
해설 : 다양한 권한을 그룹으로 묶는다. -> ROLE
문제 66 ⭐
Q. 아래 ( ㄱ )에 해당하는 내용을 작성하시오.
테이블 및 인덱스 등의 통계 정보를 활용하여 SQL문을 실행하는데 소요될 처리시간 및 CPU, I/O 자원량 등을 계산하여 가장 효율적일 것으로 예상되는 실행 계획을 선택하는 옵티마이저를 ( ㄱ ) 라 한다.
정답 : 비용 기반 옵티마이저(CBO)
해설 : 통계 정보 활용 옵티마이저 -> 비용 기반 옵티 마이저(CBO)
참고로 규칙 기반 옵티마이저(RBO)는 규칙(우선 순위)을 활용한다.
문제 67 ⭐
Q. 아래 실행 계획의 실행 순서에 맞게 ( ㄱ ), ( ㄴ ), ( ㄷ ) 을 작성하시오.
1 NESTED LOOPS 2 HASH JOIN 3 TABLE ACCESS (FULL) TAB1 4 TABLE ACCESS (FULL) TAB2 5 TABLE ACCESS (BY ROWID) TAB3 6 INDEX (UNIQUE SCAN) PK_TAB3 ( ㄱ ) → ( ㄴ ) → ( ㄷ ) → 6 → 5 → 1
정답 : (ㄱ) 3, (ㄴ) 4, (ㄷ) 2
해설 : 실행 계획 순서는 위에서 아래로, 안에서 밖으로
'Certificate > SQLD' 카테고리의 다른 글
[SQLD 시험 대비] 노랭이 문제 풀이 ⑤ : SQL 최적화 기본 원리 (0) | 2023.03.13 |
---|---|
[SQLD 시험 대비] 노랭이 문제 풀이 ④ : SQL 활용 (1) | 2023.03.13 |
[SQLD 시험 대비] 노랭이 문제 풀이 ③ : SQL 기본 (3) | 2023.03.12 |
[SQLD 시험 대비] 노랭이 문제 풀이 ② : 데이터 모델과 성능 (0) | 2023.03.11 |
[SQLD 시험 대비] 노랭이 문제 풀이 ① : 데이터 모델링의 이해 (0) | 2023.03.11 |