일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- JOIN
- 백준
- Database
- 2156
- darkest dark
- 동적계획법
- ANSI JOIN
- 자바
- 오라클
- Dynamic Programming
- 10951
- oracle
- Eclipse
- DP
- 변수
- 문자열
- SQL
- algoritm
- 반복문
- db
- select
- 데이터베이스
- n x 2 타일링 2
- Java
- 데이터길이
- 알고리즘
- 입출력
- Algorithm
- 그대로 출력하기
- 소숫점처리
Archives
- Today
- Total
Cracking Code
SQL - 제약 조건 본문
데이터베이스의 무결성을 유지하기 위해서 일종의 제약을 둡니다. 데이터베이스 제약 조건에 대해 알아봅시다.
CREATE TABLE table(
column datatype [DEFAULT expr] -- 컬럼 LEVEL
[CONSTRAINT column_constraint],
...,
[table CONSTRAINT column_constraint], -- 테이블 LEVEL
...
);
제약 조건은 테이블 LEVEL, 컬럼 LEVEL에서 선언할 수 있습니다.
테이블 LEVEL은 모든 컬럼의 선언이 끝난 후에 제약 조건을 명시하는 것이며
컬럼 LEVEL은 컬럼의 선언과 동시에 제약 조건도 명시하는 것입니다.
🚨컬럼 LEVEL 에선 제약 조건을 하나씩만 선언할 수 있습니다.🚨
제약 조건의 종류
제약 조건은 CONSTRAINT 문으로 이름을 지정할 수 있습니다. (권장)
지정하지 않으면 SYS_Cn형식으로 임의 저장되기 때문에 관리가 어려워집니다.
제약 조건은 USER_CONSTRAINTS 데이터 딕셔너리에서 검색할 수 있습니다.
SELECT *
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = table;
DEFAULT
DEFAULT 옵션을 지정하면 해당 컬럼에 값을 입력하지 않았을 때
NULL 값이 아닌 DEFAULT 값으로 자동으로 입력됩니다.
NUM / NUMBER(2), WRITEDAY / DATE 를 컬럼으로 가지고 WRITEDAY의 DEFAULT 값은 현재 일시로 설정한 테이블을 만들어봅시다.
CREATE TABLE DEF_TABLE(
NUM NUMBER(2),
WRITEDAY DATE DEFAULT SYSDATE
);
DEF_TABLE의 NUM 컬럼만 지정하고 값을 1로 하여 행을 삽입해봅시다.
INSERT INTO DEF_TABLE(NUM)
VALUES(1);
DEF_TABLE의 모든 데이터를 출력해봅시다.
SELECT * FROM DEF_TABLE;
우리는 WRITEDAY에 값을 입력하지 않았지만 현재의 일시가 자동으로 입력된 것을 확인할 수 있습니다.
이후 게시글에선 제약 조건의 종류에 대해 알아보는 시간을 가져보도록 하겠습니다😎
'Database' 카테고리의 다른 글
SQL - UNIQUE KEY (유니크 키) (0) | 2020.07.21 |
---|---|
SQL - PRIMARY KEY (기본키) (0) | 2020.07.21 |
SQL - CREATE TABLE (0) | 2020.07.21 |
SQL - COMMIT, ROLLBACK (0) | 2020.07.20 |
TRANSACTION 개요 (0) | 2020.07.20 |
Comments