DML
- 데이터 조작어(select, insert, update, delete)
DDL
- 데이터 정의어(create,alter,drop)
- 객체(DB Object)를 생성한다.
- DB Object : 테이블, 뷰, 인덱스, 트리거, 프로시저, 제약사항 등..
**테이블 생성하기(= 텍스트 파일 구조 만들기)
create table 테이블명
(
컬럼 정의,
컬럼 정의,
컬럼명 자료형(길이) NULL표시 제약사항
);
**컬럼명 자료형(길이) NULL표시 제약사항
**제약사항, Constraint
- 해당 컬럼값에 대한 조건(규제) > 조건을 만족하지 못하면 데이터를 못넣는다. > 유효성 검사
- 데이터베이스 무결성 보장(Integrity Constraint Rule - 무결성 제약 조건)
1. Not Null
- 반드시 값을 가져야 한다.
2.Primary Key(PK)
- 기본키
- 테이블 내에서 모든 컬럼들 중에 대표가 되는 컬럼 > 행과 행을 구분하는 수단으로 사용
- 테이블 내에서 행을 구분하기 위한 고유 식별자
- 1개의 테이블내에는 반드시 PK가 존재해야 한다.
- PK는 보통 1개의 컬럼으로 구성 + 가끔씩 2개의 컬럼으로 PK를 구성하는 경우도 있음(복합키, Composite Key)
- PK는 따로 명시하지 않아도 자동으로 not null이 적용된다.
- PK는 따로 명시하지 않아도 Duplicate가 적용된다. > unique가 적용된다. = 중복값을 가질 수 없다.
- PK = Not NUll + Unique
ex)
create table Memo
(
seq number primary key, -- 테이블 행 구분 고유 식별자 + not null + unique(중복불가)
name varchar2(30) not null,
memo varchar2(10000) null,
regdate date null -- 입력하지 않으면 현재시간으로 등록됨.
);
3. Unique
- 해당 컬럼값이 테이블 내에서 유일값이어야 한다.(중복값이 존재해서는 안된다.)
- PK 와 유사
- NULL을 가질 수 있다.
- 절대로 uique식별자로 사용하면 안된다.(null이 있기에)
4. check **?
- 열거형, 범위 비교 등의 제약(사용자 정의형)
- where절 조건과 유사
ex)
create table Memo
(
seq number primary key,
name varchar2(20) default '익명' null,
memo varchar2(1000) not null,
color varchar2(30) check(color in('red','yellow','blue')) not null, 또는 color varchar2(30) check(color = 'red' or color = 'yellow' or color = 'blue') not null,
regdate date check(regdate between to_date('2018-01-01', 'yyyy-mm-dd') and to_date('2018-12-31', 'yyyy-mm-dd') not null
또는 regdate date check(to_char(regdate,'hh24') between 0 and 11) not null
또는 regdate date check(to_char(regdate,'d') between 2 and 6) not null
);
5. default
- 컬럼 기본값
- 해당 컬럼값에 값을 넣지 않으면 null을 입력하는 대신 자동으로 미리 준비된 기본값을 넣는다.
ex)
create table tblMemo
(
seq number primary key,
name varchar2(20) default '익명' null,
memo varchar2(1000) not null,
regdate date not null
);
**제약 사항을 만드는 방법
1. 컬럼 수준에 만드는 방법(여태 수업했던 방법)
- 컬럼을 정의할 때 같이 제약을 추가하는 방법
- 1 : 1 제약(컬럼 1개 : 제약 1개)
- 컬럼명 자료형 제약사항
- 컬럼명 자료형 [contraint 제약명] 제약사항
2. 테이블 수준에서 만드는 방법
- pk,fk,check,uq : 가능
- nn, default : 불가능
a. create
b. alter //X
'오라클' 카테고리의 다른 글
오라클(SQL) 함수1(집계함수) (0) | 2018.08.31 |
---|---|
오라클 DB 강좌 (0) | 2018.08.31 |
조인(JOIN) (0) | 2018.08.29 |
뷰(View) (0) | 2018.08.29 |
INSERT문/UPDATE문/DELETE문 (DML) (0) | 2018.08.29 |