06. SQL syntax(4) - Constraint, rest
- Constraint
Table을 만들기 전제 규정하는 것을 제약조건(Constraint)라고 한다.
제약조건은 결함이 없다는 뜻을 가진 무결성을 특징으로 표현한다.
그 무결성은 두가지로 분류된다.
* 개체 무결성 : Table의 한 Record에 대하여, 대표하는 값이 부재상태가 있을수 없고 고유하지 아니하여야 되는 특징.
* 참조 무결성 : Table끼리 관계를 가진 특징.
다른 Table의 Column을 참조하는 Table의 Record에 대하여,
참조되는 Column의 값이 들어갈 수 없다는 특징.
* 제약조건 Key Word
PRIMARY KEY(PK) : 개체 무결성을 가진 키. Record를 대표하는 Column. NOT NULL과 UNIQUE의 성격이 있다.
FOREIGN KEY(FK) : 참조 무결성을 가진 키. 참조되는 Column의 관계를 적용하고 설정.
CHECK(CK) : TRUE값을 지키는 조건을 설정.
Ex :
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 32 33 34 35 36 37 38 39 40 41 42 | CREATE TABLE emp_test01( /*제약 조건의 이름을 걸어준다*/ id NUMBER(3) CONSTRAINT emp_test01_id_pk PRIMARY KEY, name VARCHAR2(12) CONSTRAINT emp_test01_name_nn NOT NULL, salary NUMBER(7,2) CONSTRAINT emp_test01_salary_ch CHECK (SALARY >=1000), title VARCHAR2(15) DEFAULT '사원', in_date DATE DEFAULT SYSDATE, dept_name VARCHAR2(15) ); INSERT INTO emp_test01 VALUES(1 , '홍길동' , 2000 , '부장' , SYSDATE , '총무부' ); /* 1행에 오류: ORA-00001: 무결성 제약 조건(SCOTT.EMP_TEST01_ID_PK)에 위배됩니다 */ INSERT INTO emp_test01 VALUES( 2 , NULL , 3000, '사원' , SYSDATE , '총무부' ); /* 3행에 오류: ORA-01400: NULL을 ("SCOTT"."EMP_TEST01"."NAME") 안에 삽입할 수 없습니다 */ INSERT INTO emp_test01 VALUES(2,'홍길동',500,'사원',SYSDATE,'총무부'); /* 1행에 오류: ORA-02290: 체크 제약조건(SCOTT.EMP_TEST01_SALARY_CH)이 위배되었습니다 */ |
- rest
* set linesize : 출력할 Table 너비 설정
* set pagesize : 출력할 Table 폭 설정
* COMMIT : 현재까지 입력된 Table의 내용을 Persistant 저장
ROLLBACK : COMMIT이후에 입력된 모든 명령어들 취소
* Default가 설정된 DataType은 NULL, null, ''로 대입이 가능하다.
* USER: 사용자의 정보
Ex
1 | INSERT INTO table VALUES(USER); | cs |
'Database > Theory' 카테고리의 다른 글
[Database/Theory]08. SQL syntax(6) - Sub query (0) | 2016.06.07 |
---|---|
[Database/Theory]07. SQL syntax(5) -Join (0) | 2016.06.07 |
[Database/Theory]05. SQL syntax(3) - Function (0) | 2016.06.06 |
[Database/Theory]04. SQL syntax(2) - Query (0) | 2016.06.06 |
[Database/Theory]03. SQL syntax(1) - DDL, DML (0) | 2016.06.06 |