SQL문 연습 1
카테고리: Oracle
-
테이블을 참고하여 ‘name’속성으로 ‘idx_name’이라는 인덱스를 생성하는 SQL 문을 작성하시오
CREATE INDEX 'idx_name' ON student(name);
- 아래의 요구사항을 만족하는 테이블
정의하는 SQL문을 작성하시오 - id(문자 5), name(문자 10), sex(문자 1) phone(문자 20) 속성을 가진다.
- id 속성을 기본키이다.
- sex 속성은 f 또는 m 값만 가지도록 한다. (제약조건명 : sex_ck)
- id 는
테이블에 있는 doc_id를 참조한다. (제약조건명 : id_fk)
CREATE TABLE patient (
id CHAR(5) PRIMARY KEY,
name CHAR(10),
sex CHAR(1),
phone CHAR(20),
CONSTRAINT sex_ch CHECK(sex = 'f' OR sex = 'm'),
CONSTRAINT id_fk FOREIGN KEY (id) REFERENCES doctor (doc_id)
);
- 아래의 요구사항을 만족하는 테이블
를 정의하는 SQL문을 작성하시오 - id(문자 5), name(문자 15), dept(문자 15)
- id는 기본키이다.
- name은 속성 NULL이 올수 없다.
- 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
REFERENCES Department (dept)
ON DELETE SET NULL
ON UPDATE CASCADE
);
- 아래의 요구사항을 만족하는 뷰
를 정의하는 SQL문을 작성하시오. -
와 릴레이션을 이용한다. -
의 ‘instructor’ 속성 값과 의 ‘id’속성이 같은 자료에 대한 view를 정의한다. -
뷰는 ‘ccid’, ‘ccname’, ‘instname’속성을 갖는다. -
뷰는 테이블의 ‘id’, ‘name’, 테이블의 ‘name’속성을 사용한다.
-
CREATE VIEW cc (ccid, ccname, instname)
AS SELECT Course.id, Course.name, Instructor.name
FROM Course, Instructor
WHERE Course.instructor = Instructor.id;
-
테이블의 ssn 속성에 대해, 중복을 허용하지 않도록 ‘Stud_idx’라는 이름으로 오름차순 인덱스를 정의하는 SQL문을 작성하시오
CREATE UNIQUE INDEX Stud_idx
ON Student(ssn Asc);
- 다음은 기본키인 ‘직위’ 속성의 값으로 사원, 대리, 과장, 부장, 이사, 사장 만을 허용하고, 기본 값으로 사원을 취하는 도메인 무결성 제약 조건을 설정하기 위한 SQL문이다. 괄호를 채워 SQL문을 완성하시오.
CREATE DOMAIN 직위 VARCHAR2(10)
( 1 )
( 2 ) VALID-직위 ( 3 );
( 1 ) : DEFAULT '사원'
( 2 ) : CONSTRAINT
( 3 ) : CHECK VALUE IN('사원', '대리', '과장', '부장', '이사', '사장')
- <직원> 테이블에 대해 ‘이름’ 속성으로 ‘직원_name’이라는 인덱스를 정의하는 SQL 문을 작성하시오 직원>
CREATE INDEX '직원_name'
ON '직원'('이름');
- 다음 <처리 조건="">에 부합하는 SQL문이 완성되도록 괄호에 적합한 옵션을 쓰시오.처리>
댓글 남기기