SQL 개발자 (SQLD) 관리 구문 핵심정리
26년 11월 1일 검사 완료
관리 구문, 핵심정리
- DML 은 데이터, DDL 은 구조, DCL 은 권한, TCL 은 트랜잭션을 다룹니다.
- 트랜잭션의 4가지 성질은 원자성·일관성·고립성·지속성(ACID)입니다.
- ROLLBACK TO 저장점은 그 저장점 이후의 변경만 취소합니다.
- Oracle 에서 DDL 을 실행하면 그 전까지의 변경이 자동으로 COMMIT 됩니다.
- DELETE 는 행을 지우고 되돌릴 수 있지만, TRUNCATE 는 테이블을 비우는 DDL 로 되돌릴 수 없습니다(Oracle).
- 기본키(PRIMARY KEY)는 NULL 과 중복을 허용하지 않고, UNIQUE 는 중복만 막고 NULL 은 허용합니다.
- 중요도
- ★★★★☆ (4 / 5)
- 출제 비중
- SQL 기본 및 활용 40문항 중 약 8문항 (20%)
데이터를 넣고 고치고 지우는 DML(INSERT·UPDATE·DELETE·MERGE), 트랜잭션을 다루는 TCL(COMMIT·ROLLBACK·SAVEPOINT), 객체를 만드는 DDL(CREATE·ALTER·DROP·TRUNCATE)과 제약조건, 권한을 다루는 DCL(GRANT·REVOKE)을 다룹니다.
📖 관리 구문 개념 정리 더보기 →관리 구문 대표 문제 10개
문제 1. 사용자에게 테이블 조회 권한을 주는 GRANT 문은 SQL 의 어느 종류에 속하는가?
- ① DCL
- ② DML
- ③ DDL
- ④ TCL
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① DCL
핵심: DML=데이터, DDL=구조, DCL=권한, TCL=트랜잭션
SQL 문장은 하는 일에 따라 네 가지로 나뉩니다.
- DML(데이터 조작어): SELECT, INSERT, UPDATE, DELETE, MERGE
- DDL(데이터 정의어): CREATE, ALTER, DROP, RENAME, TRUNCATE
- DCL(데이터 제어어): GRANT, REVOKE — 권한
- TCL(트랜잭션 제어어): COMMIT, ROLLBACK, SAVEPOINT
틀린 선지
- DML: 데이터를 조회·입력·수정·삭제하는 명령입니다.
- DDL: 테이블 같은 객체의 구조를 만들고 바꾸는 명령입니다.
- TCL: COMMIT·ROLLBACK 처럼 트랜잭션을 다루는 명령입니다.
문제 2. 트랜잭션의 성질 가운데 '트랜잭션 안의 작업은 모두 성공하거나 모두 취소되어야 하며, 일부만 반영되어서는 안 된다'는 것은?
- ① 지속성(Durability)
- ② 일관성(Consistency)
- ③ 고립성(Isolation)
- ④ 원자성(Atomicity)
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 원자성(Atomicity)
핵심: ACID: 원자성(전부 아니면 전무)·일관성·고립성·지속성
트랜잭션의 네 가지 성질(ACID)입니다.
- 원자성: 전부 실행되거나 전부 취소됨 (All or Nothing)
- 일관성: 실행 전후에 데이터베이스가 규칙에 맞는 상태를 유지
- 고립성: 실행 중인 트랜잭션이 다른 트랜잭션의 영향을 받지 않음
- 지속성: COMMIT 한 결과는 장애가 나도 영구히 남음
틀린 선지
- 지속성(Durability): 확정된 결과가 영구히 남아야 한다는 뜻입니다.
- 일관성(Consistency): 트랜잭션 전후에 데이터가 규칙(제약조건 등)에 맞아야 한다는 뜻입니다.
- 고립성(Isolation): 동시에 실행되는 트랜잭션끼리 서로 끼어들지 않아야 한다는 뜻입니다.
문제 3. 기본키(PRIMARY KEY)와 UNIQUE 제약조건을 비교한 설명으로 옳은 것은?
- ① 기본키는 중복 값을 허용하고, UNIQUE 는 허용하지 않는다.
- ② 기본키는 NULL 을 허용하지 않지만, UNIQUE 는 NULL 을 허용한다.
- ③ 기본키와 UNIQUE 모두 NULL 을 허용하지 않는다.
- ④ UNIQUE 는 NULL 을 허용하지 않지만, 기본키는 NULL 을 허용한다.
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ② 기본키는 NULL 을 허용하지 않지만, UNIQUE 는 NULL 을 허용한다.
핵심: PK = 중복 X + NULL X, UNIQUE = 중복 X, NULL 허용
- 기본키(PRIMARY KEY): 중복 불가 + NULL 불가. 테이블에 하나만 만들 수 있음
- UNIQUE: 중복 불가, 하지만 NULL 은 넣을 수 있음
둘 다 중복을 막지만 NULL 을 허용하는지가 다릅니다.
틀린 선지
- 기본키는 중복 값을 허용하고, UNIQUE 는 허용하지 않는다: 기본키도 중복을 허용하지 않습니다.
- 기본키와 UNIQUE 모두 NULL 을 허용하지 않는다: UNIQUE 컬럼에는 NULL 을 넣을 수 있습니다.
- UNIQUE 는 NULL 을 허용하지 않지만, 기본키는 NULL 을 허용한다: 반대로 적은 설명입니다.
문제 4. Oracle 에서 비어 있는 테이블 T(N NUMBER)에 다음을 차례로 실행했다. 마지막 SELECT 의 결과는? INSERT INTO T VALUES (1); SAVEPOINT SP1; INSERT INTO T VALUES (2); SAVEPOINT SP2; INSERT INTO T VALUES (3); ROLLBACK TO SP1; INSERT INTO T VALUES (4); COMMIT; SELECT SUM(N) FROM T;
- ① 4
- ② 5
- ③ 7
- ④ 10
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ② 5
핵심: ROLLBACK TO 저장점 = 그 저장점 뒤의 변경만 취소
ROLLBACK TO SP1 은 SP1 을 만든 뒤의 변경만 취소합니다.
- 1 입력 → SP1 → 2 입력 → SP2 → 3 입력
- ROLLBACK TO SP1: SP1 뒤의 2, 3 입력이 취소됨 → 남은 값 1
- 4 입력 → COMMIT → 남은 값 1, 4
- SUM = 1 + 4 = 5
틀린 선지
- 4: ROLLBACK TO SP1 이 1 까지 취소한다고 본 값입니다. 1 은 SP1 전에 넣었으므로 남습니다.
- 7: ROLLBACK TO SP2 를 한 것처럼 2 를 남긴 값(1 + 2 + 4)입니다.
- 10: ROLLBACK 을 하지 않은 것처럼 모두 더한 값입니다.
문제 5. 테이블의 모든 행을 지우고 저장 공간을 처음 상태로 되돌리는 TRUNCATE TABLE 문은 SQL 의 어느 종류에 속하는가?
- ① DML
- ② DCL
- ③ TCL
- ④ DDL
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ DDL
핵심: TRUNCATE 는 DELETE 와 달리 DDL
행을 지운다는 점은 DELETE 와 비슷하지만, TRUNCATE 는 테이블을 처음 만든 상태처럼 비우는 명령이라 DDL 로 분류합니다. 그래서 Oracle 에서는 실행하면 자동으로 COMMIT 되어 ROLLBACK 으로 되돌릴 수 없습니다.
틀린 선지
- DML: 행을 지우는 DELETE 가 DML 입니다. TRUNCATE 는 DDL 입니다.
- DCL: 권한을 주고 빼는 GRANT·REVOKE 가 DCL 입니다.
- TCL: COMMIT·ROLLBACK·SAVEPOINT 가 TCL 입니다.
문제 6. 지금까지 한 데이터 변경을 데이터베이스에 영구히 반영하는 명령은?
- ① COMMIT
- ② GRANT
- ③ SAVEPOINT
- ④ ROLLBACK
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① COMMIT
핵심: COMMIT=확정, ROLLBACK=취소, SAVEPOINT=중간 저장점
COMMIT 은 트랜잭션 안에서 한 변경(INSERT·UPDATE·DELETE)을 확정해 영구히 저장합니다. COMMIT 한 뒤에는 ROLLBACK 으로 되돌릴 수 없습니다.
틀린 선지
- GRANT: 권한을 주는 DCL 명령입니다.
- SAVEPOINT: 트랜잭션 중간에 되돌아갈 저장점을 만듭니다. 변경을 확정하지 않습니다.
- ROLLBACK: 아직 COMMIT 하지 않은 변경을 취소합니다.
문제 7. EMP 테이블에서 DEPTNO 가 10 인 사원의 SAL 을 10% 올리는 SQL 로 옳은 것은?
- ① UPDATE SET SAL = SAL * 1.1 FROM EMP WHERE DEPTNO = 10;
- ② UPDATE EMP SAL = SAL * 1.1 WHERE DEPTNO = 10;
- ③ UPDATE EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10;
- ④ MODIFY EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10;
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ③ UPDATE EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10;
핵심: UPDATE 테이블 SET 컬럼 = 값 WHERE 조건
UPDATE 문의 형식은 UPDATE 테이블 SET 컬럼 = 새 값 WHERE 조건; 입니다. 10% 올리려면 원래 값에 1.1 을 곱합니다.
틀린 선지
- UPDATE SET SAL = SAL * 1.1 FROM EMP WHERE DEPTNO = 10;: UPDATE 바로 뒤에 테이블 이름이 와야 합니다.
- UPDATE EMP SAL = SAL * 1.1 WHERE DEPTNO = 10;: SET 이 빠져 오류가 납니다.
- MODIFY EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10;: 데이터를 고치는 명령은 MODIFY 가 아니라 UPDATE 입니다.
문제 8. 회원 테이블의 '이름' 컬럼에 값이 반드시 들어가도록(빈 값을 막도록) 할 때 쓰는 제약조건은?
- ① FOREIGN KEY
- ② UNIQUE
- ③ CHECK
- ④ NOT NULL
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ NOT NULL
핵심: NOT NULL = 반드시 값 입력, UNIQUE = 중복 금지
NOT NULL 제약조건을 걸면 그 컬럼에 NULL 을 넣을 수 없어 값이 반드시 들어가야 합니다.
틀린 선지
- FOREIGN KEY: 다른 테이블의 기본키를 참조하게 하는 제약조건입니다.
- UNIQUE: 중복을 막을 뿐 NULL 은 허용합니다.
- CHECK: 넣을 수 있는 값의 조건(예: 나이 >= 0)을 정합니다. 빈 값을 막는 데는 NOT NULL 을 씁니다.
문제 9. 사용자 USER1 에게 EMP 테이블을 조회할 수 있는 권한을 주는 SQL 로 옳은 것은?
- ① GRANT SELECT TO USER1 ON EMP;
- ② REVOKE SELECT ON EMP TO USER1;
- ③ GRANT SELECT ON EMP TO USER1;
- ④ GRANT USER1 ON EMP SELECT;
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ③ GRANT SELECT ON EMP TO USER1;
핵심: GRANT 권한 ON 객체 TO 사용자 / REVOKE 권한 ON 객체 FROM 사용자
권한을 줄 때는 GRANT 권한 ON 객체 TO 사용자; 형식입니다. 빼앗을 때는 REVOKE 권한 ON 객체 FROM 사용자; 를 씁니다.
틀린 선지
- GRANT SELECT TO USER1 ON EMP;: ON 객체가 TO 사용자 앞에 와야 합니다.
- REVOKE SELECT ON EMP TO USER1;: REVOKE 는 권한을 빼앗는 명령이고, TO 가 아니라 FROM 을 씁니다.
- GRANT USER1 ON EMP SELECT;: 순서가 맞지 않아 오류가 납니다.
문제 10. 한 트랜잭션이 실행되는 동안 다른 트랜잭션이 그 중간 결과를 보거나 끼어들지 못해야 한다는 트랜잭션의 성질은?
- ① 일관성(Consistency)
- ② 지속성(Durability)
- ③ 고립성(Isolation)
- ④ 원자성(Atomicity)
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ③ 고립성(Isolation)
핵심: 고립성 = 동시에 실행되는 트랜잭션끼리 서로 간섭하지 않음
고립성(격리성) 은 실행 중인 트랜잭션의 중간 결과를 다른 트랜잭션이 보거나 바꾸지 못하게 하는 성질입니다. 이것이 지켜지지 않으면 아직 확정되지 않은 데이터를 읽는 문제(Dirty Read) 등이 생깁니다.
틀린 선지
- 일관성(Consistency): 실행 전후에 데이터가 규칙에 맞아야 한다는 성질입니다.
- 지속성(Durability): COMMIT 한 결과가 영구히 남아야 한다는 성질입니다.
- 원자성(Atomicity): 모두 실행되거나 모두 취소되어야 한다는 성질입니다.
직접 풀어서 확인해 보세요.
AI 작성 · 운영진 검수 전