'Create Table'에 해당되는 글 1건

  1. 2016.10.25 오라클 테이블 생성 및 데이터 타입
2016. 10. 25. 08:55

테스트 계정 생성후

테스트 계정으로 테이블을 생성 해보겠습니다.

 

테이블 생성시 고려해야 할 부분은..

키값(primary key) 선택 , NOT NULL 여부 , 디폴드값 , 필드에 대한 데이터 타입

지정입니다.

 

예를 들어 사원 정보를 관리하는 테이블일 경우

기본적으로 필요한 사원ID , 사원명 이다. 그외 필요한 정보는

필드를 추가하여 관리한다.

이때 사원을 구분할 수 있는 키값(primary key)이 사원ID가 된다.

 

테이블 생성 하기전에 데이터 타입에 대해 정리 해보겠습니다.

(자주 쓰는 데이터타입에 대해서만 정리했습니다)

 

■ 데이터 타입

1. CHAR

  - 최대 길이 만큼 스페이스로 공백을 채우는 고정길이 문자 타입.

    CHAR 타입은 2000바이트 까지 저장 가능

 

2. VARCHAR2

  - 일반적으로 VARCHAR와 같다. 가변 길이 문자 타입으로 최대 자리까지

    공백을 채우지 않는다는 점은 CHAR와 다르다.
    VARCHAR2는 최대 4000바이트까지 저장 가능

 

3. NUMBER

  - 38자리 정밀도를 가진 숫자를 저장 오라클 NUMBER 타입은 많은 프로그래밍

    언어에서 사용되는 FLOAT, DOUBLE 타입보다 정밀도가 좋다.

 

4. DATE

  - 고정길이 7바이트 DATA/TIME 데이터 타입
    7가지 속성정보, 세기, 연도, 월, 일, 시간, 분, 초 를 가짐

 

5. TIMESTAMP

  - 고정길이 7 또는 11바이트 DATA/TIME타입
    초 단위 이하의 데이터를 가진다는것과 DATE와 다름
    초 단위를 소수점 9자리까지 표현가능

 

6. BLOB

  - 9i 이하는 4GB , 10g 이상은 4GB*10(Database blocksize)바이트 까지 가능
    BLOB 캐릭터 셋 변환이 적용되지 않는 이진 정보를 가짐
    스프레드시트, 이미지, 워드 파일등 저장에 적합

 

7. CLOB

  - 9i 이하는 4GB , 10g 이상은 4GB*10(Database blocksize)바이트 까지 가능
    CLOB는 캐릭터 셋 변환이 적용되는 정보를 가짐
    큰 평문정보를 저장하기 적합
    큰 평문 정보가 아닌 4000바이트 이하 평문은 VARCHAR2에 저장하는게 좋음

 

■ 테이블 생성

  1. 사원 정보 테이블을 생성 하겠습니다.

     사원 테이블에서 필요한 정보는 사원ID , 사원명 , 주소 , 입사일자 , 성별 ,

     나이 입니다.

 

  2. 필요한 정보에 대한 데이터 타입을 생각해보면 사원ID는 사원 테이블에서

      키값으로 VARCHAR2로 생성합니다.

      사원명 및 주소는 가변적이므로 VARCHAR2로 생성 합니다.

      입사일자는 날짜형식이므로 DATE로 생성 합니다.

      성별은 남,여 두가지의 값만 있는 고정길이라 CHAR로 생성 합니다.

      나이는 숫자 형식이므로 NUMBER로 생성 합니다.

 

  3. 생성 스크립트

     (테이블 생성시 CREATE TABLE 권한이 있어야 합니다.

      - GRANT CREATE TABLE TO TUSER;

     /*권한주기 SYS계정에서 TUSER한테 CREATE TABLE 권한 줌*/

 

CREATE TABLE SAWON_TABLE
(
   ID_SAWON      VARCHAR2(10) NOT NULL  /*사원ID*/
  ,NM_SAWON    VARCHAR2(30)                 /*사원명*/
  ,JUSO              VARCHAR2(100)               /*주소*/
  ,JOIN_DATE      DATE                             /*입사일*/
  ,GENDER         CHAR(1) DEFAULT '1'

  /*성별 NULL 입력시 1로 자동 셋팅됨*/

  ,AGE               NUMBER(3)                     /*나이*/
  ,DT_INSERT      DATE          NOT NULL     /*입력일자*/
  ,ID_INSERT      VARCHAR2(10)  NOT NULL /*입력자*/
  ,DT_UPDATE    DATE                             /*업데이트일자*/
  ,ID_UPDATE    VARCHAR2(10)                 /*업데이트자*/

 

,CONSTRAINT XPKSAWON_TABLE PRIMARY KEY(ID_SAWON)

 /*사원ID를 해당 테이블에 키값으로 지정*/
);

 

  4. 정리

    - 테이블 생성시 권한이 필요함.

    - 각 필드별 데이터 타입 지정

    - NOT NULL 필드 및 DEFAULT 값 옵션 설정 가능

           

 

Posted by dlfma1985