SQLD - 2024년 54회 기출 복원(데이터 전문가 포럼 + 자체 변형) / 실제 시험은 더 어려울 수 있으니, 문제의 중심 개념 (정답 선택지) 위주로 학습 추천

데이터 모델링에 대한 이해

시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하고 재사용성이 높은 모델링으로 알맞은 것은?

1. 개념적 데이터 모델
2. 물리적 데이터 모델링
3. 논리적 데이터 모델링
4. 데이터베이스 모델링

엔터티의 특징으로 적절하지 않은 것은?

1. 엔터티는 반드시 속성을 가진다.
2. 엔터티는 고유한 식별자를 가진다.
3. 속성이 없는 엔터티가 있을 수 있다.
4. 엔터티는 데이터 저장의 기본 단위이다.

속성의 특징으로 적절하지 않은 것은?

1. 속성에는 기본 속성과 파생 속성이 있다.
2. 속성은 엔터티의 특성을 나타낸다.
3. 파생 속성은 많을수록 좋다.
4. 파생 속성은 다른 속성에서 계산된다.

식별자의 특징으로 적절하지 않은 것은?

1. 주식별자는 엔터티를 고유하게 식별한다.
2. 주식별자의 값은 변경될 수 있다.
3. 식별자는 엔터티의 유일성을 보장한다.
4. 식별자는 최소성 조건을 만족해야 한다.

식별자 관계에 대한 설명으로 적절하지 않은 것은?

1. 비식별자 관계에서 부모와의 관계는 필수 조건이다.
2. 비식별자 관계는 자식 엔터티가 독립적으로 존재할 수 있다.
3. 식별자 관계는 부모 엔터티와 종속적인 관계를 맺는다.
4. 식별자 관계는 부모의 식별자를 자식에게 전달한다.

함수 종속성에 대한 설명으로 적절한 것은? - 일반 속성이 주식별자 전체에 함수적으로 종속될 때, 제2정규형을 만족합니다. (예시) 상품번호에 상품명이 종속되어 있는 경우

1. 일반 속성이 주식별자 전체에 함수 종속성이 있을 때 : 제2정규형

아래의 경우 생성하는 식별자는? 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 갖고 있기 때문에 인위적으로 만든 식별자

1. 복합 식별자
2. 인조 식별자
3. 자연 식별자
4. 외래키

NULL에 대한 설명으로 적절한 것은?

1. NULL에는 연산자를 사용할 수 없다.
2. 바커 표기법에서 NULL 허용 여부를 알 수 없다.
3. IE 표기법에서 NULL 허용 여부를 알 수 있다.
4. NULL은 미지의 값으로 비교가 불가하다.
SQL 기본 및 활용

CTAS 에 대한 설명으로 적절하지 않은 것은?

1. 일부 제약조건은 별도로 추가할 수 있다.
2. 기존 테이블의 구조를 기반으로 한다.
3. 데이터만 복사한다.
4. 제약조건이 모두 복사된다.

View 에 대한 설명으로 적절하지 않은 것은?

1. View는 실제 데이터를 저장하지 않는다.
2. View는 다른 테이블의 데이터를 참조한다.
3. View는 조회 속도를 높이기 위해 사용된다.
4. 컬럼 추가가 될 때 View를 변경하지 않아도 응용프로그램에 영향을 미치지 않는다.

Database의 논리적 업무 최소 단위는?

1. Query
2. 트랜잭션
3. 테이블
4. 레코드

아래의 계층형 쿼리와 결과에 대한 설명으로 적절하지 않은 것은? (조건: emp_no는 하위 사원 번호, mgr_no는 상위 관리자 번호를 나타냄) CONNECT BY Prior emp_no = mgr_no

1. 역방향이다
2. 순방향이다
3. 상위 관리자부터 조회한다
4. 계층 구조를 조회한다

SQL의 결과가 다른 것은? (조건: Oracle에 한함)

Question Image

1. SELECT * FROM TAB WHERE COL2 IN (2,3)
2. SELECT COL1, COL2, COL3 FROM TAB WHERE COL1 < 5
3. SELECT T.* FROM TAB AS T
4. SELECT * FROM TAB

아래 SQL의 결과로 알맞은 것은? SELECT ..., COALESCE(A, 50 * B, '50')

1. B가 NULL이 아니면 항상 B 값을 반환합니다.
2. A가 NULL이 아닐 경우 A 값을 반환합니다.
3. A와 B가 NULL일 경우 100을 반환합니다.
4. A가 NULL일 경우에는 언제나 50 * B를 반환합니다.

제약 조건에 대한 설명으로 적절하지 않은 것은?

1. FK는 부모 테이블의 기본키를 참조한다.
2. CHECK는 특정 조건을 만족하는 값만 허용한다.
3. PK는 NOT NULL이다.
4. UK는 NOT NULL이다.

아래의 SQL과 같은 결과를 반환하는 SQL은? SELECT * FROM 테이블 A WHERE A.번호 IN (SELECT 번호 FROM 테이블 B WHERE A.성별 = B.성별);

1. SELECT * FROM 테이블 A WHERE EXISTS (SELECT 'X' FROM 테이블 B WHERE A.성별 = B.성별 AND A.번호 = B.번호);

아래의 Window Function 설명에 맞는 것은? 파티션별 윈도우의 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율을 구하는 함수

1. PERCENT_RANK
2. CUME_DIST
3. DENSE_RANK
4. RANK

아래의 SQL 결과로 알맞은 것은? <sql> SELECT COUNT(*) FROM TABLE_B WHERE COL2 NOT IN (SELECT COL1 FROM TABLE_A); </sql>

Question Image

1. 0 건
2. 전체 건수
3. 1 건
4. NULL 건

아래의 SQL 결과로 알맞은 것은? SELECT * FROM TABLE_B WHERE COL2 IN ('A', 'B', NULL);

Question Image

1. 'A', 'B'
2. 'A' 'B' 'C' NULL
3. 'A', 'B', NULL

아래의 SQL 결과로 알맞은 것은? SELECT 나이_그룹, AVG(나이) AS 평균_나이 FROM 테이블명 GROUP BY 나이_그룹;

Question Image

1. 10, 20, 25
2. 10, 20, NULL
3. 10, 20, 30
4. 10, 20, 20

아래의 SQL 에서 7780 번의 결과는? SELECT EMPLOYEE_ID, ROW_NUMBER() OVER (ORDER BY SALARY) AS ROW_NUM, RANK() OVER (ORDER BY SALARY) AS RANK_NUM, DENSE_RANK() OVER (ORDER BY SALARY) AS DENSE_RANK_NUM FROM EMPLOYEES;

Question Image

1. 4, 4, 4
2. 4, 4, 3
3. 3, 3, 3
4. 3, 4, 3

강좌번호가 100, 101인 과목을 동시에 듣는 학번을 구하는 SQL로 알맞은 것은?

Question Image

1. SELECT STUDENT_ID FROM Enrollment WHERE COURSE_ID = 100 INTERSECT SELECT STUDENT_ID FROM Enrollment WHERE COURSE_ID = 101;
2. SELECT DISTINCT STUDENT_ID FROM Enrollment WHERE COURSE_ID = 100 AND COURSE_ID = 101;
3. SELECT STUDENT_ID FROM Enrollment GROUP BY STUDENT_ID HAVING COUNT(DISTINCT COURSE_ID) = 2;
4. SELECT STUDENT_ID FROM Enrollment WHERE COURSE_ID IN (100, 101);

아래의 결과를 출력하는 SQL의 빈칸에 적절한 것은? WITH t1 AS ( SELECT * FROM ( SELECT '가' 이름, 90 점수 FROM dual UNION ALL SELECT '나' 이름, 92 점수 FROM dual UNION ALL SELECT '다' 이름, 95 점수 FROM dual UNION ALL SELECT '라' 이름, 95 점수 FROM dual UNION ALL SELECT '마' 이름, 97 점수 FROM dual UNION ALL SELECT '바' 이름, 99 점수 FROM dual ) ) SELECT 이름, 점수, (SELECT (1) FROM t1 t2 WHERE (2)) AS 순위 FROM t1 ORDER BY 순위;

Question Image

1. (1) COUNT(*), (2) T2.점수 = T1.점수
2. (1) COUNT(*) + 1, (2) T2.점수 > T1.점수
3. (1) ROW_NUMBER(), (2) T1.점수 < T2.점수
4. (1) DENSE_RANK() OVER(ORDER BY T2.점수), (2) T2.점수 > T1.점수

아래의 빈칸에 알맞은 것은? 입력, 수정, 삭제한 데이터에 대해 전혀 문제가 없다고 판단됐을 경우 ( ) 명령어로 트랜잭션을 완료할 수 있다.

1. SAVEPOINT
2. SELECT
3. COMMIT
4. ROLLBACK

테이블의 데이터와 종속된 테이블을 지우는 명령어로 알맞은 것은?

1. TRUNCATE
2. DROP / CASCADE
3. DELETE
4. ALTER

오라클에서 행이 2건인 테이블에서 결과가 다른 SQL은?

1. SELECT ... FROM ... WHERE ROWNUM = 2
2. SELECT ... FROM ... WHERE ROWNUM < 3
3. SELECT ... FROM ... WHERE ROWNUM <= 2
4. SELECT ... FROM ... WHERE ROWNUM BETWEEN 1 AND 2

아래 SQL에 대한 설명으로 알맞은 것은? (오라클 기준) create table emp_test as select * from hr.employees; UPDATE emp_test a SET salary = (SELECT salary * 1.1 FROM emp_test b WHERE a.employee_id = b.employee_id AND b.department_id = 60); SELECT * FROM emp_test WHERE department_id = 90;

1. 오류가 발생한다.
2. DEPTNO가 90인 사원들의 월급을 10% 인상하는 쿼리이다.
3. UPDATE emp_test SET salary = salary * 1.1 WHERE department_id = 60; 과 동일한 의미이다.
4. DEPTNO가 60이 아닌 모든 사원들의 월급이 NULL로 수정된다.

아래 SQL의 결과로 알맞은 것은? SELECT COL1, SUM(매출) AS 총매출 FROM ... GROUP BY COL1 ORDER BY 총매출

Question Image

1. 부서1 18000, 부서2 11300
2. 부서2 18000, 부서1 11300
3. 부서1 11300, 부서2 18000
4. 부서2 11300, 부서1 18000

아래의 SQL을 수행했을 때, 최종 결과는? (오라클 기준) CREATE TABLE 테이블명 ( COL1 NUMBER PRIMARY KEY, COL2 NUMBER CHECK (COL2 &gt; 500) ); INSERT INTO 테이블명 (COL1, COL2) VALUES (1, 770); COMMIT; INSERT INTO 테이블명 (COL1, COL2) VALUES (1, 600); UPDATE 테이블명 SET COL2 = 400 WHERE COL1 = 1; SELECT SUM(COL2) FROM 테이블명;

1. 오류 발생
2. 400
3. 770
4. 1370

아래의 SQL에 대한 설명으로 알맞은 것은? SELECT * FROM 고객테이블 WHERE COL1 LIKE 'A%';

1. Alice, Andy, Annie, Adam, alexander, amanda
2. Alice, Andy, Annie, Adam
3. alexander, amanda
4. Bob, Alice, Andy, Annie

아래 SQL의 결과로 알맞은 것은? SELECT COUNT(*) + COUNT(COL1) + COUNT(DISTINCT COL2) FROM 테이블명;

Question Image

1. 9
2. 11
3. 8
4. 10

단일행 함수에 대한 설명으로 적절하지 않은 것은?

1. 여러 인자를 넣을 수 있다.
2. 중첩 사용이 가능하다.
3. GROUP BY에 사용할 수 없다.
4. 각 행에 개별적으로 적용된다.

아래의 SQL 결과를 출력하는 SQL로 알맞은 것은?

Question Image

1. SELECT COL1, LEAD(COL1, 1) OVER (ORDER BY COL1) AS COL2 FROM 테이블명;
2. SELECT COL1, FIRST_VALUE(COL1) OVER (ORDER BY COL1) AS COL2 FROM 테이블명;
3. SELECT COL1, LAG(COL1, 1) OVER (ORDER BY COL1) AS COL2 FROM 테이블명;
4. SELECT COL1, LAST_VALUE(COL1) OVER (ORDER BY COL1) AS COL2 FROM 테이블명;

Inner Join에 대한 설명 중 적절하지 않은 것은?

1. INNER JOIN에서 조인 조건이 없으면 전체 결과가 반환되지 않는다.
2. INNER JOIN은 두 테이블 간의 공통된 값을 가진 행만 반환한다.
3. 조인으로 사용되는 컬럼은 컬럼명이 반드시 같아야 한다.
4. 조인 조건이 여러 개인 경우 AND, OR 등을 사용하여 조건을 결합할 수 있다.

아래 SQL의 결과로 알맞은 것은? SELECT * FROM T1 INNER JOIN T2 ON T1.COL2 = T2.COL2 WHERE 1=1 AND T1.COL3 &gt;= 3 AND T2.COL2 IN ('A', 'B');

Question Image

1. 가 ... , 나 ...
2. 다 ...
3. 나 ...
4. 결과 없음

서브쿼리에 대한 설명으로 적절하지 않은 것은?

1. 서브쿼리는 메인 쿼리의 WHERE 절에 사용될 수 있다
2. 1:M 에 관계일 때 M 레벨로 집계된다
3. 서브쿼리는 여러 행을 반환할 수 있다
4. 서브쿼리의 컬럼은 메인 쿼리에서 사용할 수 없다

아래 SQL에 대한 결과와 같은 것은? SELECT CASE WHEN COL1 = 'X' THEN NULL ELSE COL1 END AS 결과 FROM 테이블명;

1. ISNULL(COL1, 'X')
2. NULLIF(COL1, 'X')
3. COALESCE(COL1, 'X')
4. IF(COL1 = 'X', COL1, NULL)

다음 SQL 중 행의 수가 가장 많은 결과를 반환하는 것은?

Question Image

1. SELECT * FROM TAB1 FULL OUTER JOIN TAB2 ON TAB1.CODE = TAB2.CODE;
2. SELECT * FROM TAB1 INNER JOIN TAB2 ON TAB1.CODE = TAB2.CODE;
3. SELECT CODE FROM TAB1 UNION ALL SELECT CODE FROM TAB2;
4. SELECT * FROM TAB1, TAB2 WHERE TAB1.PCOLOR IN ('노랑', '파랑', '검정') AND TAB2.PSIZE IN ('소', '중', '대');

아래의 설명을 만족하는 SQL로 알맞은 것은? 부서별로 연봉은 오름차순, 연봉이 100 ~ 200 사이인 연봉자 수 구하기

1. SELECT employee_id, salary, COUNT(*) OVER (PARTITION BY department_id ORDER BY salary ROWS BETWEEN 100 PRECEDING AND 200 FOLLOWING) AS salary_count FROM employees;
2. SELECT employee_id, salary, COUNT(*) OVER (PARTITION BY department_id ORDER BY salary RANGE BETWEEN 100 PRECEDING AND 200 FOLLOWING) AS salary_count FROM employees;
3. SELECT employee_id, salary, COUNT(*) OVER (PARTITION BY department_id) AS salary_count FROM employees;
4. SELECT employee_id, salary, COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 100 PRECEDING AND 200 FOLLOWING) AS salary_count FROM employees;

아래의 SQL 결과로 적절한 것은? SELECT * FROM T1 NATURAL JOIN T2;

Question Image

1. 1 A 가 1 , 2 A 가 1, 5 C 다 3
2. 1 A 가 1 A 가 , 2 A 가 1 A 가, 5 C 다 3 C 다
3. 1 A 가 1 , 5 C 다 3
4. 1 A 가 1 A 가 , 5 C 다 3 C 다
해설 보기
Chat GPT 4o mini
메인화면