티스토리 뷰
부산 ITWILL 학원 실습/ORACLE
[SQL 활용] 8. 데이터정의어(DDL) - Table (테이블 생성 시 제약 조건 정의하여 테이블 생성하기)
김뽀삐. 2018. 8. 9. 11:11테이블 생성 시 제약 조건 정의하여 테이블 생성하기
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 | CREATE TABLE employees ( employee_id NUMBER(6) CONSTRAINT emp_employee_id PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(50) CONSTRAINT emp_last_name_nn NOT NULL, email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL CONSTRAINT emp_email_uk UNIQUE, phone_number VARCHAR2(20), hire_date DATE CONSTRAINT emmp_hire_date_nn NOT NULL, job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, salary NUMBER(8, 2) CONSTRAINT emp_salary_ck CHECK (salary > 0 ), commission_pct NUMBER(2, 2), manager_id NUMBER(6) CONSTRAINT emp_manager_fk REFERENCES employees (employee_id), department_id NUMBER(4) CONSTRAINT emp_dept_fk REFERENCES departments (department_id) ); | cs |
1 | DESC employees | cs |
★ 주의
테이블 생성 employees1
제약 조건 이름에도 emp1_
겹치면 안 된다
자기 자신 참조할 때도 emp1
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 | CREATE TABLE employees1 ( employee_id NUMBER(6) CONSTRAINT emp1_employee_id PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(50) CONSTRAINT emp1_last_name_nn NOT NULL, email VARCHAR2(25) CONSTRAINT emp1_email_nn NOT NULL CONSTRAINT emp1_email_uk UNIQUE, phone_number VARCHAR2(20), hire_date DATE CONSTRAINT emmp1_hire_date_nn NOT NULL, job_id VARCHAR2(10) CONSTRAINT emp1_job_nn NOT NULL, salary NUMBER(8, 2) CONSTRAINT emp1_salary_ck CHECK (salary > 0 ), commission_pct NUMBER(2, 2), manager_id NUMBER(6) CONSTRAINT emp1_manager_fk REFERENCES employees (employee_id), department_id NUMBER(4) CONSTRAINT emp1_dept_fk REFERENCES departments (department_id) ); | cs |
1 | DESC employees1 | cs |
NOT NULL 은 DESC 로 확인 가능
나머지 제약 조건은 확인 방법이 따로 있다
제약 조건 확인 방법
DB 사전 ( Database Dictionary )
- 읽기만 가능
- 먼저 DESC 한다
1 | DESC user_constraints | cs |
제약 테이블에 선언된 제약 조건을 볼 수 있다
select 할려면 컬럼명을 알아서 할 수 없으니 구조 정보를 본다
제약 조건 이름, 제약 조건 타입만 먼저 본다
1 2 3 4 5 | SELECT constranint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = 'EMPLOYEES'; -- 테이블 명은 대문자로 작성하여야 함 | cs |
1 2 | l -- 버퍼 들어가기 / -- 버퍼 실행 | cs |
1 2 3 4 5 6 7 8 9 | ed -- 버퍼 들어가서 employees1도 확인 -- 테이블 -- TEST1 -- EMPLOYEES -- 확인해보기 | cs |
컬럼 넓이 수정
1 | COL search_condition FORMAT a50 | cs |
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] DB 모델링 - 테이블 만들 때 생각해보아야 할 순서 (0) | 2018.08.09 |
---|---|
[SQL 활용] SQLPLUS 에서 컬럼 넓이 조절 (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - Table (제약 조건 - CHECK) (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - Table (제약 조건 - FOREIGN KEY) (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - Table (제약 조건 - PRIMARY KEY) (0) | 2018.08.09 |