안녕하세요. 정보처리기사 실기 시험 기출문제 중 Python 관련 문제들만 선별하여 정리한 자료입니다.
2020년 정보처리기사가 개편된 이후부터 최근 5개년 간의 기출문제를 유형별로 정리하였습니다.
시험을 준비하시는 분들께 도움이 되기를 바랍니다.
아래는 이 자료에 포함된 기출문제 회차 목록입니다.
- 2024년 1회 / 2회 / 3회
- 2023년 1회 / 2회 / 3회
- 2022년 1회 / 2회 / 3회
- 2021년 1회 / 2회 / 3회
- 2020년 1회 / 2회 / 3회
1. 2020년 1회차
STUDENT 테이블에는 다음과 같은 학생 정보가 저장되어 있다.
- 컴퓨터과 학생: 50명
- 인터넷과 학생: 100명
- 사무자동화과 학생: 50명
※ DEPT 컬럼은 학생의 학과명을 나타낸다.
다음 SQL 문들의 실행 결과로 출력되는 튜플(행)의 수는 각각 몇 개인가?
SELECT DEPT FROM STUDENT; // ① 전체 학과 출력 (중복 포함)
SELECT DISTINCT DEPT FROM STUDENT; // ② 중복 없는 학과명 출력
SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '컴퓨터과'; // ③ 컴퓨터과만 필터링 후 학과 수 카운트
답)
200
3
1
2. 2020년 2회차
다음은 학생(STUDENT) 테이블의 구조와 일부 데이터이다.
다음은 학생(STUDENT) 테이블의 구조와 일부 데이터이다.
NAME 속성에 대해 IDX_NAME이라는 이름의 인덱스를 생성하는 SQL문을 작성하시오.
ST ID | NAME | SCORE | DEPT ID |
1000 | 김이름 | 90 | 1 |
2000 | 허이름 | 95 | 2 |
3000 | 조이름 | 90 | 3 |
4000 | 장이름 | 95 | 4 |
NAME 속성에 대해 IDX_NAME이라는 이름의 인덱스를 생성하는 SQL문을 작성하시오.
답) CREATE INDEX IDX_NAME ON STUDENT(NAME);
3. 2020년 2회차
다음은 학생(STUDENT) 테이블의 구조와 일부 데이터이다.
학번 | 이름 | 학년 | 수강과목 | 점수 | 연락처 |
1000 | 김이름 | 1 | 수학 | 90 | 010-1111-2222 |
2000 | 장이름 | 2 | 과학 | 95 | 010-2222-2222 |
3000 | 허이름 | 3 | 미술 | 90 | 010-3333-3333 |
4000 | 조이름 | 4 | 음악 | 95 | 010-4444-4444 |
아래 조건을 만족하는 SQL문을 작성하시오.
- 3학년 또는 4학년 학생의 학번, 이름을 조회할 것
- 반드시 IN 연산자를 사용할 것
답) SELECT 학번, 이름 FROM STUDENT WHERE 학년 IN (3, 4);
4. 2020년 3회차
학생 테이블(학생)에 주소라는 새로운 속성을 추가하려 한다.
아래 SQL 문장의 빈칸을 채워 SQL 문을 완성하시오.
( 1. ) TABLE 학생 ( 2. ) 주소 VARCHAR(20); |
5. 2020년 3회차
다음은 학생 테이블의 일부 데이터이다.
학번 | 이름 | 점수 | 과목 |
1000 | 김정미 | 90 | 알고리즘 |
2000 | 강은미 | 95 | 데이터베이스 |
3000 | 홍길동 | 90 | 전산수학 |
4000 | 민수 | 95 | 운영체제 |
이름이 '민수'인 튜플을 삭제하는 SQL문을 작성하시오.
답) DELETE FROM 학생 WHERE 이름 = '민수';
6. 2020년 3회차
다음은 <성적> 테이블의 일부 데이터이다.
과목코드 | 과목이름 | 성적 | 점수 |
1000 | 컴퓨터과학 | A+ | 95 |
2000 | 운영체제 | B+ | 85 |
1000 | 컴퓨터 과학 | B+ | 85 |
2000 | 운영체제 | B | 80 |
아래 조건을 만족하는 SQL 문을 작성하시오.
- 대소문자 구분 없음
- WHERE 절 사용 금지
- 반드시 GROUP BY, HAVING 절 사용
- 점수 평균이 90 이상인 과목
- 출력 컬럼: 과목이름, 최소점수, 최대점수
- 출력 시 별칭(AS) 반드시 사용할 것
- ; 세미콜론 생략 가능
답)
SELECT LOWER(과목이름) AS 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
FROM 성적
GROUP BY LOWER(과목이름)
HAVING AVG(점수) >= 90
7. 2020년 4회차
다음은 학생 테이블의 일부 데이터이다.
학과 | 학생 |
전기 | 이순신 |
컴퓨터 | 안중근 |
컴퓨터 | 윤봉길 |
전자 | 이봉창 |
전자 | 강우규 |
아래 조건을 모두 만족하는 SQL문을 작성하시오.
- 학과별로 튜플 수(학생 수)를 집계할 것
- 대소문자 구분 없음
- WHERE 절 사용 금지
- GROUP BY 구문 사용 필수
- 집계 함수(COUNT 등) 사용 필수
- 별칭(AS) 사용 시 **작은따옴표('')**를 사용할 것
- 세미콜론(;) 생략 가능
답)
SELECT 학과, COUNT(*) AS '학과별 튜플수'
FROM 학생
GROUP BY 학과
8. 2021년 1회
조건 : 실행 했을때의 결과값을 쓰시오.
다음은 급여 테이블의 일부 데이터이다.
EMPNO | SAL |
100 | 1000 |
200 | 3000 |
300 | 1500 |
다음 SQL 문을 실행했을 때 결과로 출력되는 튜플 수는 몇 개인가?
SELECT COUNT(*) FROM 급여
WHERE EMPNO > 100 AND SAL >= 3000 OR EMPNO = 200;
답) 1
9. 2021년 2회차
다음은 '이름' 컬럼에서 '이'로 시작하는 문자열만 조회하고, 결과를 내림차순 정렬한 SQL문을 작성하는 문제이다.
아래 SQL문의 ( 1 ), ( 2 )에 들어갈 알맞은 내용을 채우시오.
SELECT * FROM 테이블명 WHERE 이름 LIKE ( 1 ) ORDER BY ( 2 ) |
답)
'이%'
DESC;
10. 2021년 2회차
다음 SQL 보기에서 JOIN을 수행할 때, 괄호 안에 들어갈 알맞은 SQL 문장을 작성하시오.
SELECT .... FROM 학생정보 a JOIN 학과정보 b ( 1 ) a.학과 = b.( 2 ) |
11. 2021년 2회차
다음은 테이블의 데이터를 수정하려는 상황이다.
아래 SQL 보기에서 괄호 안에 알맞은 문장을 작성하시오.
( 1 ) 테이블명 ( 2 ) 컬럼 = 값 WHERE 점수 >= 90; |
답)
UPDATE
SET
12. 2021년 3회차
테이블 T1:
3258 | Smith |
4324 | Allen |
5432 | Scott |
테이블 T2: (RULE로 사용됨)
12 | s% |
32 | %t% |
SELECT COUNT(*) CNT
FROM T1 A
CROSS JOIN T2 B
WHERE A.NAME LIKE B.RULE;
답)4
13.2022년 1회차
다음은 성적 테이블의 일부 데이터이다.
1 | Kim | 95 |
2 | Gun | 90 |
3 | Son | 80 |
4 | Jung | 60 |
아래 SQL문에서 괄호 (1), (2), (3)에 들어갈 알맞은 SQL 키워드를 작성하시오.
14. 2022년 2회차
다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.
indexAgeTTL
1 | 55 | 부장 |
2 | 35 | 대리 |
3 | 42 | 과장 |
4 | 45 | 차장 |
답)
TTL
① 부장 |
② 대리 |
③ 과장 |
④ 차장 |
15. 2022년 2회차
다음은 TABLE의 일부 데이터이다:
1 | 2 | NULL |
2 | 3 | 6 |
3 | 5 | 5 |
4 | 6 | 3 |
5 | NULL | 3 |
다음 SQL의 실행 결과는?
SELECT COUNT(col2)
FROM TABLE
WHERE col1 IN (2, 3) OR col2 IN (3, 5);
16. 2022년 3회차
STUDENT 테이블에는 다음과 같은 학과 정보가 저장되어 있다.
- 컴퓨터과 학생: 50명
- 전기과 학생: 100명
- 인터넷과 학생: 50명
※ DEPT 컬럼은 학과명이다.
아래 SQL문들의 실행 결과로 출력되는 튜플(행)의 수는 각각 몇 개인가?
17. 2023년 1회
다음은 성적 테이블의 일부 데이터이다.
1 | 데이터베이스 | 89 |
2 | 데이터베이스 | 92 |
3 | 네트워크 | 88 |
4 | 소프트웨어 | 91 |
5 | 네트워크 | 89 |
6 | 소프트웨어 | 85 |
[출력 결과]
데이터베이스 | 89 | 92 |
다음 조건을 만족하는 SQL문을 작성하시오.
- 과목이름이 '데이터베이스'인 경우만 출력
- WHERE 구문 사용 금지
- 반드시 GROUP BY와 HAVING을 사용할 것
- MIN, MAX 등 집계함수(Aggregate Function) 사용
- SELECT 절에는 별칭(AS) 을 사용하고, 작은따옴표로 감쌀 것
- SQL 문 끝의 세미콜론은 생략 가능
답)
SELECT 과목이름 AS '과목이름', MIN(점수) AS '최소점수', MAX(점수) AS '최대점수'
FROM 성적
GROUP BY 과목이름
HAVING 과목이름 = '데이터베이스'
18. 2023년 1회차
다음은 [학생] 테이블의 일부 데이터이다.
1 | 1 | 종현 |
2 | 2 | 민수 |
3 | 2 | 수연 |
4 | 3 | 수지 |
다음 조건을 만족하는 SQL문을 작성하시오.
- 이름이 '민수'인 튜플을 삭제할 것
- 문자열 값은 작은따옴표(')로 감쌀 것
- SQL 마지막에 세미콜론(;)은 생략 가능
답) DELETE FROM 학생 WHERE 이름 = '민수'
20. 2024년 1회
다음은 두 개의 테이블 R1, R2와 SQL문이다.
해당 SQL문의 실행 결과로 출력되는 값을 표로 작성하시오.
[테이블 R1]
1 | a | x |
2 | b | x |
1 | c | w |
3 | d | w |
테이블 R2]
x | k | 3 |
y | k | 3 |
z | s | 2 |
SQL 문]
답)
B
a |
b |
21. 2024년 1회차
다음은 TABLE의 데이터와 SQL문이다.
해당 SQL문의 실행 결과로 출력되는 값을 작성하시오.
[TABLE]
100 | 1000 |
200 | 3000 |
300 | 1500 |
SQL 문]
22. 2024년 2회
다음은 SQL 구문에 관한 문제이다. 아래 테이블과 SQL 문장을 참고하여,
각 문장의 빈칸 (①~④) 에 들어갈 알맞은 SQL 키워드를 작성하시오.
[테이블 구조]
- 사원: 사원번호(PK), 이름, 나이, 부서
- 부서: 사원번호(PK), 이름, 주소, 나이
[SQL 문장]
① 신입 사원이 들어와서 사원 테이블에 추가
② 위 신입사원을 검색하면서 부서 테이블에 추가
③ 전체 사원 테이블 조회
④ 퇴사로 인해 부서를 ‘퇴사’로 변경
[정답]
① | VALUES | INSERT 시 직접 값을 넣을 때 사용 |
② | SELECT | INSERT INTO ... SELECT 구문 (서브쿼리 아님) |
③ | FROM | SELECT 대상 테이블 지정 |
④ | SET | UPDATE 시 수정할 컬럼과 값을 지정 |
23. 2024년 3회차
[문제]
다음은 employee, project 테이블이다. 아래 SQL문의 실행 결과로 출력되는 행 수를 구하시오.
[employee]
1 | John | Doe | 10 |
2 | Jim | Carry | 20 |
3 | Rachel | Redmond | 10 |
[project]
10 | Alpha |
20 | Beta |
10 | Gamma |
[SQL]
[정답]
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 Python 파이썬 기출문제 모음 (최근 5개년) (0) | 2025.04.18 |
---|---|
정보처리기사 실기 JAVA 기출문제 모음 (최근 5개년) (1) | 2025.04.18 |
정보처리기사 실기 C언어 기출문제 모음 (최근 5개년) (1) | 2025.04.16 |
정보처리기사 실기 프로그래밍 문제 SQL 기출 풀이 모음 (10) | 2022.10.15 |
정보처리기사 실기 프로그래밍 문제 파이썬 기출 풀이 모음 (8) | 2022.10.14 |