파게로그

DDL 본문

콤퓨타 왕기초/SQLD/JDBC/Oracle DB

DDL

파게 2021. 3. 16. 10:15

테이블 생성(Create Table)

  • 새로운 테이블 생성
  • 기본키, 외래키, 제약사항 등을 설정할 수 있음
Create Table EMP
(
    empno number(10) primary key,
    ename varchar2(20),
    sal   number(6)
);

 

제약조건 사용, CASCADE 사용

Create Table DEPT
(
    deptno   VARCHAR2(4) PRIMARY KEY,
    deptname VARCHAR2(20)
);

Create Table EMP
(
    empno      number(10),
    ename      varchar2(20),
    sal        number(10,2) default 0,    -- 기본값을 0으로 지정, 소수점 둘째자리까지 저장
    deptno     varchar2(4) not null,
    createdate date default sysdate,      -- 기본값을 sysdate(년/월/일)로 지정
    constraint emppk primary key(empno)   -- PK와 PK의 이름을 지정
    constraint deptfk foreign key(deptno)
                      references dept(deptno) -- DEPT 테이블의 DEPTNO 칼럼에 대해서 FK 생성
                      ON DELETE CASCADE -- 참조관계(PK-FK 관계)가 있을 경우 참조되는 데이터를 자동으로 반영
                                        -- 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제됨
                                        -- 이를 통해 참조 무결성 준수 가능
);

 

테이블 변경(Alter Table)

  • 생성된 테이블 변경
  • 칼럼 추가, 변경, 삭제
  • 기본키, 외래키 설정

 

테이블명 변경

ALTER TABLE EMP

RENAME TO NEP_EMP;

 

칼럼 추가

ALTER TABLE EMP

ADD (age NUMBER(2) DEFAULT 1);

 

칼럼 변경(데이터 타입, 데이터의 길이 변경, 제약조건 설정)

ALTER TABLE EMP

MODIFY (ename VARCHAR2(40) NOT NULL);

 

칼럼 삭제

ALTER TABLE EMP

DROP COLUMN age;

 

칼럼명 변경

ALTER TABLE EMP

RENAME COLUMN ename TO new_ename;

 

 

테이블 삭제(Drop table)

  • 해당 테이블 삭제
  • 테이블의 데이터 구조와 데이터까지 모두 삭제

DROP TABLE EMP;

 

옵션: 해당 테이블의 데이터를 FK로 참조한 슬레이브 테이블과 관련된 제약사항도 삭제

DROP TABLE EMP CASCADE CONSTRAINT;

 

 

 

뷰 생성과 삭제

- 뷰란 테이블로부터 유도된 가상의 테이블

- 실제 데이터를 가지고 있지 않음

- 테이블을 참조해서 원하는 칼럼만을 조회할 수 있게 함

- 데이터 딕셔너리(data dictionary)에 SQL문 형태로 저장하되 실행 시에 참조됨

 

뷰의 특징

  • 참조한 테이블이 변경되면 뷰도 변경됨
  • 뷰의 검색은 참조한 테이블과 동일하게 할 수 있음
  • 뷰에 대한 입력, 수정, 삭제는 제약이 있음
  • 한 번 생성된 뷰는 변경할 수 없고, 변경을 원하면 삭제 후 재생성해야 함
  • ALTER문을 통한 뷰 변경은 불가
  • 장점
    - 특정 칼럼만 조회할 수 있기 때문에 보안성이 향상됨
    - 데이터 관리가 간단함
    - SELECT문이 간단해짐
    - 하나의 테이블에 여러 개의 뷰를 생성할 수 있음
  • 단점
    - 뷰는 독자적인 인덱스를 만들 수 없음
    - 삽입, 수정, 삭제 연산이 제약됨
    - 데이터 구조를 변경할 수는 없음

CREATE VIEW T_EMP AS

SELECT * FROM EMP;

 

SELECT * FROM T_EMP;   --뷰 조회

 

DROP VIEW T_EMP; --뷰 삭제 (참조했던 테이블이 삭제되지는 않음)

 

 

 

테이블의 구조 확인(Desc Table)

  • 테이블의 구조를 확인
DESC EMP;

 

 

 

'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글

WHERE문 사용  (0) 2021.03.17
DML  (0) 2021.03.16
SQL의 종류  (0) 2021.03.16
관계형 데이터베이스(relational database)  (0) 2021.03.16
분산 데이터베이스  (0) 2021.03.16
Comments