innit 2021. 9. 16. 11:10

 

CREATE

 

CREATE SCHEMA

소유권자가 '홍길동'인 스키마 '대학교'를 정의하시오.

 

CREATE SCHEMA 스키마명 AUTHORIZATION 사용자id; CREATE SCHEMA 대학교 AUTHORIZATION 홍길동;

 

 

 

 

CREATE DOMAIN

속성 '남' 또는 '여' 중 하나만 저장할 수 있고, 기본 속성값은 '남'인 도메인 SEX를 정의하시오.

 

CREATE DOMAIN 도메인명 데이터타입 CREATE DOMAIN SEX CHAR(1)
        DEFAULT 기본값         DEFAULT '남'
        CONSTRAINT 제약조건명 CHECK (범위값);         CONSTRAINT VALID-SEX CHECK(VALUE IN ('남', '여'));

 

 

 

 

CREATE TABLE

'이름', '학번', '전공', '성별', '생년월일'로 구성된 <학생> 테이블정의하시오.

- '이름'은 NULL이 올 수 없다.

- '학번'은 기본키이다.

- '전공'은 <학과> 테이블의 '학과코드'를 참조하는 외래키이다.

- <학과> 테이블에서 삭제가 일어나면 관련 튜플들의 전공 값을 NULL로 만든다.

- <학과> 테이블에서 '학과코드'가 변경되면 전공 값도 같은 값으로 변경한다.

- '생년월일'은 1980-01-01 이후의 데이터만 저장할 수 있다.

- 제약 조건의 이름은 '생년월일제약'이다.

- 각 속성의 데이터 타입의 경우 '이름'은 VARCHAR(15),'학번'은 CHAR(8), '전공'은 CHAR(5), '성별'은 'SEX', '생년월일'은 DATE를 사용한다.

 

CREATE TABLE 테이블명 CREATE TABLE 학생
        (속성명 데이터타입 DEFAULT 기본값 NOT NULL         (이름 VARCHAR(15) NOT NULL
         ...          , 학번 CHAR(8)
           , 전공 CHAR(5)
           , 성별 SEX
           , 생년월일 DATE
         , PRIMARY KEY(기본키속성명, ...)          , PRIMARY KEY(학번)
         , FOREIGN KEY(외래키속성명, ...)          , FOREIGN KEY(전공)
                 REFERENCES 참조테이블(기본키속성명, ...)                  REFERENCES 학과(학과코드)
                 ON DELETE 옵션                  ON DELETE SET NULL
                 ON UPDATE 옵션                  ON UPDATE CASCADE
         , CONSTRAINT 제약조건명          , CONSTRAINT 생년월일제약
                 CHECK(조건식));                  CHECK(생년월일>='1980-01-01'));

 

 

 

 

CREATE VIEW

<고객> 테이블에서 '주소'가 '안산시'인 고객들의 '성명'과 '전화번호'를 '안산고객'이라는 정의하시오.

 

CREATE VIEW 뷰명(속성명, ...) CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT문; AS SELECT 성명, 전화번호
  FROM 고객
  WHERE 주소 = '안산시';

 

 

 

 

★ CREATE INDEX

<고객> 테이블에서 UNIQUE한 특성을 갖는 '고객번호' 속성에 대해 내림차순으로 정렬하여 '고객번호_idx'라는 이름의 클러스터드 인덱스를 정의하시오.

 

CREATE UNIQUE INDEX 인덱스명 CREATE UNIQUE INDEX 고객번호_idx
ON 테이블명(속성명 ASC 또는 DESC, ...) ON 고객(고객번호 DESC)
CLUSTER; CLUSTER;

 

 

 

 


ALTER

 

ALTER TABLE

 

<학생> 테이블에 최대 3문자로 구성되는 '학년' 속성을 추가하시오.

 

ALTER TABLE 테이블명 ADD 속성명 데이터타입 DEFAULT '기본값'; ALTER TABLE 학생 ADD 학년 VARCHAR(3);

 

 

<학생> 테이블의 '학번' 속성의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL 값이 입력되지 않도록 변경하시오.

 

ALTER TABLE 테이블명 ALTER 속성명 SET DEFAULT '기본값'; ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;

 

 

<학생> 테이블의 '학년' 속성을 삭제하고, 이 속성을 참조하는 다른 모든 개체도 함께 삭제하시오.

 

ALTER TABLE 테이블명 DROP COLUMN 속성명 CASCADE; ALTER TABLE 학생 DROP COLUMN 학년 CASCADE;

 

 

 

 


DROP

 

DROP SCHEMA 이름;

DROP DOMAIN 이름;

DROP TABLE 이름;

DROP VIEW 이름;

DROP INDEX 이름;

DROP CONSTRAINT 이름;

 

- CASCADE   : 제거할 요소를 참조하는 다른 모든 개체도 함께 제거합니다.

- RESTRICT  : 어떤 개체가 제거할 요소를 참조하고 있다면, 제거를 취소합니다.

 

 

<학생> 테이블을 삭제하되, 이 테이블을 참조하는 개체가 있을 경우 제거를 취소하시오.

 

DROP TABLE 이름 CASCADE 또는 RESTRICT; DROP TABLE 학생 RESTRICT;

 

 

 

 

728x90
반응형