DBMS/Summary

DDL

gandus 2010. 6. 1. 13:50


오브젝트 

테입블 -  행과 열을 가진 기본 구성단위

뷰       -  여러테이블의 컬럼들을 뷰로 만들어서 사용자에게 제공해준다. 
              테이블에서 가져와서 - > 다른 테이블이 변경되면 뷰 값도 변경된다.
              -> 논리적으로 데이타의 부분집합을 , 하나의 테이블이나 여러개의 데이타로 부터

시퀀스 -  수치값을 발생한다.

인덱스 -  사전적으론 목차,  많은 양의 데이타를 가져오는데는 속도가 느려진다, 
              그걸 방지하기 위해서 테이블에 목차를 생성한다.  

Synomym -  오브젝트에 별도의 이름을 준다. 별멍같은....


Crate table 
  
CREATE TABLE  dept (
     deptno NUMBER(2),
     dname  VARCHAR2(14),
     location VARCHAR2(13)
);

데이타 타입에는 숫자형, 문자형 , date 형 밖에 없다.


사용자 테이블(User Tables)과 시스템 테이블(Data Dictionary)
 - >  DD테이블 - 오라클에 의해서 만들어지거나 유지되는 테이블이다.



기존의 테이블에서 원하는 컬럼만 뽑아서 테이블 생성가능

CREATE TABLE dept30
   AS
         SELECT empno, ename,
                      sal*12 ANNSAL, // 이것은 별명설정해준다.
                      hiredate
         FROM emp
         WHERE deptno = 30;

DESCRIBE dept30

 

테이블의 사용자 조정 방법 - Alter table
- ADD, MODIFY,  DROP

ADD :

ALTER TABLE dept30     // 기존 칼럼 명 있으면 불가- 당연한것.
ADD (deptno int(3));

Modufy :

ALTER TABLE dept30
MODIFY (ename VARCHAR2(30));      //  오라클용

ALTER TABLE dept30
MODIFY  ename VARCHAR(30);        //   mysql 용

- > 기존 길이보다 작아지면, 기존 데이타가 짤린다 그래서 보통 늘리는 용도로 사용한다.


Change :  mysql 에서 지원한다.

CREATE TABLE test
AS SELECT * FROM emp;

ALTER TABLE test
MODIFY  empno int(5);       // 데이터 타입만

ALTER TABLE test
CHANGE  empno no int(5);   //  칼럼 명까지 바꾸고 싶을때

ALTER TABLE test
CHANGE  comm comm INT;      // 데이타 타입이 바꿔져서, 오류생김 유의할것

ALTER TABLE test
RENAME TO new;           // 테이블 이름 바꿈


Rename :

RENAME dept TO detail_dept;        // 오라클
RENAME TABLE detp TO detail_dept;  // mysql

Drop :

ALTER TABLE dept30
DROP COLUMN  ename;         // 칼럼을 제거해준다.

Drop table 은 DDL이라서 버퍼에 쌓이지 않고 , 그래도 지워버린다.
유의할것.  - > 앞에 한 트랜잭션도 모두 커밋이 되버림


Truncating a Table :   테이블 전체를 지워버린다.

TRUNCATE TABLE detail_dept;

- > 딜리트 , 드랍, 트렁케이트 차이?   드랍은 롤백 안됨 스토리지 반납은 안함 , 트렁케이트  스토리지 반납을 한다.



Adding Comments to a Table    -  오라클에서만 가능 , 주석을 달자

COMMENT ON TABLE employees
IS ‘Employee Information’;