관리 메뉴

나구리의 개발공부기록

CHAPTER 01 - 데이터베이스(예상문제) 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/실기 7강 - SQL 응용

CHAPTER 01 - 데이터베이스(예상문제)

소소한나구리 2024. 7. 1. 17:46

2024년도 수제비 실기책(6판) 내용 정리


1) 다음 괄호(   ) 안에 알맞은 말을 작성

  • 스키마는 사용자나 개발자의 관점에서 필요로 하는 데이터 베이스의 논리적 구조를 나타낸 (   1   ) 스키마, 데이터 베이스의 전체적인 논리적 구조를 나타낸 (     2    ) 스키마, 물리적 저장 장치의 관점에서 보는 데이터베이스의 구조를 나타낸 (    3    ) 스키마가 있다

정답

더보기

1. 외부

2. 개념

3. 내부


2) 사원 테이블의 '사번' 컬럼에 대해 '사번인덱스'라는 인덱스 명으로 인덱스를 생성하고자 할 때 알맞은 쿼리를 작성

정답

더보기

CREATE INDEX 사번인덱스 ON 사원(사번);


3) 사람이라는 테이블을 만들고자 할 때 이름, 성별 컬럼이 있고, 이름은 VARCHAR(10), 성별은 CHAR(1) 데이터 타입을 가지고 있고, 성별은 추가로 'M', 'F'값만 가질 수 있도록 제약 조건을 걸고자 할 때의 알맞은 쿼리는?

정답

더보기

CREATE TABLE 사람 (

이름 VARCHAR(10),

성별 CHAR(1) CHECK (성별 = 'M' OR 성별 = 'F')

);

 

또는 다양한 방법으로 해도 됨

CREATE TABLE 사람 (

이름 VARCHAR(10),

성별 CHAR(1)

CONSTRAINT 성별조건 CHECK (성별 IN ('M', 'F'))

);

 

CREATE TABLE 사람 (

이름 VARCHAR(10),

성별 CHAR(1) CHECK (성별 IN ('M', 'F'))

);


4) 사원 테이블에 VARCHAR(11) 타입으로 전화번호라는 컬럼을 추가하려고 할때 알맞은 쿼리를 작성

정답

더보기

ALTER TABLE 사원 ADD 전화번호 VARCHAR(11);


5) 사원 테이블에 사번, 업무, 이름, 생년월일, 성별, 입사일이라는 컬럼이 있을 때 사원 테이블에서 성별 값이 'M'을 가진 사번, 이름으로 생성된 '사원뷰'라는 이름의 뷰 생성하는 쿼리를 작성

정답

더보기

CREATE VIEW 사원뷰 AS SELECT 사번, 이름 FROM 사원 WHERE 성별 = 'M';

 

AS 뒤에 조회쿼리를 작성할 때 ( ) 없음,


6) 다음 학생 테이블의 일부에서 전공만 출력하는 쿼리를 작성. 단, 전공명은 중복되지 않아야 함

정답

더보기

SELECT DISTINCT 전공 FROM 학생;


7) 다음 학생 테이블의 일부에서 '이'씨 성을 가진 사람의 학번을 출력하는 쿼리를 작성

정답

더보기

SELECT 학번 FROM 학생 WHERE 이름 LIKE '이%';


8) 학생 테이블에서 주소 컬럼이 있을 때, 주소 컬럼이 NULL 이 아닌 주솟값을 출력하는 쿼리를 작성

정답

더보기

SELECT 주소 FROM 학생 WHERE 주소 IS NOT NULL;


9) 다음 쿼리와 동일한 쿼리를 IN 키워드를 써서 작성 (IN은 한 번만 써야 함)

  • SELECT * FROM 교수 WHERE 전공 = '컴퓨터공학' OR 전공 = '전자공학';

정답

더보기

SELECT  * FROM 교수 WHERE 전공 IN ('컴퓨터공학', '전자공학');


10) 다음 고객 테이블에서 나이가 50살 이상이면서 59살 이하이고 성별이 남자인 사람의 이름을 출력하는 쿼리 작성 (단, BETWEEN 구문을 사용해야 함)

정답

더보기

SELECT 이름 FROM 고객 WHERE 나이 BETWEEN 50 AND 59 AND 성별 = '남';

 

나이가 50 ~ 59사이 그리고 성별이 '남'일때로 WHERE 절을 작성


11) 다음 성적 테이블의 일부에 이름, 과목, 성적을 성적순(내림차순)으로 출력하는 쿼리를 작성

정답

더보기

SELECT * FROM 성적 ORDER BY 성적 DESC;


12) 도서와 도서가격이라는 테이블이 있을 때 책번호 컬럼을 기준으로  Left Outer Join을 하여 [결과] 테이블과 같이 나오도록 쿼리를 작성

 

정답

더보기

SELECT A.책번호 AS 책번호, A.책명 AS 책명, B.책번호 AS 책번호, B.가격 AS 가격 

FROM 도서 A LEFT JOIN 도서가격 B ON A.책번호 = B.책번호;

 

조인할 때 ON으로 JOIN 조건을 작성해줘야함

AS가 없으면 A.책번호, A.책명 처럼 컬럼이 출력됨


13) 다음 직원 테이블에 다음 쿼리의 실행 결과의 튜플 수가 얼마인지 작성

  • SELECT * FROM 직원 WHERE 연봉 >= 1500
    UNION ALL
    SELECT * FROM 직원 WHERE 연봉 >= 2000;

정답

더보기

3

 

연봉이 1500이상일때 출력결과의 튜플 수는 2, 연봉이 2000 이상일 때 출력결과의 튜플 수는 1,

UNION ALL 로 중복값을 포함해서 합치면 3개가 됨


14) 테이블 및 컬럼명에 대한 명세일 때 사원명이 홍길동, 나이가 24, 급여가 300인 직원을 직원 테이블에 삽입하는 쿼리를 작성

  • 테이블명 : EMPLOYEE(직원 테이블)
  • 컬럼명 : NAME(사원명), AGE(나이), SALARY(급여)

정답

더보기

INSERT INTO EMPLOYEE VALUES('홍길동', 24, 300);

 

컬럼명을 써서 명확히 해줘도 됨
INSERT INTO EMPLOYEE(NAME, AGE, SALARY) VALUES('홍길동', 24, 300)'


15) 테이블 및 컬럼명에 대한 명세일 때 급여가 300 이하인 직원들을 직원 테이블에서 삭제하는 쿼리를 작성

  • 테이블명 : EMPLOYEE(직원 테이블)
  • 컬럼명 : NAME(사원명), AGE(나이), SALARY(급여)

정답

더보기

DELETE FROM EMPLOYEE WHERE SALARY <= 300;


16) 관리자가 사용자 장길산에게 '학생'테이블에 대해 UPDATE할 수 있는 권한을 부여하는 쿼리를 작성

정답

더보기

GRANT UPDATE ON 학생 TO 장길산;