본문으로 바로 가기

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개

예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 1. 사용자에게 테이블 조회 권한을 주는 GRANT 문은 SQL 의 어느 종류에 속하는가?

  1. ① DCL
  2. ② DML
  3. ③ DDL
  4. ④ 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 처럼 트랜잭션을 다루는 명령입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 2. 트랜잭션의 성질 가운데 '트랜잭션 안의 작업은 모두 성공하거나 모두 취소되어야 하며, 일부만 반영되어서는 안 된다'는 것은?

  1. ① 지속성(Durability)
  2. ② 일관성(Consistency)
  3. ③ 고립성(Isolation)
  4. ④ 원자성(Atomicity)
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ④ 원자성(Atomicity)

핵심: ACID: 원자성(전부 아니면 전무)·일관성·고립성·지속성

트랜잭션의 네 가지 성질(ACID)입니다.

  • 원자성: 전부 실행되거나 전부 취소됨 (All or Nothing)
  • 일관성: 실행 전후에 데이터베이스가 규칙에 맞는 상태를 유지
  • 고립성: 실행 중인 트랜잭션이 다른 트랜잭션의 영향을 받지 않음
  • 지속성: COMMIT 한 결과는 장애가 나도 영구히 남음

틀린 선지

  • 지속성(Durability): 확정된 결과가 영구히 남아야 한다는 뜻입니다.
  • 일관성(Consistency): 트랜잭션 전후에 데이터가 규칙(제약조건 등)에 맞아야 한다는 뜻입니다.
  • 고립성(Isolation): 동시에 실행되는 트랜잭션끼리 서로 끼어들지 않아야 한다는 뜻입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 3. 기본키(PRIMARY KEY)와 UNIQUE 제약조건을 비교한 설명으로 옳은 것은?

  1. ① 기본키는 중복 값을 허용하고, UNIQUE 는 허용하지 않는다.
  2. ② 기본키는 NULL 을 허용하지 않지만, UNIQUE 는 NULL 을 허용한다.
  3. ③ 기본키와 UNIQUE 모두 NULL 을 허용하지 않는다.
  4. ④ 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 을 허용한다: 반대로 적은 설명입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 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;

  1. ① 4
  2. ② 5
  3. ③ 7
  4. ④ 10
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ② 5

핵심: ROLLBACK TO 저장점 = 그 저장점 뒤의 변경만 취소

ROLLBACK TO SP1 은 SP1 을 만든 뒤의 변경만 취소합니다.

  1. 1 입력 → SP1 → 2 입력 → SP2 → 3 입력
  2. ROLLBACK TO SP1: SP1 뒤의 2, 3 입력이 취소됨 → 남은 값 1
  3. 4 입력 → COMMIT → 남은 값 1, 4
  4. SUM = 1 + 4 = 5

틀린 선지

  • 4: ROLLBACK TO SP1 이 1 까지 취소한다고 본 값입니다. 1 은 SP1 전에 넣었으므로 남습니다.
  • 7: ROLLBACK TO SP2 를 한 것처럼 2 를 남긴 값(1 + 2 + 4)입니다.
  • 10: ROLLBACK 을 하지 않은 것처럼 모두 더한 값입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 5. 테이블의 모든 행을 지우고 저장 공간을 처음 상태로 되돌리는 TRUNCATE TABLE 문은 SQL 의 어느 종류에 속하는가?

  1. ① DML
  2. ② DCL
  3. ③ TCL
  4. ④ 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 입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 6. 지금까지 한 데이터 변경을 데이터베이스에 영구히 반영하는 명령은?

  1. ① COMMIT
  2. ② GRANT
  3. ③ SAVEPOINT
  4. ④ ROLLBACK
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ① COMMIT

핵심: COMMIT=확정, ROLLBACK=취소, SAVEPOINT=중간 저장점

COMMIT 은 트랜잭션 안에서 한 변경(INSERT·UPDATE·DELETE)을 확정해 영구히 저장합니다. COMMIT 한 뒤에는 ROLLBACK 으로 되돌릴 수 없습니다.

틀린 선지

  • GRANT: 권한을 주는 DCL 명령입니다.
  • SAVEPOINT: 트랜잭션 중간에 되돌아갈 저장점을 만듭니다. 변경을 확정하지 않습니다.
  • ROLLBACK: 아직 COMMIT 하지 않은 변경을 취소합니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 7. EMP 테이블에서 DEPTNO 가 10 인 사원의 SAL 을 10% 올리는 SQL 로 옳은 것은?

  1. ① UPDATE SET SAL = SAL * 1.1 FROM EMP WHERE DEPTNO = 10;
  2. ② UPDATE EMP SAL = SAL * 1.1 WHERE DEPTNO = 10;
  3. ③ UPDATE EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10;
  4. ④ 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 입니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 8. 회원 테이블의 '이름' 컬럼에 값이 반드시 들어가도록(빈 값을 막도록) 할 때 쓰는 제약조건은?

  1. ① FOREIGN KEY
  2. ② UNIQUE
  3. ③ CHECK
  4. ④ NOT NULL
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ④ NOT NULL

핵심: NOT NULL = 반드시 값 입력, UNIQUE = 중복 금지

NOT NULL 제약조건을 걸면 그 컬럼에 NULL 을 넣을 수 없어 값이 반드시 들어가야 합니다.

틀린 선지

  • FOREIGN KEY: 다른 테이블의 기본키를 참조하게 하는 제약조건입니다.
  • UNIQUE: 중복을 막을 뿐 NULL 은 허용합니다.
  • CHECK: 넣을 수 있는 값의 조건(예: 나이 >= 0)을 정합니다. 빈 값을 막는 데는 NOT NULL 을 씁니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 9. 사용자 USER1 에게 EMP 테이블을 조회할 수 있는 권한을 주는 SQL 로 옳은 것은?

  1. ① GRANT SELECT TO USER1 ON EMP;
  2. ② REVOKE SELECT ON EMP TO USER1;
  3. ③ GRANT SELECT ON EMP TO USER1;
  4. ④ 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;: 순서가 맞지 않아 오류가 납니다.
예상문제검수 완료SQL 기본 및 활용 › 관리 구문★★★★☆

문제 10. 한 트랜잭션이 실행되는 동안 다른 트랜잭션이 그 중간 결과를 보거나 끼어들지 못해야 한다는 트랜잭션의 성질은?

  1. ① 일관성(Consistency)
  2. ② 지속성(Durability)
  3. ③ 고립성(Isolation)
  4. ④ 원자성(Atomicity)
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ③ 고립성(Isolation)

핵심: 고립성 = 동시에 실행되는 트랜잭션끼리 서로 간섭하지 않음

고립성(격리성) 은 실행 중인 트랜잭션의 중간 결과를 다른 트랜잭션이 보거나 바꾸지 못하게 하는 성질입니다. 이것이 지켜지지 않으면 아직 확정되지 않은 데이터를 읽는 문제(Dirty Read) 등이 생깁니다.

틀린 선지

  • 일관성(Consistency): 실행 전후에 데이터가 규칙에 맞아야 한다는 성질입니다.
  • 지속성(Durability): COMMIT 한 결과가 영구히 남아야 한다는 성질입니다.
  • 원자성(Atomicity): 모두 실행되거나 모두 취소되어야 한다는 성질입니다.

직접 풀어서 확인해 보세요.

AI 작성 · 운영진 검수 전