모종닷컴

Oracle 문법 정리 - DDL 본문

Programming/데이터베이스

Oracle 문법 정리 - DDL

모종 2018. 1. 8. 08:40
반응형

◆DDL

 

1)데이터베이스 5가지 객체

객체

설명

테이블

기본 저장 단위

하나 이상의 테이블에 있는 데이터의 논리적 부분 집합

시퀀스

숫자 값을 생성

인덱스

일부 쿼리 성능 향상

동의어

객체에 다른 이름 부여

 

2)테이블 이름 명명 규칙

-문자로 시작

-길이는 1- 30

-특수문자 _,$,# 사용가능

-동일한 유저가 소유한 다른 객채의 이름과 중복되지 않아야 함.

-예약어(sum,table등 등) 사용할 수 없습니다.

 

3)데이터 유형

varchar char 무슨 차이일까?

 

char형은 처음 지정한 크기만큼 저장을 하지만

varchar는 처음 지정한 크기보다 적은 데이터가 들어간다면 그 데이터만큼만 할당을 하는 데이터 유형이다.

 

4)제약 조건

select * from user_constraints;  -- 접속 계정의 제약 조건들 보기

 

 

not null

create table employees(

employee_id number(6),

frist_name varchar2(20),

job_id varchar(10) CONSTRAINT emp_emp_job_nn not null,

CONSTRAINT emp_emp_id_pk

PRIMARY KEY (employee_id)

);

 

unique

create table employees(

    employee_id number(6) ,

    last_name varchar2(25) not null,

    email varchar2(25) constraint emp_email_uk unique,

    primary key(employee_id)

);

 

create table t_friend(

    user_id varchar2(20),

    f_id    varchar2(20)

);

 

alter table t_friend add constraint c_friend_uk unique(user_id,f_id);

 

foreign key

create table t_emp(

    empno number(4),

    ename varchar2(30) not null,

    hp varchar2(11),

    sal number,

    deptno number(2),

    constraint t_emp_no_pk primary key(empno),

    constraint t_emp_dept_fk foreign key (deptno) references t_dept(deptno)

);

 

 

foreign key 3가지 추가 제약 조건

1)     on delete cascade : 연쇄적으로 삭제 , 상위 테이블의 행이 삭제되면 하위에 연관되어있던 테이블의 종속 행들도 삭제한다.

2)     on delete set null : null로 대체 , 상위 테이블의 행이 삭제되면 하위에 연관되어있던 테이블들의 값은 null로 대체한다.

3)     default 기본 : 갱신이나 삭제를 허용하지 않음.

 

check

create table t_friend(

    user_id varchar2(20),

    f_id    varchar2(20),

    sal number

    constraint t_friend_sal_ck check(sal > 1000)

);

 

default

create table café(

 café_num number primary key,

 café_name varchar2(20) not null,

 café_cnt number defalut 1

);

 

서브 쿼리를 이용한 테이블 생성(ctas)

CREATE TABLE dept80

AS

SELECT employee_id, last_name,

salary*12 ANNSAL,

hire_date

FROM employees

WHERE department_id = 80;

 

테이블 변경

alter table employees read only;--읽기 전용

 

alter table employees read write;--읽기 쓰기 둘 다 가능


alter table [테이블명] modify ([컬럼명] [데이터타입] [제약조건]);

 

테이블 삭제

drop table dept purge;


반응형