본문 바로가기
정보처리기사

정보처리기사 실기 SQL 기출문제 모음 (최근 5개년)

by 셈이 2025. 4. 18.
728x90
반응형

안녕하세요. 정보처리기사 실기 시험 기출문제 중 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) 테이블의 구조와 일부 데이터이다.

 

STIDNAMESCOREDEPTID

 

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);
 
답) ALTER TABLE 학생 ADD 주소 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          )
답)
ON
학과
 
 

11. 2021년 2회차

 

다음은 테이블의 데이터를 수정하려는 상황이다.

 

아래 SQL 보기에서 괄호 안에 알맞은 문장을 작성하시오.

 

(       1        ) 테이블명 (        2       ) 컬럼 = 값 WHERE 점수 >= 90;

 

답)

UPDATE

SET

 

 

12. 2021년 3회차

 

테이블 T1:

CODENAME
3258 Smith
4324 Allen
5432 Scott

테이블 T2: (RULE로 사용됨)

CODENAME (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회차

다음은 성적 테이블의 일부 데이터이다.

indexnamescore
1 Kim 95
2 Gun 90
3 Son 80
4 Jung 60

아래 SQL문에서 괄호 (1), (2), (3)에 들어갈 알맞은 SQL 키워드를 작성하시오.

 
SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
 
답) ORDER BY score DESC 
 
 

14. 2022년 2회차

 

다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.

 

indexAgeTTL

1 55 부장
2 35 대리
3 42 과장
4 45 차장

 

답)

TTL

① 부장
② 대리
③ 과장
④ 차장

 

 

15. 2022년 2회차

 

다음은 TABLE의 일부 데이터이다:

indexcol1col2
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문들의 실행 결과로 출력되는 튜플(행)의 수는 각각 몇 개인가?

 
(1) SELECT DEPT FROM STUDENT;
 
(2) SELECT DISTINCT DEPT FROM STUDENT;
 
(3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '인터넷과';
 
답)
200
3
1
 
 

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]

ABC
1 a x
2 b x
1 c w
3 d w

테이블 R2]

CDE
x k 3
y k 3
z s 2

SQL 문]

 
SELECT B FROM R1
WHERE C IN (SELECT C FROM R2 WHERE D = 'k')

 

답)

B

a
b
 

21. 2024년 1회차

다음은 TABLE의 데이터와 SQL문이다.
해당 SQL문의 실행 결과로 출력되는 값을 작성하시오.


[TABLE]

EMPNOSAL
100 1000
200 3000
300 1500

SQL 문]

 
SELECT COUNT(*) FROM TABLE WHERE EMPNO > 100 AND SAL >= 3000 OR EMPNO = 200
 
답) 1
 
 

22. 2024년 2회

다음은 SQL 구문에 관한 문제이다. 아래 테이블과 SQL 문장을 참고하여,
각 문장의 빈칸 (①~④) 에 들어갈 알맞은 SQL 키워드를 작성하시오.


[테이블 구조]

  • 사원: 사원번호(PK), 이름, 나이, 부서
  • 부서: 사원번호(PK), 이름, 주소, 나이

[SQL 문장]

① 신입 사원이 들어와서 사원 테이블에 추가

sql
복사편집
INSERT INTO 사원 (사원번호, 이름, 주소, 부서) [ ① ] (32431, '정실기', '서울', '영업');

② 위 신입사원을 검색하면서 부서 테이블에 추가

sql
복사편집
INSERT INTO 부서 (사원번호, 이름, 나이, 부서) [ ② ] 사원번호, 이름, 나이, 23 FROM 사원 WHERE 이름 = '정실기';

③ 전체 사원 테이블 조회

sql
복사편집
SELECT * [ ③ ] 사원;

④ 퇴사로 인해 부서를 ‘퇴사’로 변경

sql
복사편집
UPDATE 사원 [ ④ ] 부서 = '퇴사' WHERE 사원번호 = 32431;

[정답]

번호정답설명
VALUES INSERT 시 직접 값을 넣을 때 사용
SELECT INSERT INTO ... SELECT 구문 (서브쿼리 아님)
FROM SELECT 대상 테이블 지정
SET UPDATE 시 수정할 컬럼과 값을 지정

 

23. 2024년 3회차

[문제]

다음은 employee, project 테이블이다. 아래 SQL문의 실행 결과로 출력되는 행 수를 구하시오.

[employee]

nofirst_namelast_nameproject_id
1 John Doe 10
2 Jim Carry 20
3 Rachel Redmond 10

[project]

project_idname
10 Alpha
20 Beta
10 Gamma

[SQL]


SELECT COUNT(*) FROM employee AS e JOIN project AS p ON e.project_id = p.project_id WHERE p.name IN ( SELECT name FROM project p WHERE p.project_id IN ( SELECT project_id FROM employee GROUP BY project_id HAVING COUNT(*) < 2 ) )

[정답]

1
 
 

 

 

728x90
반응형