안녕하세요 오늘은 정보처리기사 실기 sql 응용단원에서 데이터 베이스 기본에 대해 공부해보겠습니다.
데이터 베이스 기본
1. 기출 문제
트랜잭션의 특성 중 일관성, 지속성 외 2개의 특성을 쓰시오
: 원자성, 격리성
트랜잭션 Rollback에 대해 설명하시오
: 오류가 발생했을때 오류 이전의 특정 시점 상태로 되돌려 주는 제어어
STUDENT 테이블에 수학과 학생 50명, 미술과 학생 100명, 응용 프로그램학과 학생 50명의 정보가 저장되어있을때
다음 sql 문의 실행 결과의 튜플 수는?? (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건 조회
다음 테이블의 아래조건을 만족하는 sql문을 작성하시오
1. 학생 테이블에서 3,4학년인 학번, 이름을 조회
2. IN 연산자를 사용해야함
학번 | 이름 | 학년 | 수강과목 | 점수 | 연락처 |
1001 | 김정민 | 3 | 물리학 | 91 | 010-222-2222 |
2001 | 강은주 | 4 | 천문학 | 96 | 010-333-3333 |
3001 | 홍길우 | 1 | 유체역학 | 93 | 010-444-1111 |
4001 | 장길동 | 2 | 컴퓨터공학 | 96 | 010-777-7777 |
SELECT 학번,이름 FROM 학생 WHERE 학년 IN (3,4);
데이터 베이스의 회복 기법 중 rollback시 redo,undo가 모두 실행되는 트랜잭션 처리법으로 트랜잭션 수행중 갱신 결과를 바로 db에 반영하는 기법은??
: 즉각 갱신 회복 기법
STUDENT 테이블의 NAME 속성에 IDX_NAME 이름으로 인덱스를 생성하는 SQL문을 작성하시오.
STID | NAME | SCORE | DEPID |
1001 | 김정민 | 91 | 11 |
2001 | 강은지 | 94 | 21 |
3001 | 홍길여 | 92 | 31 |
4001 | 장길수 | 97 | 41 |
CREATE INDEX IDX_NAME ON STUDENT(NAME);
학생 테이블에서 이름이 민지인 튜플을 삭제하는 sql문을 작성하시오
DELET FROM 학생 WHRER 이름 = '민지';
DB 스키마에대해 서술하시오
: 데이터베이스의 구조, 제약조건등의 정보를 담고있는 기본적인 구조이다.
학생 테이블에 주소 속성을 추가하는 sql문을 작성하시오
: ALTER TABLE 학생 ADD 주소 VARCHAR(20);
예상문제
트랜잭션에 대해 설명하시오
: 데이터 베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.
스키마의 종류와 해당 스키마가 무엇인지 설명하시오.
: 외부 스키마(사용자나 개발자 관점에서 필요한 데이터베이스의 논리적 구조)
개념 스키마(데이터베이스의 전체적인 논리적 구조)
내부 스키마(물리적 저장장치 관점에서 보는 데이터베이스 구조)
사원 테이블의 '사번' 컬럼에대해 '사번인덱스' 라는 인덱스를 생성하고자 할때 알맞은 쿼리는??
: CREATE INDEX 사번인덱스 ON 사원(사번);
사람이라는 테이블을 만드려는데 이름,성별이라는 컬럼이 있고 이름은 varchar(10), 성별은 char(1), 성별은 추가로 M,F 값만 가질 수 있도록 알맞은 쿼리를 작성하시오
: CREATE TABLE 사람 (
이름 VARCHAR(10),
성별 CHAR(1) CHECK(성별 = 'M' OR 성별 = 'F')
);
사원 테이블에 varchar(11) 타입으로 전화번호라는 컬럼을 추가하려고 한다 알맞은 쿼리는??
: ALTER TABLE 사원 ADD 전화번호 VARCHAR(11);
사원 테이블에 사번,업무,이름,생년월일,성별,입사일이라는 컬럼이 있을때 사원 테이블에서 성별 값이 'M'을 가진 사번,이름으로 생성된 '사원뷰'라는 이름의 뷰 생성하는 쿼리를 작성하시오
: CREATE VIEW 사원뷰 AS SELECT 사번,이름 FROM 사원 WHERE 성별 = 'M';
학생 테이블에서 전공만 출력하는 쿼리를 작성하시오. 단 전공명은 중복되지 않아야한다.
: SELECT DISTINCT 전공 FROM 학생;
다음은 학생 테이블의 일부이다 '김'씨 성을 가진 사람의 학번을 출력하는 쿼리를 작성하시오
이름 | 전공 | 학번 |
김기철 | 중국어학과 | 1 |
이민식 | 영어학과 | 2 |
SELECT 학번 FROM 학생 WHERE 이름 LIKE '김%';
다음은 학생 테이블에서 주소 컬럼이 있다, 주소 컬럼이 null이 아닌 주솟값을 출력하는 쿼리를 작성하시오
: SELECT 주소 FROM 학생 WHERE 주소 IS NOT NULL;
다음 쿼리와 동일한 쿼리를 IN 키워드를 써서 작성하시오.
SELECT * FROM 교수 WHERE 전공 = '컴퓨터공학' OR 전공 = '전자공학';
: SELECT * FORM 교수 WHRER 전공 IN ('컴퓨터공학', '전자공학');
다음은 고객 테이블이다. 나이가 50이상이면서 59살 이하이고, 성별이 남자인 사람의 이름을 출력해야하는 쿼리를 작성하시오.
이름 | 나이 | 성별 | 주소 |
이민식 | 51 | 남 | 경기도 |
김민지 | 23 | 여 | 충청도 |
임지민 | 53 | 여 | 강원도 |
SELECT 이름 FROM 고객 WHERE 나이 BETWEEN 50 AND 59 AND 성별 = '남';
다음은 성적 테이블의 일부이다. 이름,과목,성적을 성적순(내림차순)으로 출력하는 쿼리를 작성하시오
이름 | 과목 | 성적 |
이신 | 알고리즘 | 4.1 |
김신 | 데이터베이스 | 4.0 |
지신 | 프로그래밍 | 3.5 |
구신 | 알고리즘 | 4.5 |
SELECT * FROM 성적 ORDER BY 성적 DESC;
다음과 같이 도서와 도서가격이라는 테이블이 있다. 책번호 컬럼을 기준으로 Left Outer Join을 하여 결과 테이블과 같이 나오도록 쿼리를 작성하시오.
[도서]
책번호 | 책명 |
1 | 알고리즘 |
2 | 문학 |
[도서가격]
책번호 | 가격 |
1 | 2000 |
2 | 2300 |
3 | 2400 |
[결과]
책번호 | 책명 | 책명 | 가격 |
1 | 알고리즘 | 1 | 2000 |
2 | 문학 | 2 | 2300 |
SELECT A.책번호, A.책명, B.책번호, B.가격 FROM 도서 A LEFT JOIN 도서가격 B ON A.책번호 = B.책번호;
테이블명과 컬럼이 예시로 있을때 새로운 데이터를 추가하는 쿼리를 작성하시오.
ex: 직원 테이블 이름, 나이, 연봉
: INSERT INTO 직원(이름,나이,연봉) VALUES('김현승','30','8000');
급여가 300 이하인 직원들을 직원테이블에서 삭제하는 쿼리는??
: DELETE FROM 직원 WHERE 급여 <= 300;
관리자가 사용자 김현승에게 '학생' 테이블에 대해 update할 수 있는 권한을 부여하는 쿼리를 작성하시오
: GRANT UPDATE ON 학생 TO 김현승;
'정보처리기사 > SQL 응용' 카테고리의 다른 글
정보처리기사실기 - SQL 응용(2) (0) | 2023.09.10 |
---|
댓글