2.2 테이블(TABLE) 생성, 삭제, 변경, 복사

2019. 9. 25. 20:46·CS/데이터베이스
728x90
반응형

데이터를 넣고 수정하고 삭제하는, 즉 데이터를 담고 있는 객체가 테이블이다.

테이블은 DBMS상에서 가장 기본적인 객체로 행과 열로 구성된 2차원 형태의 객체로 사용한다. EX) 엑셀 표

테이블은 데이터가 저장되는 가장 기본이되는 단위이다.

 

1. 테이블 생성

※ [ ]은 생략 부분이므로 써도 되고 안써도 된다. 쓰지 않을 때는 디폴트 값이 적용된다.
※ 아래의 빨간글자를 테이블의 용도에 맞게 임의로 지정해주면 된다.
※ 참고로 실제로 만들 때 [ ]는 쓰지 않는다.

 

CREATE TABLE [스키마.]테이블명(

       컬럼명      데이터타입  [NULL, NOT NULL]      

       컬럼명      데이터타입  --- ⓐ [NULL, NOT NULL] --- ⓑ

       컬럼명      데이터타입  [DEFAULT   값]  --- ⓒ

...

)[TABLESPACE 테이블스페이스명];

 

▼ 테이블을 생성할 때, 데이터 타입과 제약조건을 정의하고 생성하기에 아래와 같은 기능을 파악해보자.

 

문자 데이터 타입 --- ⓐ

      오라클에서 제공하는 문자형은 다음과 같다.

데이터 타입 설명
CHAR( 크기[ BYTE | CHAR ]) 고정길이 문자, 최대 2Kbyte, 디폴트 1byte
VARCHAR2( 크기[ BYTE | CHAR ]) 가변길이 문자, 최대 4Kbyte, 디폴트 1byte
NCHAR(크기) 고정길이 유니코드 문자, 최대 2Kbyte, 디폴트 1byte
NVARCHAR2(크기) 가변길이 문자, 최대 4Kbyte, 디폴트 1byte
LONG 최대 2GB 크기의 가변길이 문자형
  • 고정길이 CHAR(5) 선언 후 5개 중 3개의 데이터를 입력한다고 하자 그럼 2개의 빈 공간이 남는다. 빈 공간을 쓰지고 않고 가지고 있어 저장공간의 비효율성을 띈다. 주민등록번호처럼 한국에서 통일된 길이가 아니라면 쓰지 않는 것을 추천한다.
  • 반대로 가변길이는 5개 중 3개의 데이터를 써도 남은 2개의 빈 공간은 사라지게 된다. 저장공간 효율성이 올라간다. 
  • LONG은 너무 크기 때문에 잘 사용되지 않는다. 

 

 

제약조건 --- ⓑ

     오라클에서 제공하는 제약조건은 다음과 같다.

 

① NOT NULL --- 컬럼을 정의할 때, 반드시 값이 있어야 한다. 

    컬럼명 데이터타입 NOT NULL 

 

② UNIQUE --- 컬럼에 값이 유일해야 한다. 즉 중복 값을 허용하지 않는다.

    컬럼명 데이터타입 UNIQUE

    (또는)

    CONSTRAINTS 제약조건명 UNIQUE(컬럼명, ...)

 

③ PRIMARY

    컬럼명 데이터타입 PRIMARY KEY제약조건명 UNIQUE(컬럼명, ...)

    (또는)

    CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명, ...)

 

④ FOREIGN --- 반드시 참조 테이블이 먼저 생성 되어야 하며, 참조키가 참조 테이블의 기본키로 만들어야한다.

    CONSTRAINTS 외래키명 FOREIGN KEY(컬럼명, ...) REFERENCES 참조 테이블(참조 테이블 컬럼명,...)

 

⑤ CHECK

    CONSTRAINTS 체크명 CHECK(컬럼명 BETWEEN 최소값 AND 최대값) --- 사이값의 조건을 정의 할 수 있다.

    CONSTRAINTS 체크명 CHECK(컬럼명 IN( '값1', '값2')) --- 두 값만 정의 할 수 있다.  

 

DEFAULT --- ⓒ

     DEFAULT 값은 컬럼을 생성한 다음 값은 넣지 않고 값을 생성하면 DEFAULT의 값이 자동으로 채워진다.

    컬럼명 데이터타입 DEFAULT 생성초기값,

 

2. 테이블 삭제

DROP TABLE [스키마.]테이블명 [CASCADE CONSTRAINTS];

 

3. 테이블 변경

① 컬럼명 변경:

     ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;

 

② 컬럼 타입 변경:

     ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;

 

③ 컬럼 추가:

     ALTER TABLE [스키마.]테이블명 ADD 컬럼명 데이터타입;

 

④ 컬럼 삭제:

     ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;

 

⑤ 제약조건 추가:

     ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명);

 

⑥ 제약조건 삭제:

     ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;

 

4. 테이블 복사

CREATE TABLE [스키마.]테이블명 AS SELECT 컬럼1, 컬럼2, ... FROM 복사할 테이블명;

728x90
반응형

'CS > 데이터베이스' 카테고리의 다른 글

트랜잭션 충돌 방지 전략: Pessimistic Lock과 Optimistic Lock 차이와 적용법  (0) 2025.06.27
2.3 뷰(VIEW)  (0) 2019.09.26
1. SQL이란?  (0) 2019.09.25
2.1 데이터베이스 객체  (0) 2019.09.25
'CS/데이터베이스' 카테고리의 다른 글
  • 트랜잭션 충돌 방지 전략: Pessimistic Lock과 Optimistic Lock 차이와 적용법
  • 2.3 뷰(VIEW)
  • 1. SQL이란?
  • 2.1 데이터베이스 객체
크크크크
크크크크
공뷰를 합시다.
    반응형
  • 크크크크
    Tom's Note
    크크크크
  • 전체
    오늘
    어제
    • 분류 전체보기 (128)
      • IT 지식 (4)
      • CS (66)
        • 알고리즘 & 자료구조 (19)
        • 운영체제 (41)
        • 네트워크 (1)
        • 데이터베이스 (5)
      • 보안 (6)
      • SW 공학 & 프로그래밍 언어 (5)
        • Java (28)
        • 디자인 패턴 (1)
        • 형상관리 (2)
        • 톰캣(WAS) (2)
        • SW 방법론 (3)
        • 스프링부트 (5)
      • 시스템 설계 (4)
        • Docker (2)
      • 자격증 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      리눅스
      REST API
      암호설정
      단반향
      2차
      docker
      java
      DTO
      whatis
      cifs
      Chage
      which
      chmod
      apropos
      자바
      스프링부트
      문제해결
      su
      usermod
      분석기법
      /etc/passwd
      DI
      whereis
      1급
      ADsP
      man
      알고리즘
      비트연산
      passwd
      불변
    • 최근 댓글

    • 최근 글

    • 250x250
    • hELLO· Designed By정상우.v4.10.3
    크크크크
    2.2 테이블(TABLE) 생성, 삭제, 변경, 복사
    상단으로

    티스토리툴바