2026 SQLD 필기 2과목 3장 3~4절 | DDL·DCL·제약조건·권한 — 객관식 10문제
데이터위자드 ·
필기 · 객관식 4지선다
객관식 4지선다입니다. 정답과 해설은 각 문제 아래를 눌러 확인하세요.
문제 1
DDL·DCL·제약조건·권한에서 CREATE·ALTER·DROP에 대한 설명으로 옳은 것은?
- ① ALTER TABLE은 테이블의 구조나 제약을 변경하는 DDL이다.
- ② CREATE는 조회 결과만 정렬한다.
- ③ DROP TABLE은 항상 빈 행 하나를 남긴다.
- ④ UPDATE는 컬럼 자료형을 정의하는 DDL이다.
정답과 해설 보기
정답 ①
CREATE는 객체 생성, ALTER는 구조 변경, DROP은 객체 제거입니다. 행 값을 바꾸는 UPDATE와 열 정의를 바꾸는 ALTER는 다른 범주입니다. 스키마 변경은 의존 객체·권한·데이터 보존에 영향을 줄 수 있으므로 문장 의미를 정확히 읽어야 합니다. DROP TABLE은 행 삭제만 하는 DELETE보다 범위가 큽니다. 복구 가능 여부와 암시적 커밋은 DBMS·설정에 따라 다르므로 모든 제품에서 동일하다고 단정하지 않습니다.
ALTER TABLE은 테이블의 구조나 제약을 변경하는 DDL이다.
문제 2
테이블에 NOT NULL 제약을 추가하는 명령 범주는?
- ① 윈도우 함수
- ② DDL
- ③ TCL만
- ④ SELECT 별칭
정답과 해설 보기
정답 ②
테이블 제약 정의를 바꾸는 구조 변경이므로 DDL입니다.
ALTER TABLE은 테이블의 구조나 제약을 변경하는 DDL이다.
문제 3
DDL·DCL·제약조건·권한에서 PK·UNIQUE·NOT NULL에 대한 설명으로 옳은 것은?
- ① NOT NULL이면 값이 항상 업무상 정확하다.
- ② 기본키에는 NULL을 자유롭게 저장한다.
- ③ 복합 기본키의 각 컬럼은 반드시 각각 유일하다.
- ④ 복합 기본키는 구성 컬럼 조합이 유일해야 한다.
정답과 해설 보기
정답 ④
PRIMARY KEY는 행 식별을 위한 유일성과 NULL 금지를 결합합니다. UNIQUE는 중복을 제한하고 NULL 처리 세부 규칙은 DBMS별로 다를 수 있습니다. NOT NULL은 값의 존재를 강제하지만 값 자체가 업무상 유효한지는 보장하지 않습니다. 전화번호가 존재해야 한다는 규칙과 전화번호가 유일해야 한다는 규칙을 나누어 판단하세요. 복합 기본키는 각 컬럼 하나가 아니라 조합 전체의 유일성을 뜻합니다.
복합 기본키는 구성 컬럼 조합이 유일해야 한다.
문제 4
PK가 (학생번호,과목번호)일 때 학생번호 1이 여러 행에 반복될 수 있는가?
- ① 과목번호를 NULL로 두어야 가능하다.
- ② 절대로 불가능하다.
- ③ 다른 과목과의 조합이면 가능하다.
- ④ PK는 숫자 한 개만 가능하다.
정답과 해설 보기
정답 ③
조합이 유일하면 같은 학생이 여러 과목을 수강하는 행을 저장할 수 있습니다.
복합 기본키는 구성 컬럼 조합이 유일해야 한다.
문제 5
DDL·DCL·제약조건·권한에서 CHECK와 NULL에 대한 설명으로 옳은 것은?
- ① CHECK는 원본 행을 자동 정렬한다.
- ② 외래키가 있으면 모든 숫자 범위도 자동 검증된다.
- ③ CHECK(price>0)와 NOT NULL은 서로 다른 조건을 담당한다.
- ④ CHECK(price>0)은 어떤 경우에도 NULL을 반드시 거부한다.
정답과 해설 보기
정답 ③
CHECK는 행 값의 조건을 검증합니다. SQL의 CHECK는 보통 FALSE를 거부하고 UNKNOWN은 허용하므로 CHECK(price>0)만으로 NULL을 반드시 막는 것은 아닙니다. 필수 값이면 NOT NULL을 함께 정합니다. 범위·상태 코드 등 값 제약과 외래키의 참조 제약을 구분하세요. CHECK 표현식에서 다른 테이블을 조회하는 서브쿼리 허용 여부 등은 제품별 제한이 있으므로 참조 무결성을 대신할 수 있다고 일반화하지 않습니다.
CHECK(price>0)와 NOT NULL은 서로 다른 조건을 담당한다.
문제 6
price를 반드시 양수로 저장하려면 기본적인 제약 조합은?
- ① UNIQUE만
- ② DEFAULT0만
- ③ NOT NULL과 CHECK(price>0)
- ④ CHECK(price>0)만으로 NULL까지 항상 금지
정답과 해설 보기
정답 ③
값의 존재는 NOT NULL, 양수 범위는 CHECK로 나누어 강제합니다.
CHECK(price>0)와 NOT NULL은 서로 다른 조건을 담당한다.
문제 7
DDL·DCL·제약조건·권한에서 DELETE·TRUNCATE·DROP에 대한 설명으로 옳은 것은?
- ① TRUNCATE는 모든 DB에서 반드시 취소 불가다.
- ② DELETE는 WHERE를 사용할 수 없다.
- ③ TRUNCATE의 롤백 가능 여부는 DBMS의 트랜잭션 규칙을 확인해야 한다.
- ④ DROP은 행만 비우고 정의를 항상 유지한다.
정답과 해설 보기
정답 ③
DELETE는 조건을 줄 수 있는 행 삭제, TRUNCATE는 테이블의 전체 행을 비우는 구조적 명령, DROP은 테이블 정의 제거입니다. TRUNCATE의 롤백·트리거·ID 초기화 규칙은 DBMS마다 다릅니다. Oracle에서 TRUNCATE는 DDL의 암시적 커밋 규칙을 고려해야 하고 PostgreSQL에서는 명시적 트랜잭션에서 롤백할 수 있습니다. 따라서 TRUNCATE는 모든 DB에서 취소 불가라는 문장은 부정확합니다.
TRUNCATE의 롤백 가능 여부는 DBMS의 트랜잭션 규칙을 확인해야 한다.
문제 8
조건에 맞는 일부 고객 행만 지우는 명령은?
- ① DELETE FROM customers WHERE ...
- ② ALTER TABLE customers ORDER BY ...
- ③ DROP TABLE customers WHERE ...
- ④ TRUNCATE TABLE customers WHERE ...
정답과 해설 보기
정답 ①
부분 행 삭제는 WHERE가 있는 DELETE로 수행합니다.
TRUNCATE의 롤백 가능 여부는 DBMS의 트랜잭션 규칙을 확인해야 한다.
문제 9
DDL·DCL·제약조건·권한에서 GRANT·REVOKE와 ROLE에 대한 설명으로 옳은 것은?
- ① 권한은 직접 부여와 역할 등 여러 경로로 존재할 수 있다.
- ② REVOKE는 테이블의 모든 행을 삭제한다.
- ③ ROLE은 반드시 사용자 한 명만 포함한다.
- ④ SELECT 권한이면 UPDATE도 언제나 허용된다.
정답과 해설 보기
정답 ①
GRANT는 권한 부여, REVOKE는 권한 회수입니다. ROLE은 여러 권한을 묶어 관리할 수 있습니다. SELECT 권한이 있다고 UPDATE까지 자동 허용되는 것은 아니며 직접 부여와 역할을 통한 권한은 구별해야 합니다. 한 경로의 권한을 회수해도 다른 역할이나 직접 부여로 같은 권한이 남을 수 있습니다. WITH GRANT OPTION 같은 재부여 옵션과 회수 파급은 제품별 규칙을 확인합니다. 최소한의 필요한 권한을 주는 원칙이 관리에 유리합니다.
권한은 직접 부여와 역할 등 여러 경로로 존재할 수 있다.
문제 10
직접 SELECT 권한과 역할의 SELECT 권한을 모두 가진 사용자의 직접 권한만 회수하면?
- ① 반드시 모든 조회가 금지된다.
- ② 역할의 권한 때문에 여전히 조회할 수 있다.
- ③ 자동으로 UPDATE 권한을 얻는다.
- ④ 테이블이 삭제된다.
정답과 해설 보기
정답 ②
다른 부여 경로인 역할에 권한이 남아 있으므로 직접 권한 회수만으로 전체 접근이 차단되지는 않습니다.
권한은 직접 부여와 역할 등 여러 경로로 존재할 수 있다.
범위 확인
2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.
SQLD 전체 목차
과목별 이론
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
단원별 객관식
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
실습
- SQL 학습 실습 1 · 6작업 · SELECT·조건·정렬
- SQL 학습 실습 2 · 6작업 · NULL·COUNT·평균
- SQL 학습 실습 3 · 6작업 · 날짜 범위·문자 조건
- SQL 학습 실습 4 · 6작업 · GROUP BY·HAVING·조건부 합계
- SQL 학습 실습 5 · 6작업 · 조인·행 수·미주문 고객
- SQL 학습 실습 6 · 6작업 · 서브쿼리·EXISTS·NOT EXISTS
- SQL 학습 실습 7 · 6작업 · 순위·동률·고객별 Top N
- SQL 학습 실습 8 · 6작업 · 집합 연산·조건부 피벗·전체 검산
필기 모의고사
예상 모의문제입니다.