문제1 (22년 1회 15번)
문제1 : 결과 값을 구하시오
조건 : 인사팀 인원은 총 20명이며, 20대는 3명, 30대는 6명, 나머지 11명은 모두 40대이다.
소스 :
SELECT 이름
FROM 인사팀
WHERE 나이 BETWEEN 35 AND 49;
정답 확인
답 :
11명 이상, 17명 이하
해설 :
인사팀 인원이 총 20명이고 20대가 3명, 30대가 6명, 나머지 11명이 40대이다.
조건은 35세 이상 49세 이하이므로 40대 11명은 모두 포함된다.
30대 6명은 35세 이상인 사람만 포함될 수 있으므로 최소 0명, 최대 6명이 추가된다.
따라서 최소 11명, 최대 17명이다.
문제2 (22년 1회 18번)
문제2 : 괄호에 알맞은 집계 함수를 쓰시오
소스 :
SELECT sub_Code AS 과목코드, (가)(mid) AS 중간평균
FROM Students
GROUP BY sub_Code
HAVING (나)(*) >= 5;
정답 확인
답 :
가 : AVG
나 : COUNT
해설 :
과목별 중간고사 평균은 AVG(mid)로 계산한다.
학생 수가 5명 이상인 과목만 남기려면 그룹별 행 개수를 세는 COUNT(*)를 HAVING 절에 사용해야 한다.
문제3 (22년 2회 3번)
문제3 : 급여를 갱신하는 SQL문을 작성하시오
소스 :
-- salaries 테이블에서 emp_num = 2073인 사원의 salary를 2500으로 갱신
정답 확인
답 :
UPDATE salaries
SET salary = 2500
WHERE emp_num = 2073;
해설 :
UPDATE는 기존 데이터를 수정할 때 사용한다.
SET으로 바꿀 컬럼과 값을 지정하고, WHERE로 사원번호 2073인 행만 한정해야 한다.
문제4 (22년 2회 18번)
문제4 : 다음 관계대수식을 SQL문으로 작성하시오
보기 :
π_{FNAME, LNAME, SALARY}(σ_{DNO=1005}(EMP))
정답 확인
답 :
SELECT FNAME, LNAME, SALARY
FROM EMP
WHERE DNO = 1005;
해설 :
선택 조건은 부서번호 DNO = 1005이고, 투영 대상은 FNAME, LNAME, SALARY이다.
따라서 SELECT 절에 필요한 컬럼만 적고 WHERE 절에 부서 조건을 넣으면 된다.
문제5 (22년 3회 18번)
문제5 : DDL 명령어를 쓰시오
소스 :
(가) : 스키마, 도메인, 테이블 등의 개체를 정의하는 데 사용하는 명령어
(나) : 개체에 대한 정의를 변경하는 데 사용하는 명령어
(다) : 스키마, 도메인, 테이블 등의 개체를 삭제하는 데 사용하는 명령어
정답 확인
답 :
가 : CREATE
나 : ALTER
다 : DROP
해설 :
DDL은 데이터베이스 구조를 정의·변경·삭제할 때 사용한다.
CREATE는 생성, ALTER는 변경, DROP은 삭제를 담당한다.
문제6 (23년 1회 19번)
문제6 : CHECK 제약조건 SQL문의 빈칸을 채우시오
소스 :
CREATE TABLE COMPANY(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
TITLE VARCHAR(20) (가) (TITLE (나) ('Intern','Staff','Manager','Director','President'))
);
정답 확인
답 :
가 : CHECK
나 : IN
해설 :
특정 속성값을 정해진 목록으로 제한하려면 CHECK 제약조건을 사용한다.
허용 가능한 값 집합은 IN 연산자로 지정한다.
문제7 (23년 2회 6번)
문제7 : 처리조건에 맞는 SQL문을 작성하시오
소스 :
-- 학생 테이블에서 학년이 3학년 이상인 학생이 수강하는 과목을 검색한다.
-- 검색 결과의 중복을 제거한다.
정답 확인
답 :
SELECT DISTINCT 과목
FROM 학생
WHERE 학년 >= 3;
해설 :
중복 제거는 DISTINCT를 사용한다.
학년 조건은 WHERE 절에 넣고, 검색 대상 컬럼은 과목이다.
문제8 (23년 2회 19번)
문제8 : 도메인 값의 범위를 제한하는 제약조건을 쓰시오
소스 :
-- 특정 속성의 값을 제한할 때 사용하는 제약조건
정답 확인
답 :
CHECK
해설 :
CHECK 제약조건은 컬럼 값이 특정 조건을 만족하도록 제한한다.
도메인이 가질 수 있는 값의 범위를 제어할 때 대표적으로 사용된다.
문제9 (23년 3회 3번)
문제9 : 중복 없는 등급 조회 SQL문을 작성하시오
소스 :
-- CUSTOMER 테이블에서 GRADE 속성을 중복 없이 검색
정답 확인
답 :
SELECT DISTINCT GRADE
FROM CUSTOMER;
해설 :
GRADE 컬럼의 중복을 제거해 한 번씩만 보이게 하려면 DISTINCT를 붙여야 한다.
문제10 (24년 1회 6번)
문제10 : 빈칸에 알맞은 용어와 예약어를 쓰시오
조건 : 3)은 봉급이 5000 이상 7000 이하이면서 이름이 '김'으로 시작하는 종업원을 조회하는 SQL문이다.
소스 :
1) 관계형 데이터베이스에서 (가)은 데이터를 구분하여 저장하는 기본 단위이다.
2) 특정 속성이 가질 수 있는 모든 가능한 값의 집합을 (나)라 한다.
3) SELECT * FROM 종업원 WHERE 봉급 BETWEEN 5000 (다) 7000 (다) 이름 LIKE '김%';
4) SELECT 부서명, AVG(봉급) FROM 종업원 GROUP BY 부서명 (라) AVG(봉급) > 6900;
5) INSERT INTO 종업원 (마) (400, '정몽주', '생산부', 5000);
정답 확인
답 :
가 : 릴레이션
나 : 도메인
다 : AND
라 : HAVING
마 : VALUES
해설 :
릴레이션은 관계형 데이터베이스의 기본 테이블 단위이다.
도메인은 속성이 가질 수 있는 값의 집합이다.
BETWEEN A AND B 구문이므로 AND가 들어간다.
그룹 조건은 HAVING을 사용한다.
INSERT에서 실제 데이터를 넣을 때는 VALUES를 사용한다.
문제11 (24년 1회 9번)
문제11 : 빈칸에 알맞은 예약어를 쓰시오
조건 : 1)은 학년이 3학년 이상이면서 학과가 "전자계산"인 학생의 이름을 조회하는 SQL문이다.
2)는 WORKS 테이블에서 프로젝트 번호가 1, 2, 3 중 하나인 행의 JUNO를 중복 없이 조회하는 SQL문이다.
소스 :
1) SELECT 이름 FROM 학생 WHERE 학년 >= 3 (가) 학과 = "전자계산";
2) SELECT (나) JUNO FROM WORKS WHERE PNO (다) (1, 2, 3);
정답 확인
답 :
가 : AND
나 : DISTINCT
다 : IN
해설 :
두 조건을 동시에 만족해야 하므로 AND를 사용한다.
주민등록번호를 중복 없이 조회해야 하므로 DISTINCT를 사용한다.
여러 프로젝트 번호 중 하나에 속하는지 검사할 때는 IN을 사용한다.
문제12 (24년 1회 20번)
문제12 : UPDATE문의 빈칸을 쓰시오
소스 :
UPDATE 고객계좌
(가) 등급 = '우대고객'
(나) 잔고 BETWEEN 1000000 AND 3000000;
정답 확인
답 :
가 : SET
나 : WHERE
해설 :
UPDATE문은 수정할 컬럼과 값을 SET 절에 적는다.
어떤 행을 바꿀지 조건을 지정할 때는 WHERE 절을 사용한다.
문제13 (24년 2회 11번)
문제13 : SQL 실행 결과의 튜플 수를 구하시오
조건 : STUDENT 테이블에 전기과 50명, 전산과 100명, 전자과 50명이 저장되어 있다.
소스 :
1) SELECT DEPT FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '전산과';
정답 확인
답 :
1) 200
2) 3
3) 1
해설 :
1) 전체 학생 수가 200명이므로 DEPT를 조회하면 200개의 행이 나온다.
2) DISTINCT를 쓰면 학과 종류만 남으므로 전기과, 전산과, 전자과 3개가 나온다.
3) WHERE DEPT = '전산과'로 먼저 전산과만 남긴 뒤 DISTINCT DEPT를 세면 학과 값은 하나뿐이므로 결과는 1이다.
문제14 (24년 2회 12번)
문제14 : INSERT, UPDATE문의 빈칸을 채우시오
소스 :
INSERT (1) 사원 (이름, 부서, 주소) (2) ('윤정희', '영업부', '마포구');
UPDATE 사원 (3) 부서 = '기획부' WHERE 이름 = '임선호';
정답 확인
답 :
(1) INTO
(2) VALUES
(3) SET
해설 :
INSERT문 기본 형태는 INSERT INTO 테이블명 (컬럼...) VALUES (값...) 이다.
UPDATE문에서는 바꿀 컬럼과 값을 SET으로 연결한다.
문제15 (24년 2회 13번)
문제15 : 조건 검색과 정렬 SQL문의 빈칸을 채우시오
조건 : 1)은 성별이 여성이면서 등급이 GOLD인 회원을 조회한다.
2)는 가입년도를 기준으로 오름차순 정렬한다.
3)은 이름이 '김'으로 시작하지 않는 회원을 조회한다.
소스 :
1) SELECT * FROM 회원 WHERE 성별 = '여' (1) 등급 = 'GOLD';
2) SELECT * FROM 회원 ORDER BY 가입년도 (2);
3) SELECT * FROM 회원 WHERE 이름 (3) LIKE '김%';
정답 확인
답 :
(1) AND
(2) ASC
(3) NOT
해설 :
1) 성별과 등급을 동시에 만족해야 하므로 AND를 사용한다.
2) 오름차순 정렬은 ASC이다.
3) "김"으로 시작하지 않는 회원은 NOT LIKE '김%' 형태가 된다.
문제16 (24년 3회 5번)
문제16 : JOIN문의 빈칸을 채우시오
소스 :
SELECT 학번, 이름, 학생.학과코드, 학과명
FROM 학생 JOIN 학과
(가) (학과코드);
정답 확인
답 :
가 : USING
해설 :
두 테이블에 공통으로 존재하는 컬럼명이 같을 때 JOIN ... USING(컬럼명) 형식을 사용할 수 있다.
여기서는 학과코드가 공통 컬럼이다.
문제17 (24년 3회 6번)
문제17 : 지정된 조건과 일치하는 튜플의 개수를 반환하는 집계 함수를 쓰시오
소스 :
-- GROUP BY 절에 지정된 그룹별로 튜플 수를 반환하는 집계 함수
정답 확인
답 :
COUNT
해설 :
COUNT는 행의 개수를 세는 집계 함수이다.
COUNT(*), COUNT(컬럼명), COUNT(DISTINCT 컬럼명) 형태로 자주 사용된다.
문제18 (24년 3회 10번)
문제18 : UNIQUE INDEX 생성문의 빈칸을 채우시오
소스 :
CREATE (1) (2) Stud_idx ON Student (ssn);
정답 확인
답 :
(1) UNIQUE
(2) INDEX
해설 :
중복을 허용하지 않는 인덱스는 UNIQUE INDEX이다.
따라서 CREATE UNIQUE INDEX 인덱스명 ON 테이블명(컬럼명) 형태가 된다.
문제19 (24년 3회 16번)
문제19 : 결과 값을 구하시오
조건 : 인사팀 인원은 총 20명이며, 20대는 3명, 30대는 6명, 나머지 11명은 모두 40대이다.
소스 :
SELECT 이름
FROM 인사팀
WHERE 나이 BETWEEN 35 AND 49;
정답 확인
답 :
11명 이상, 17명 이하
해설 :
이 문제는 22년 1회 15번과 같은 구조다.
총 20명 중 40대가 11명이므로 최소 11명은 무조건 포함된다.
30대 6명은 35세 이상일 수도 있고 아닐 수도 있어 최대 6명 추가될 수 있다.
따라서 정답은 11명 이상 17명 이하이다.
'정보처리산업기사' 카테고리의 다른 글
| 같이 암기하면 좋은 정보처리산업기사 실기 CS지식 핵심 키워드들 (0) | 2026.04.13 |
|---|---|
| 정보처리산업기사 실기 CS 지식 문제 정리 (1) | 2026.04.10 |
| 정보처리산업기사 실기 Python 기출문제 정리 (0) | 2026.04.09 |
| 정보처리산업기사 실기 Java 기출문제 정리 (1) | 2026.04.09 |
| 정보처리산업기사 실기 C언어 문제 정리 (0) | 2026.04.09 |