본문 바로가기
IT개발/DataBase

[DataBase] SQL - DDL 문제 풀이[정보처산업기사 실기 기출문제]

by Thompson 2024. 7. 14.
728x90

시험은 주관식으로 치러지기에, 문제를 보고 바로 답을 쓸 수 있도록 반복해서 연습해야 합니다. 문제에 따라서 변경해야 할 부분이 어디인지 파악하고 있으면 좀 더 쉽게 답안을 작성할 수 있습니다. 다음은 시험 과목이 변경되기 이전에 정보처리기사, 정보처리산업기사에 출제되었던 기출문제도 있습니다.

 

문제 1

SQL에 대한 다음 설명에서 괄호(1~3)에 들어갈 알맞은 명령어를 쓰시오.

SQL의 하나인 DDL(Data Define Language)은 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어로, 다음 3가지 명령어를 사용하여 표현한다.
( 1 ) : 스키마, 도메인, 테이블 등의 개체를 정의하는 데 사용하는 명령어.
( 2 ) : 개체에 대한 정의를 변경하는 데 사용하는 명령어.
( 3 ) : 스키마, 도메인, 테이블 등의 개체를 삭제하는 데 사용하는 명령어

 

1 : Create

2 : Alter

3 : Drop

 

문제 2

<학생> 테이블에 20자 가변길이를 가진 "주소"속성을 추가하는 <SQL문>을 완성하시오.

 

<SQL문>

( 1 ) TABLE 학생 ( 2 ) 주소 VARCAR(20);

 

1 : ALTER

2 : ADD

 

문제 3

아래의 <요구사항>을 만족하는 테이블 <patient>를 정의하는 SQL문을 작성하시오.

 

<요구사항>

1. "id(문자 5)", "name(문자 10)", "sex(문자 1)", "phone(문자 20)" 속성을 가진다.
2. "id" 속성은 기본키이다.

3. "sex"속성은 "f" 또는 "m"값만 갖도록 한다(제약조건명 : sex_ck).
4. "id"는 <doctor> 테이블에 있는 "doc_id"를 참조한다.(제약조건명 : id_fk).

 

답:

create table patient(
	id char(5) primary key,
    name char(10),
    sex char(1),
    phone char(20),
    constraint id_fk foreign key (id) References doctor(doc_id),
    constraint sex_ck check(sex = 'f' or sex = 'm')
    );

 

문제 4

아래의 <요구사항>을 만족하는 테이블 <Instructor>를 정의하는 SQL문을 작성하시오.

 

<요구사항>

1. 'id(문자 5)', 'name(문자 15)', 'dept(문자 15)' 속성을 가진다. · 'id' 속성은 기본키이다. 
2. 'name' 속성은 Null이 올 수 없다. 
3. dept' 속성은 <Department> 테이블의 'dept' 속성을 참조하는 외래키이다. 
- <Department> 테이블에서 튜플이 삭제되면 관련된 모든 튜플의 'dept' 속성의 값은 NULL로 변경되어야 한다. 
- <Department> 테이블의 'dept' 속성이 변경되면 <Instructor> 테이블 의 관련된 모든 속성 값도 같은 값으로 변경되어야 한다.

 

답:

create table instructor(
	id char(5) primary key,
    name char(15) not NULL,
    dept char(15),
    foreign key(dept) reperences Department(dept)
    	on delete set null
        on update cascade
        );

 

문제 5

<patient> 테이블에 데이터 타입이 문자 20자리인 'job'속성을 추가하는 SQL문을 작성하시오.

 

답: Alter Table patient ADD job char(20);

 

문제 6

아래의 <요구사항>을 만족하는 뷰 <CC>를 정의하는 SQL문을 작성하시오.

 

<요구사항>

1. <Course>와 <Instructor> 릴레이션을 이용한다.
2. <Course>의 'instructor' 속성 값과 <Instructor>의 'id' 속성이 같은 자료 에 대한 view를 정의한다.
3. <cc> 뷰는 ccid', 'ccname'. 'instname' 속성을 가진다.
4. <cc> 뷰는 <Course> 테이블의 'id'. 'name', <Instructor> 테이블의 'name' 속성을 사용한다.

 

create view CC(
	ccid, ccname, instname)
    AS Select course.id, course.name, Instructor.name
    From Course, Instructor
    Where Course.instructor = Instructor.id;

 

문제 7

<Student> 테이블의 ssn속성에 대해, 중복을 허용하지 않도록 'Stud_idx'라는 이름으로 오름차순 인덱스를 정의하는 SQL문을 작성하시오.

 

답 : 

Create Unique Index stud_idx On student(ssn ASC);

 

문제 8

다음은 기본키인 '직위' 속성의 값으로 "사원", "대리", "과장", "부장", "이사", "사장"만을 허용하고, 기본 값으로 "사원"을 취하는 도메인 무결성 제약 조건을 설정하기 위한 SQL문이다. 괄호를 채워 SQL문을 완성하시오.

 

<SQL문>

CREATE DOMAIN 직위 [AS] VARCHAR2(10)
( 1 )
( 2 ) VALID-직위 ( 3 );

 

답 :

1. Default '사원'

2. Constraint

3. Check(Value In('사원', '대리', '과장', '부장', '이사', '사장'))

 

문제 9

 <직원> 테이블에 대해 '이름' 속성으로 '직원_name'이라는 인덱스를 정의하는 SQL문을 작성하시오.

 

답:

Create Index 직원_name AS select 이름

 

문제10

<처리 조건>에 부합하는 SQL문이 완성되도록 괄호에 적 합한 옵션을 쓰시오. 

 

<처리 조건> 

  1. <학생> 테이블을 제거한다. 
  2. <학생> 테이블을 참조하는 모든 데이터도 함께 제거한다.

<SQL문>

DROP TABLE 학생 (   );

 

답 : CASCADE