정보처리기사 필기 · 데이터베이스 구축 과목
정보처리기사 SQL 활용 핵심정리
- 중요도
- ★★★★★ (5 / 5)
- 출제 비중
- 데이터베이스 구축 20문항 중 약 7문항 (35%)
DDL·DML·DCL 의 구분과 문법, 조인과 서브쿼리, 집계 함수를 다룹니다.
SQL 활용, 이것만은 꼭 외우세요
- DDL(정의): CREATE, ALTER, DROP. DML(조작): SELECT, INSERT, UPDATE, DELETE. DCL(제어): GRANT, REVOKE, COMMIT, ROLLBACK.
- DROP 의 CASCADE 는 참조하는 개체까지 함께 지우고, RESTRICT 는 참조 중이면 지우지 않습니다.
- DISTINCT 는 중복된 행을 하나만 남깁니다.
- COUNT(*) 는 Null 을 포함해 세고, COUNT(열 이름)은 Null 을 빼고 셉니다.
SQL 활용 대표 문제 5개
AI 예상문제검수 전데이터베이스 구축 › SQL 활용★★★★★
문제 1. SQL 명령어 가운데 DDL(데이터 정의어)에 해당하는 것은?
- ① SELECT
- ② INSERT
- ③ ALTER
- ④ GRANT
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ③ ALTER
핵심: DDL: CREATE, ALTER, DROP
DDL 은 테이블 같은 구조를 만들고(CREATE), 고치고(ALTER), 지우는(DROP) 명령입니다.
틀린 선지
- ① SELECT: 자료를 조회하는 DML 입니다.
- ② INSERT: 자료를 추가하는 DML 입니다.
- ④ GRANT: 권한을 주는 DCL 입니다.
AI 예상문제검수 전데이터베이스 구축 › SQL 활용★★★★★
문제 2. <학생> 테이블에서 '학과' 필드의 값을 중복 없이 한 번씩만 조회하는 SQL 문은?
- ① SELECT DISTINCT 학과 FROM 학생;
- ② SELECT ALL 학과 FROM 학생;
- ③ SELECT 학과 FROM 학생 GROUP 학과;
- ④ SELECT UNIQUE(학과) IN 학생;
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① SELECT DISTINCT 학과 FROM 학생;
핵심: DISTINCT: 중복된 값을 하나만 남긴다
DISTINCT 를 SELECT 바로 뒤에 쓰면 똑같은 값은 한 번만 나옵니다.
틀린 선지
- ② SELECT ALL 학과 FROM 학생;: ALL 은 중복을 그대로 모두 보여 줍니다.
- ③ SELECT 학과 FROM 학생 GROUP 학과;: GROUP BY 로 써야 하며, 문법이 틀렸습니다.
- ④ SELECT UNIQUE(학과) IN 학생;: 문법이 틀렸습니다.
AI 예상문제검수 전데이터베이스 구축 › SQL 활용★★★★★
문제 3. <사원> 테이블에 5개의 행이 있고, '급여' 열의 값이 300, 400, NULL, 500, NULL 이다. SELECT COUNT(급여) FROM 사원; 의 결과는?
- ① 2
- ② 3
- ③ 5
- ④ NULL
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ② 3
핵심: COUNT(열 이름)은 Null을 빼고 세고, COUNT(*)는 모두 센다
- COUNT(급여)는 급여가 Null 이 아닌 행만 셉니다.
- Null 이 아닌 값: 300, 400, 500 → 3개
- 결과: 3
틀린 선지
- ① 2: Null 의 개수입니다.
- ③ 5: COUNT(*) 의 결과입니다.
- ④ NULL: COUNT 는 숫자를 돌려줍니다.
AI 예상문제검수 전데이터베이스 구축 › SQL 활용★★★★★
문제 4. DROP TABLE 학생 CASCADE; 의 의미로 옳은 것은?
- ① 학생 테이블을 참조하는 다른 개체가 있으면 삭제를 취소한다.
- ② 학생 테이블의 이름을 바꾼다.
- ③ 학생 테이블의 모든 행만 삭제하고 구조는 남긴다.
- ④ 학생 테이블과 함께, 이 테이블을 참조하는 다른 개체도 삭제한다.
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 학생 테이블과 함께, 이 테이블을 참조하는 다른 개체도 삭제한다.
핵심: CASCADE는 참조하는 개체까지 함께 삭제, RESTRICT는 참조 중이면 삭제 취소
CASCADE 는 '폭포처럼 이어서'라는 뜻입니다. 지우려는 테이블을 참조하는 것들까지 줄줄이 지웁니다.
틀린 선지
- ① 학생 테이블을 참조하는 다른 개체가 있으면 삭제를 취소한다.: RESTRICT 의 의미입니다.
- ② 학생 테이블의 이름을 바꾼다.: ALTER TABLE 의 기능입니다.
- ③ 학생 테이블의 모든 행만 삭제하고 구조는 남긴다.: DELETE FROM 학생; 또는 TRUNCATE 의 의미입니다.
AI 예상문제검수 전데이터베이스 구축 › SQL 활용★★★★★
문제 5. 사용자 KIM 에게 <사원> 테이블을 조회할 수 있는 권한을 주는 SQL 문은?
- ① GRANT SELECT ON 사원 TO KIM;
- ② GRANT SELECT TO KIM ON 사원;
- ③ REVOKE SELECT ON 사원 FROM KIM;
- ④ GIVE SELECT ON 사원 TO KIM;
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① GRANT SELECT ON 사원 TO KIM;
핵심: GRANT 권한 ON 테이블 TO 사용자 / REVOKE 권한 ON 테이블 FROM 사용자
권한을 줄 때는 GRANT ~ ON ~ TO, 거둘 때는 REVOKE ~ ON ~ FROM 형식입니다.
틀린 선지
- ② GRANT SELECT TO KIM ON 사원;: ON 과 TO 의 순서가 바뀌었습니다.
- ③ REVOKE SELECT ON 사원 FROM KIM;: 권한을 거두는 명령입니다.
- ④ GIVE SELECT ON 사원 TO KIM;: GIVE 라는 명령은 없습니다.
직접 풀어서 확인해 보세요.