정보처리산업기사 2020년 1회부터 현재까지 출제된 SQL 문제에 대해 정리해 놓은 자료이다.
SQL은 Structured Query Language의 약자로, 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 사용되는 표준화된 프로그래밍 언어이다. SQL을 잘 알면 프로그래밍을 통해 작업해야할 수많은 동작들을 SQL 명령어 한두줄로 해결할 수 있다. SQL로 데이터베이스에서 데이터를 생성, 수정, 삭제, 조회할 수 있고 심지어 데이터베이스 스키마 정의, 데이터베이스 객체 생성, 권한 관리 등의 작업도 수행할 수 있다.
SQL을 배워두는 것은 여러모로 중요하다고 할 수 있겠다. 아래에 있는 여러 문제들을 살펴보면 프로그래밍 언어로를 많은 과정들을 거려야 하겠지만 SQL 명령어로는 단 한줄로 해결됨을 알 수 있다. 스스로 느낄 수 있을 때까지 차근차근 알아보자.
SQL은 Structured Query Language의 약자로, 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 사용되는 표준화된 프로그래밍 언어이다. SQL을 잘 알면 프로그래밍을 통해 작업해야할 수많은 동작들을 SQL 명령어 한두줄로 해결할 수 있다. SQL로 데이터베이스에서 데이터를 생성, 수정, 삭제, 조회할 수 있고 심지어 데이터베이스 스키마 정의, 데이터베이스 객체 생성, 권한 관리 등의 작업도 수행할 수 있다.
SQL을 배워두는 것은 여러모로 중요하다고 할 수 있겠다. 아래에 있는 여러 문제들을 살펴보면 프로그래밍 언어로를 많은 과정들을 거려야 하겠지만 SQL 명령어로는 단 한줄로 해결됨을 알 수 있다. 스스로 느낄 수 있을 때까지 차근차근 알아보자.
2020년 1회 - 17번 문제
학생 테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명있다고 할 때, 다음 SQL문 1, 2, 3의 실행 결과로 표시되는 튜플의 수를 쓰시오. (단, DEPT 필드는 학과를 의미한다) 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 |
2020년 2회 - 6번 문제
다음 <학생> 테이블을 참고하여 <처리조건>에서 요구하는 SQL문을 작성하시오. <학생> ![]() <조건> 3, 4학년의 학번, 이름을 조회한다 IN 예약어를 사용해야 한다 속성명 아래의 괄호는 속성의 자료형을 의미한다 |
|
SELECT 학번, 이름 FROM 학생 WHERE 학년 IN (3, 4); |
2020년 2회 - 12번 문제
다음 <student> 테이블을 참고하여 'name' 속성으로 'idx_name'이라는 인덱스를 생성하는 SQL문을 작성하시오. <student> ![]() |
|
CREATE INDEX idx_name ON student(name); |
2020년 3회 - 3번 문제
<학생> 테이블에서 '이름'이 "민수"인 튜플을 삭제하고자 한다. 다음 <처리 조건>을 참고하여 SQL문을 작성하시오. <처리조건> 명령문 마지막의 세미콜론은 생략이 가능하다 인용 부호가 필요한 경우 작은 따옴표를 사용한다 |
|
DELETE FROM 학생 WHERE 이름='민수'; |
2020년 3회 - 9번 문제
<성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리 조건>을 참고하여 적합한 SQL문을 작성하시오. <성적>
![]() <결과> ![]() <처리조건> WHERE문을 사용하지않는다 GROUP BY와 HAVING을 이용한다 집계함수를 사용하여 명령문을 구성한다 최소점수, 최대점수는 별칭을 위한 AS문을 이용한다 명령문 마지막의 세미콜론은 생략이 가능하다 인용 부호가 필요한 경우 작은 따옴표를 사용한다 |
|
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >=90; |
2020년 3회 - 20번 문제
다음 <속성 정의서>를 참고하여 <학생> 테이블에 대해 20자의 가변 길이를 가진 '주소' 속성을 추가하는 <SQL문>을 완성하시오. <속성 정의서> ![]() <sql문></sql문> (1) TABLE 학생 (2) 주소 VARCHAR(20); |
|
(1) ALTER (2) ADD |
2020년 4회 - 9번 문제
다음 질의 내용에 대한 SQL문을 작성하시오. <질의>
학생 테이블에서 학과별 튜플의 개수를 검색하시오. (단, 아래의 실행 결과가 되도록 한다.) <학생>
![]() <실행 결과> ![]() <처리조건> Where 조건절은 사용할 수 없다. GROUP BY는 반드시 포함한다. 집계함수를 적용한다. 학과별튜플수 컬럼이름 출력에 AS를 활용한다. 문장 끝의 세미콜론은 생략해도 무방하다. 인용부호 사용이 필요한 경우 단일 따옴표를 사용한다. |
|
SELECT 학과, COUNT(*) AS 학과별튜플수 FROM 학생 GROUP BY 학과; |
2021년 1회 - 6번 문제
<EMP_TBL> 테이블을 참고하여 <SQL문>의 실행 결과를 쓰시오.
![]() <처리조건> SELECT COUNT(*) FROM EMP_TBL WHERE EMPNO > 100 AND SAL >=3000 OR EMPNO =200; |
|
1 |
2021년 1회 - 14번 문제
다음 테이블에서 카디널리티와 디그리를 구하시오.![]() |
|
카디널리티 : 5 디그리 : 4 |
2021년 2회 - 5번 문제
다음은 <학부생>테이블에서 입학생수가 300이상인 튜플의 학과번호를 999로 갱신하는 SQL문이다 괄호(1, 2)에 알맞은 답을 쓰시오. <학부생> 테이블 ![]() (1) 학부생 (2) 학과번호 =999 WHERE 입학생수>=300; |
|
(1) UPDATE (2) SET |
2021년 2회 - 6번 문제
다음 <사원> 테이블과 <동아리> 테이블을 조인한 <결과>를 확인하여 <SQL문>의 괄호(1, 2)에 들어갈 알맞은 답을 쓰시오. <사원> ![]() <동아리> ![]() <결과> ![]() <SQL문> SELECT a.코드, 이름,동아리명 FROM 사원 a LEFT 동아리 b( 1 ) a. 코드=b.( 2 ) ; |
|
(1) ON (2) 코드 |
2021년 2회 - 10번 문제
다음 <회원> 테이블에서 '이름'이 "이"로 시작하는 회원들을 가입일 순으로 내림차순 정렬하는 <SQL문>이다 괄호(1, 2)에 들어갈 알맞은 답을 쓰시오 <회원> 테이블
![]() <SQL문> SELECT*FROM 회원 WHERE 이름 LIKE '( 1 )' ORDER BY 가입일 ( 2 ); |
|
(1) : 이% (2) : DESC |
2021년 3회 - 10번 문제
<A> 테이블과 < B>테이블을 참고하여 <SQL문>의 실행결과를 쓰시오![]() <SQL문> SELECT COUNT(*) CNT FROM A CROSS JOIN B WHERE A.NAME LIKE B.RULE; |
|
4 |
2022년 1회 - 4번 문제
다음은 <성적> 테이블에서 이름(name)과 점수(score)를 조회하되, 점수를 기준으로 내림차순 정렬하여 조회하는 <SQL문>이다. 괄호(1~3)에 알맞은 답을 적어 <SQL문>을 완성하시오. <성적>
![]() <SQL문> SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 ) |
|
(1) : ORDER (2) : score (3) : DESC |
2022년 2회 - 3번 문제
상품 테이블에서 H제조사 전체 제품의 단가보다 더 큰 단가를 가진 제품을 모두 출력하는 SQL문을 완성하시오.![]() SELECT 제조사, 제품명, 단가 FROM 제품 WHERE 단가 > ( 1 ) (SELECT 단가 FROM 제품 WHERE 제조사='H') |
|
ALL |
2022년 2회 - 4번 문제
다음 SQL 결과에 알맞는 답을 작성하시오.![]() <SQL문> SELECT count(col2) FROM TABLE WHERE col1 in(2, 3) or col2 in (3,5); |
|
4 |
2022년 2회 - 12번 문제 - 문제 누락
다음 테이블에서 TTL(employee)에 대한 연산 결과 값을 작성하시오. <employee> 테이블
![]() (1) (2) (3) (4) (5) |
|
TTL 부장 대리 과장 차장 |
2022년 3회 - 7번 문제
아래 데이터 명령어를 적용할 경우 알맞는 출력값을 작성하시오. CREATE TABLE 부서 (
부서코드 int, 부서명 varchar(50) PRIMART KEY (부서코드) FOREIGN KEY (부서코드) REFERENCES 직원(부서코드) ON DELETE CASCADE ); CREATE TABLE 직원 ( 직원코드 int, 부서코드 int PRIMART KEY (직원코드) FOREIGN KEY (부서코드) REFERENCES 부서(부서코드) ); insert into 부서 (부서코드, 부서명) value (10, 영업부); insert into 부서 (부서코드, 부서명) value (20, 기획부); insert into 부서 (부서코드, 부서명) value (30, 개발부); insert into 부서 (직원코드, 부서코드) value (1000, 10); insert into 부서 (직원코드, 부서코드) value (2000, 10); insert into 부서 (직원코드, 부서코드) value (3000, 20); insert into 부서 (직원코드, 부서코드) value (4000, 20); insert into 부서 (직원코드, 부서코드) value (5000, 20); insert into 부서 (직원코드, 부서코드) value (6000, 30); insert into 부서 (직원코드, 부서코드) value (7000, 30); 1. SELECT DISTINCT COUNT(직원코드) FROM 직원 WHERE 부서코드='20'; ( (1) ) 2. DELETE FROM 부서 WHERE 부서코드='20'; SELECT DISTINCT COUNT(직원코드) FROM 직원; ( (2) ) |
|
(1) 3 (2) 4 |
2022년 3회 - 12번 문제
학생 테이블에 컴퓨터과 학생이 50명, 전기과 학생이 100명, 인터넷과 학생이 50명있다고 할 때, 다음 SQL문 1, 2, 3의 실행 결과로 표시되는 튜플의 수를 쓰시오. (단, DEPT 필드는 학과를 의미한다) 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 |
2023년 1회 - 15번 문제
<학생> 테이블에서 '이름'이 "민수"인 튜플을 삭제하고자 한다. 다음 <처리 조건>을 참고하여 SQL문을 작성하시오. | |
DELETE FROM 학생 WHERE 이름='민수'; |
2023년 1회 - 16번 문제
다음 <성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리 조건>을 참고하여 적합한 SQL문을 작성하시오. | |
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >=90; |
'자격증 > 실기' 카테고리의 다른 글
Python 언어 기출 해설 (0) | 2023.06.26 |
---|---|
JAVA 언어 기출 해설 (0) | 2023.06.26 |
C 언어 기출 해설 (0) | 2023.06.26 |
댓글