관계형 데이터베이스와 SQL 명령어
SQLD 2과목의 출발점. 테이블·행·열·키의 의미와 DML, DDL, DCL, TCL을 문제에서 구분하는 기준을 정리합니다.
출제 빈도 ★★★☆☆ 관련 문제 5개 |
DMLDDLDCLTCL 먼저 잡아야 할 그림
관계형 데이터베이스는 데이터를 표 형태의 테이블로 관리합니다. 시험에서는 어려운 정의보다 용어를 정확히 구분하는 문제가 자주 나옵니다.
| 용어 | 쉽게 말하면 | 시험에서 보는 포인트 |
|---|---|---|
| 테이블 | 같은 종류의 데이터를 모은 표 (릴레이션) | 데이터 모델의 엔터티가 실제로 구현된 형태 |
| 행(Row) | 한 건의 데이터 | 튜플, 레코드, 인스턴스와 연결해서 출제 |
| 열(Column) | 데이터의 항목 | 속성(Attribute), 컬럼과 연결해서 출제 |
| 기본키(PK) | 행을 유일하게 구분하는 값 | NOT NULL + UNIQUE, 테이블에 1개(복합키 가능) |
| 외래키(FK) | 다른 테이블의 기본키를 참조하는 값 | 테이블 간 관계 형성, NULL 허용 가능 |
초보자는 “고객 테이블”을 떠올리면 쉽습니다. 고객번호, 이름, 등급은 열이고, 고객 한 명의 정보 한 줄은 행입니다. 고객번호처럼 한 명을 정확히 구분하는 값이 기본키입니다.
SQL 명령어 4분류
SQLD에서는 명령어를 보고 “어느 분류인가”를 빠르게 판단해야 합니다.
| 분류 | 역할 | 대표 명령어 | 기억법 |
|---|---|---|---|
| DML (Data Manipulation) | 데이터를 조회·입력·수정·삭제 | SELECT, INSERT, UPDATE, DELETE, MERGE | 행 데이터를 다룹니다 |
| DDL (Data Definition) | 테이블 같은 구조를 생성·변경·삭제 | CREATE, ALTER, DROP, TRUNCATE, RENAME | 구조를 다룹니다 |
| DCL (Data Control) | 권한을 부여·회수 | GRANT, REVOKE | 사용자 권한을 다룹니다 |
| TCL (Transaction Control) | 트랜잭션을 확정·취소 | COMMIT, ROLLBACK, SAVEPOINT | 변경을 확정하거나 되돌립니다 |
데이터 타입 감각
시험은 DBMS별 세부 문법을 깊게 파고들기보다 “문자, 숫자, 날짜”의 큰 분류를 묻습니다.
| 데이터 성격 | Oracle 예 | SQL Server 예 | 주의점 |
|---|---|---|---|
| 고정 길이 문자 | CHAR(n) | CHAR(n) | 길이가 고정되어 남는 공간이 공백으로 채워집니다 |
| 가변 길이 문자 | VARCHAR2(n) | VARCHAR(n) | 실제 입력 길이에 맞춰 저장합니다 |
| 숫자 | NUMBER | INT, NUMERIC, DECIMAL | 계산 대상이면 문자로 저장하지 않습니다 |
| 날짜·시각 | DATE (시각 포함) | DATETIME, DATE (날짜만) | Oracle DATE는 시·분·초까지 포함 |
| 대용량 텍스트 | CLOB | VARCHAR(MAX), TEXT | 4000 byte 초과 텍스트 |
기본키와 외래키를 같이 이해하기
부서와 사원을 예로 들면, 부서.DEPTNO는 부서를 구분하는 기본키가 될 수 있습니다. 사원.DEPTNO는 사원이 속한 부서를 가리키므로 외래키가 됩니다.
기본키 (Primary Key)
- 테이블의 각 행을 유일하게 구분
- NOT NULL + UNIQUE 강제
- 테이블당 1개만 허용 (복합키 가능)
- 생성 시 자동으로 UNIQUE 인덱스
외래키 (Foreign Key)
- 다른 테이블의 PK(또는 UNIQUE)를 참조
- NULL 허용 가능 (관계가 선택적일 때)
- 한 테이블에 여러 개 가능
ON DELETE CASCADE / SET NULL옵션
SELECT e.ename, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno;
위 쿼리는 외래키와 기본키의 연결을 사용해 사원 이름과 부서 이름을 함께 보여줍니다. 조인을 공부할 때도 결국 “어떤 열이 어떤 테이블을 가리키는가”를 읽는 능력이 중요합니다.
시험장에서 빠르게 푸는 기준
SELECT가 포함되면 조회이므로 DML입니다CREATE,ALTER,DROP,TRUNCATE,RENAME처럼 구조를 바꾸면 DDL입니다GRANT,REVOKE는 권한이므로 DCL입니다COMMIT,ROLLBACK,SAVEPOINT는 트랜잭션 제어이므로 TCL입니다DELETE는 DML,TRUNCATE는 DDL이며, 결과는 비슷해도 분류와 롤백 가능성이 다릅니다
DML은 행, DDL은 구조, DCL은 권한, TCL은 확정과 취소를 다룹니다.