SQL

[ SQL ] Tibero DDL

Jerry_JH 2021. 12. 30. 23:49
728x90

ORACLE 과 동일한 명령어가 많지만, 조금씩 틀린점이 있다.


CREATE

1. 테이블 생성

  • 기본 구조
CREATE TABLE [table name] (
    [column name1] [column type1],
    [column name2] [column type2],
    [column name3] [column type3],
    
    -- CONSTRAINT [PK name] PRIMARY KEY ([column name])
);
  • Example
    CREATE TABLE COMPANY.EMPLOYEE (
        EMP_NUMBLE NUMBER,
        NAME VARCHAR(20) NOT NULL,
        AGE NUMBER,
        ADDRESS VARCHAR(100),
        START_DATE DATE,
        CONSTRAINT PK_EMPLOYEE PRIMARY KEY (EMP_NUMBLE)
     );​
     

COMPANY 라는 스키마의 EMPLOYEE 테이블을 생성한 명령어이다.

 

컬럼은 총 5개이고, NAME은 NOT NULL 이라는 옵션이 붙어져있다.

 

PK는 PK_EMPLOYEE 이름으로 EMP_NUMBLE로 지정하였다.


2. 인덱스 생성

  • 기본 구조
    CREATE INDEX [INDEX NAME] ON [TABLE NAME] ([COLUMN NAME]);
  • Example
    CREATE INDEX EMP_INDEX ON COMPANY.EMPLOYEE (NAME);​
     

COMPANY스키마 EMPLOYEE 테이블의 NAME이라는 컬럼으로 인덱스를 생성하였다. 

이름은 EMP_INDEX 설정


ALTER

1. 테이블 컬럼 삭제

  • 기본 구조
ALTER TABLE [TABLE NAME] DROP COLUMN [COLUMN NAME];
  • Example
ALTER TABLE COMPANY.EMPLOYEE DROP COLUMN AGE;

COMPANY 스키마 EMPLOYEE 테이블의 AGE 컬럼을 삭제한 코드이다.

PK , FK로 설정된 컬럼을 삭제하면 설정된 옵션에 따라서 예상치 못한 결과가 나올 수 있으므로 항상 확인해주고 실행해야 된다.


2. PK 지정

  • 기본 구조
ALTER TABLE [TABLE NAME] ADD CONSTRAINT [PK NAME] PRIMARY KEY([COLUMN NAME]);
  • Example
ALTER TABLE COMPANY.EMPLOYEE ADD CONSTRAINT PK_EMP PRIMARY KEY(NAME, AGE);

COMPANY 스키마 EMPLOYEE 테이블의 PK_EMP 라는 이름으로 NAME,AGE를 조합으로 PK를 생성하였다.

 

PK가 되기 위해서는 몇 가지의 조건이 붙는다. 이 조건을 지키지 않으면 오류가 발생한다.

1. 해당 컬럼의 NULL값이 있으면 안된다.

2. 해당 컬럼의 중복값이 있으면 안된다. (모든 값이 유니크해야됨)

 


3. INDEX RENAME 

  • 기본 구조
ALTER INDEX [INDEX NAME] RENAME TO [INDEX NAME(NEW)];
  • Example
ALTER INDEX EMP_INDEX RENAME TO NEW_EMP_INDEX;

EMP_INDEX 이름을 인덱스의 이름은 NEW_EMP_INDEX로 변경했다.

 


4. PK RENAME

  • 기본 구조
-- PK 삭제
ALTER TABLE [TABLE NAME] DROP CONTRAINT [PK NAME];

-- PK 설정
ALTER TABLE [TABLE NAME] ADD CONTRAINT [PK NAME(NEW)] PRIMARY KEY([COLUMN NAME]);
  • Example
-- PK 삭제
ALTER TABLE COMPANY.EMPLOYEE DROP CONTRAINT PK_EMP;

-- PK 설정
ALTER TABLE COMPANY.EMPLOYEE ADD CONTRAINT NEW_PK_EMP PRIMARY KEY(NAME,ADDRESS);

EMP_INDEX 이름을 인덱스의 이름은 NEW_EMP_INDEX로 변경했다.

 

INDEX와 PK의 이름은 겹치지 않게 주의해야한다.

 


DROP

1. 테이블 삭제

  • 기본 구조
DROP TABLE [TABLE NAME];
  • Example
DROP TABLE COMPANY.EMPLOYEE ;

COMPANY 스키마의 EMPLOYEE 테이블을 삭제했다. 

 

 

728x90