Oracle create관련 명령

2019. 6. 19. 16:56Oracle/Tip

1. 일반 테이블 생성하기


create table ddl_test
(
    no      number(3),
    name    varchar2(10),
    birth   date default sysdate
);

* default 값은 모든 컬럼에 다 적용가능하며 데이터가 입력되지 않을 경우 null값이 입력되는데 default 값을 설정하면 설정된 값으로 데이터가 저장됩니다.

* default를 설정할 때는 데이터 타입만 같으면 됩니다.

 

* 주의사항

1. 테이블 이름은 반드시 문자로 시작해야함. 특수문자는 "으로 감싸야하며 권장하지 않음

2. 테이블, 컬럼 이름은 30 바이트까지 가능함

3. 테이블 이름이나 오브젝트 이름을 오라클이 사용하는 키워드를 사용하지 않기를 권장함

 

  • 테이블 복사하기

1. 모든 컬럼, 데이터 복사

create table employees2
as
    select * from employees;
select * from employees2;

* employees 테이블과 컬럼, 데이터가 같은 employees2가 생성되지만 컬럼과 데이터만 가지고 오게 됩니다.

 

2. 특정 컬럼만 복사

create table employees3
as
    select  department_id,
            first_name
    from    employees;

 

[결과]

 

3. 테이블의 구조만 복사

create table employees4
as 
    select *
    from employees
    where 1=2;

 

[결과]

* 조건을 충족하는 데이터가 없으므로 구조만 가지고 옵니다.

 

4.가상 컬럼 테이블 생성하기

create table virtual_column
(
    num1 number,
    num2 number,
    num3 number generated always as (num1+num2) virtual
);

insert into virtual_column(num1,num2) values(1,2);

 

[결과]

 

1. 테이블을 만들 때 virtual 키워드는 생략가능

2. 가상 컬럼이 존재할 때 insert시 데이터를 넣을 컬럼을 명시해줘야함

3. 가상 컬럼의 경우 insert, update는 불가능 하지만 where절 등 사용가능

4. 인덱스, 제약조건도 설정이 가능함

5. 편리하지만 성능이나 옵티마이저의 반응들을 검토 후 사용하길 권장함