20년 1회
학생 테이블에 전기과 학생이 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. SELECT DEPT FROM STUDENT;
20년 2회
다음 <학생> 테이블을 참고하여 <처리조건>에서 요구하는 SQL문을 작성하시오.
<학생>
학번 | 이름 | 학년 | 수강과목 | 점수 | 연락처 |
---|---|---|---|---|---|
123 | 김 | 3 | 세무행정 | 4.5 | 010-1234-5678 |
124 | 이 | 2 | 토목개론 | 3 | 010-1235-4796 |
125 | 박 | 4 | 실용법학 | 3.5 | 010-1237-7411 |
126 | 이 | 1 | 데이터론 | 2 | 010-1238-4972 |
<처리조건>
3, 4학년의 학번, 이름을 조회한다.
IN 예약어를 사용해야 한다.
속성명 아래의 괄호는 속성의 자료형을 의미한다.
✏️ 문제 풀이
20년 2회
테이블을 참고하여 'name' 속성으로 'idx_name'이라는 인덱스를 생성하는 SQL문을 작성하시오.
stid | name | score | deptid |
---|---|---|---|
2001 | brown | 85 | PE01 |
2002 | white | 45 | EF03 |
2003 | black | 67 | UW11 |
✏️ 문제 풀이
20년 3회
<학생> 테이블에서 '이름'이 "민수"인 튜플을 삭제하고자 한다. 다음 <처리 조건>을 참고하여 SQL문을 작성하시오.
<처리 조건>
명령문 마지막의 세미콜론은 생략이 가능하다
인용 부호가 필요한 경우 작은 따옴표를 사용한다
✏️ 문제 풀이
20년 3회
다음 <성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리 조건>을 참고하여 적합한 SQL문을 작성하시오.
<성적>
학번 | 과목번호 | 과목이름 | 학점 | 점수 |
---|---|---|---|---|
123 | 101 | 컴퓨터구조 | 6 | 95 |
124 | 101 | 컴퓨터구조 | 6 | 84 |
125 | 302 | 데이터베이스 | 5 | 89 |
126 | 201 | 인공지능 | 5 | 92 |
127 | 302 | 데이터베이스 | 5 | 100 |
128 | 302 | 데이터베이스 | 5 | 88 |
129 | 201 | 인공지능 | 5 | 93 |
<결과>
과목이름 | 최소점수 | 최대점수 |
---|---|---|
데이터베이스 | 88 | 100 |
인공지능 | 92 | 93 |
<처리 조건>
WHERE문을 사용하지않는다.
GROUP BY와 HAVING을 이용한다.
집계함수를 사용하여 명령문을 구성한다.
최소점수, 최대점수는 별칭을 위한 AS문을 이용한다.
명령문 마지막의 세미콜론은 생략이 가능하다.
인용 부호가 필요한 경우 작은 따옴표를 사용한다.
✏️ 문제 풀이
20년 3회
다음 <속성 정의서>를 참고하여 <학생> 테이블에 대해 20자의 가변 길이를 가진 '주소' 속성을 추가하는 <SQL문>을 완성하시오.
<속성 정의서>
속성명 | 데이터타입 | 제약조건 | 테이블명 |
---|---|---|---|
학번 | CHAR(10) | UNIQUE | 학생 |
이름 | VARCHAR(8) | NOT NULL | 학생 |
주민번호 | CHAR(13) | 학생 | |
학과 | VARCHAR(16) | FOREIGN KEY | 학생 |
학년 | INT | 학생 |
<SQL문>
(1) TABLE 학생 (2) 주소 VARCHAR(20);
✏️ 문제 풀이
20년 4회
다음 질의 내용에 대한 SQL문을 작성하시오.
질의: 학생 테이블에서 학과별 튜플의 개수를 검색하시오. (단, 아래의 실행 결과가 되도록 한다.)
<학생 테이블>
학번 | 이름 | 학년 | 학과 | 주소 |
---|---|---|---|---|
123 | 김 | 2 | 전기 | 서울 |
124 | 이 | 3 | 컴퓨터 | 대구 |
125 | 박 | 1 | 전자 | 부산 |
126 | 이 | 3 | 전자 | 광주 |
127 | 최 | 4 | 컴퓨터 | 울산 |
<실행 결과>
학과 | 학과별 튜플 수 |
---|---|
전기 | 1 |
전자 | 2 |
컴퓨터 | 2 |
<처리조건>
Where 조건절은 사용할 수 없다.
GROUP BY는 반드시 포함한다.
집계함수를 적용한다.
학과별튜플수 컬럼이름 출력에 AS를 활용한다.
문장 끝의 세미콜론은 생략해도 무방하다.
인용부호 사용이 필요한 경우 단일 따옴표를 사용한다.
✏️ 문제 풀이
21년 1회
<EMP_TBL> 테이블을 참고하여 <SQL문>의 실행 결과를 쓰시오.
<EMP_TBL>
EMPNO | SAL |
---|---|
100 | 1500 |
200 | 3000 |
300 | 2000 |
<처리조건>
SELECT COUNT(*) FROM EMP_TBL WHERE EMPNO > 100 AND SAL >=3000 OR EMPNO =200;
✏️ 문제 풀이
21년 1회
다음 테이블에서 카디널리티와 디그리를 구하시오.
ID | 이름 | 거주지 | 신청강의 |
---|---|---|---|
abc | 김 | 마포구 | e1 |
abd | 나 | 관악구 | e2 |
abe | 박 | 서대문구 | e3 |
abf | 이 | 광진구 | e4 |
abt | 최 | 서대문구 | e5 |
✏️ 문제 풀이
21년 2회
다음은 <학부생>테이블에서 입학생수가 300이상인 튜플의 학과번호를 999로 갱신하는 SQL문이다 괄호(1, 2)에 알맞은 답을 쓰시오.
학부 | 학과번호 | 입학생수 | 담당관 |
---|---|---|---|
정경대학 | 110 | 300 | 김 |
공과대학 | 310 | 250 | 이 |
인문대학 | 120 | 400 | 박 |
정경대학 | 120 | 300 | 최 |
인문대학 | 420 | 180 | 오 |
(1) 학부생 (2) 학과번호 =999 WHERE 입학생수>=300;
✅ 정답 (1) UPDATE (2) SET UPDATE 학부생 SET 학과번호 = 999 WHERE 입합생수 >=300;✏️ 문제 풀이
21년 2회
다음은 <학부생>테이블에서 입학생수가 300이상인 튜플의 학과번호를 999로 갱신하는 SQL문이다 괄호(1, 2)에 알맞은 답을 쓰시오.
<사원>
코드 | 이름 | 부서 |
---|---|---|
1 | 김 | 인사 |
2 | 나 | 경영지원 |
3 | 박 | 개발 |
4 | 이 |
<동아리>
코드 | 동아리명 |
---|---|
1 | 테니스 |
3 | 탁구 |
4 | 볼링 |
<결과>
코드 | 이름 | 동아리명 |
---|---|---|
1 | 김 | 테니스 |
2 | 나 | |
3 | 박 | 탁구 |
4 | 이 | 볼링 |
<SQL문>
SELECT a.코드, 이름,동아리명 FROM 사원 a LEFT 동아리 b( 1 ) a. 코드=b.( 2 ) ;
✏️ 문제 풀이
1. SELECT 문
21년 2회
다음 <회원> 테이블에서 '이름'이 "이"로 시작하는 회원들을 가입일 순으로 내림차순 정렬하는 <SQL문>이다 괄호(1, 2)에 들어갈 알맞은 답을 쓰시오.
<회원> 테이블
회원번호 | 이름 | 성별 | 가입일 |
---|---|---|---|
1 | 이진성 | 남 | 2021-06-23 |
2 | 조이령 | 여 | 2021-06-24 |
3 | 최민수 | 남 | 2021-06-28 |
4 | 김차희 | 여 | 2021-07-03 |
5 | 이미경 | 여 | 2021-07-10 |
<SQL문>
SELECT*FROM 회원 WHERE 이름 LIKE '( 1 )' ORDER BY 가입일 ( 2 );
✏️ 문제 풀이
21년 3회
< A> 테이블과 < B>테이블을 참고하여 <SQL문>의 실행결과를 쓰시오.
<SQL문>
SELECT COUNT(*) CNT FROM A CROSS JOIN B WHERE A.NAME LIKE B.RULE;
✏️ 문제 풀이
22년 1회
다음은 <성적> 테이블에서 이름(name)과 점수(score)를 조회하되, 점수를 기준으로 내림차순 정렬하여 조회하는 <SQL문>이다. 괄호(1~3)에 알맞은 답을 적어 <SQL문>을 완성하시오.
name | class | score |
---|---|---|
김 | A | 85 |
나 | C | 74 |
박 | C | 95 |
이 | A | 90 |
최 | B | 82 |
<SQL문>
SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
✏️ 문제 풀이
22년 2회
상품 테이블에서 H제조사 전체 제품의 단가보다 더 큰 단가를 가진 제품을 모두 출력하는 SQL문을 완성하시오.
제조사 | 제품명 | 단가 |
---|---|---|
A | 과자 | 1000 |
B | 초콜릿 | 6000 |
H | 사탕 | 2000 |
C | 아이스크림 | 5000 |
H | 사탕 | 3000 |
<SQL문>
SELECT 제조사, 제품명, 단가 FROM 제품 WHERE 단가 > ( 1 ) (SELECT 단가 FROM 제품 WHERE 제조사='H')
✏️ 문제 풀이
22년 2회
다음 SQL 결과에 알맞는 답을 작성하시오.
INDEX | col1 | col2 |
---|---|---|
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);
✏️ 문제 풀이
22년 2회
다음 테이블에서 𝝿 TTL(employee)에 대한 연산 결과 값을 작성하시오.
INDEX | AGE | TTL |
---|---|---|
1 | 55 | 부장 |
2 | 35 | 대리 |
3 | 42 | 과장 |
4 | 45 | 차장 |
(1)
(2)
(3)
(4)
(5)
✏️ 문제 풀이
22년 3회
출처 : [2022년 3회] 정보처리기사 실기 복원 문제 (tistory.com)
✅ 정답 (1) 3 (2) 422년 2회
학생 테이블에 컴퓨터과 학생이 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 ='인터넷과';
23년 1회
✅ 정답 DELETE FROM 학생 WHERE 이름 = '민수';<학생> 테이블에서 '이름'이 "민수"인 튜플을 삭제하고자 한다. 다음 <처리 조건>을 참고하여 SQL문을 작성하시오.(20년 3회차 기출과 동일)
23년 1회
✅ 정답 SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;<성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리 조건>을 참고하여 적합한 SQL문을 작성하시오. (20년 3회차 기출과 동일)
23년 2회
학생 테이블에 아래 데이터를 삽입하는 쿼리문을 작성하시오.
학번 : 9830287
이름 : 한국산
학년 : 3
과목명 : 경영학개론
전화번호 : 050-1234-1234
✏️ 문제 풀이
23년 2회
뷰를 삭제할 때 참조된 뷰를 연쇄적으로 모두 삭제되도록 빈칸을 작성하시오.
DROP VIEW 뷰이름 (가);
✅ 정답 CASECADE✏️ 문제 풀이
명령어 | 설명 |
---|---|
CASCADE | 참조된 모든 뷰를 함께 삭제합니다. |
RESTRICT | 참조되는 뷰가 있는 경우 삭제를 막습니다. 이 옵션이 기본입니다. |
DROP VIEW IF EXISTS | 뷰가 존재할 경우에만 삭제하여 오류를 방지합니다. |
DROP VIEW ... CASCADE | 참조된 모든 뷰를 삭제하며, 명시적으로 모든 참조가 삭제됩니다. |
23년 3회
다음 빈칸에 들어갈 UNION 연산에 대한 출력결과를 쓰시오.
✏️ 문제 풀이
24년 1회
아래 보기의 SQL 문장과 테이블을 참고하여 출력 값을 표로 작성하시오.
SELECT
B
FROM
R1
WHERE
C IN (SELECT C FROM R2 WHERE D="K");
✏️ 문제 풀이
1. 내부 서브쿼리
24년 1회
결과값
SELECT
COUNT(*)
FROM
TABLE
WHERE
EMPNO > 100
AND
SAL >= 3000 OR EMPNO = 200
✅ 정답
1
24년 2회
빈칸에 들어갈 것을 쓰시오
1) 신입 사원을 사원 테이블에 추가
INSERT INTO 사원 (사원번호, 이름, 주소, 부서) 가 ;
2) 위에 추가한 신입사원을 부서 테이블에 추가
INSERT INTO 부서 (사원번호, 이름, 나이, 부서)
[ 나 ] 사원번호, 이름, 나이, 23 FROM 사원 WHERE 이름 = '김길동';
3) 전체 사원 테이블 조회
SELECT * [ 다 ] 사원;
4) 추가한 신입사원을 '퇴사'로 변경
UPDATE 사원 [ 라 ] 부서 = '퇴사' WHERE 사원번호 = 12345;
24년 2회
다음 테이블에서 카디널리티와 디그리를 구하시오.
ID | 이름 | 거주지 | 신청강의 |
---|---|---|---|
abc | 김 | 마포구 | e1 |
abd | 나 | 관악구 | e2 |
abe | 박 | 서대문구 | e3 |
abf | 이 | 광진구 | e4 |
abt | 최 | 서대문구 | e5 |