C#,Delphi,Oracle,MSSQL 개발자블로그

[Oracle/기본]10. 테이블 생성과 관리 본문

Programming/Oracle 공부

[Oracle/기본]10. 테이블 생성과 관리

19760323 2017. 5. 23. 13:44

● 데이터베이스 객체

 

- Table : 행과 열로 구성된 기본적인 저장매체의 단위

- View : 하나 이상의 테이블로부터 데이터의 부분집합을 논리적으로 표현

- Sequence : 기본 키 값을 발생

- Index : 어떤 질의의 성능을 향상

- Synonym : 객체에 대체 이름을 부여

 

● 이름 지정 규칙

- 문자로 시작해야한다.

- 문자 길이는 1-30이어야 한다.

- 오직 A-Z, a-z, 0-9, _, $, #만을 포함할 수 있다.

- 동일한 사용자가 소유한 객체의 이름은 중복되어서는 안된다.

- 오라클 서버 예약어는 안된다.

 

● 테이블 생성

 

CREATE TABLE [schema.]table

                    (col1 datatype [DEFAULT expr]

                     col2 datatype [DEFAULT expr] ...)

 

Ex. CREATE TABLE dept

               (deptno NUMBER(2)

               ,dname  VARCHAR2(14)

               ,loc       VARCHAR2(13));

 

- 테이블 생성 확인 : DESC dept 

 

 * DEFAULT 옵션 : 열에 대한 값 없이 어떤 행을 입력할 경우 NULL값이 열에 입력되지 않도록 한다.

                         (열에 대한 초기값 설정)

                         Ex. hiredate DATE DEFAULT SYSDATE

 

● 데이터형

 

- VARCHAR2(size) : 가변길이 문자 데이터 (최소크기 1, 최대크기 4000)

- CHAR(size) : 고정길이 문자 데이터 (최소크기 1, 최대크기 2000)

- NUMBER(p,s) : 가변길이 숫자 데이터

                     p(정밀도) : 1 ~ 38범위.

                                   십진자리수의 최대 개수.

                     s(스칼라) : -84 ~ 127범위.

                                   소수점 오른쪽의 자리 수.

                     Ex. number(5,2) 는 최대정수 3자리, 소수자리 2자리의 숫자형 데이터 형식.

- DATE : 날짜와 시간 값

- LONG : 2기가바이트까지의 가변 길이 문자 데이터

- BLOB : 4기가바이트까지의 이진 데이터

- CLOB : 4기가바이트까지의 단일 바이트 문자 데이터

- RAW(size) : size길이의 원시 이진 데이터 (최대크기 2000)

- LONG RAW : 2기가바이트까지의 가변 길이 원시 이진 데이터

- BFILE : 4기가바이트까지의 외부 파일에 저장된 이진 데이터

 

● 서브쿼리를 사용한 테이블 생성

 

    CREATE TABLE table

               (컬럼명1, 컬럼명2, ...)

    AS subquery;

- 열이 명시되었다면, 열의 수는 서브쿼리 SELECT 목록에 있는 열의 수와 같아야 한다.

- 열이 명시되지 않았다면,  이름서브쿼리의 열 이름과 같다.

 

Ex. CREATE TABLE dept30

     AS

          SELECT empno, ename, sal1*12 ANNSAL, hiredate

           FROM emp

          WHERE deptno = 30;

 

● ALTER TABLE

 

- 열추가

☞ 새로운 열은 마지막 열이 된다.  

 

   ALTER TABLE dept30

              ADD (job VARCHAR2(9));

 

- 열수정

 

   ALTER TABLE dept30

         MODIFY (ename VARCHAR2(15));

 

- 열삭제

 

   ALTER TABLE dept30

            DROP(ename);

 

● 테이블 삭제

    - DROP TABLE dept30;

      테이블의 모든 데이터와 구조삭제된다.

       ROLLBACK할 수 없다.(DDL)

 

    - TRUNCATE TABLE dept30;

      테이블의 모든 행을 삭제한다.

      ROLLBACK할 수 없다.(DDL)

    

    -  DELETE FROM dept30;

       테이블의 모든 행을 삭제한다.

       ROLLBACK할 수 있다.(DML)

      

 

☞ View나 Synonym(동의어)은 남지만 무효가 된다.

 

● 객체 이름 변경

 

테이블 이름, 뷰, 시퀀스, 동의어(Synonym)를 변경하기 위해, RENAME문장을 실행한다.

 

RENAME dept TO department;

 

  

● 테이블에 주석문 추가

 

COMMENT ON TABLE emp

IS 'Employee Information'

 

- 2000바이트 까지 주석문추가 가능하다.

 

 

Comments