constraints
- 테이블에 오류 data가 입력되는 것을 막기 위한 최소한의 규칙을 의미함.
- primary key : not null + unique
- foriegn key : 다른 테이블을 연결/참조/참고 하는 속성.
- not null : 데이터를 반드시 입력해야 한다.
- unique : 다른 행의 데이터와 중복되지 않는다.
- check : 연산을 통해 입력되는 데이터를 검사 할 때 사용.
예시)
create table product(
prdt_no number(5, 0)
, prdt_name varchar2(90) not null unique
, prdt_price number(7,0) check(prdt_price >= 0)
, prdt_stock number(7,0) check(prdt_stock >= 0)
, prdt_com varchar2(90) not null
);
primary key : 각각의 행을 구분지어주는 역할을 하는 것.
- not null + unique
- index가 기본 생성됨.(장점)
- 예) 쇼핑몰의 주문번호 또는 결제번호 : 20220513161920123456
- sequence 사용을 하면 좀더 쉽게 primary key 생성이 가능하다.
예시)
create table product(
prdt_no number(5, 0)
, prdt_name varchar2(90) not null unique
, prdt_price number(7,0) check(prdt_price >= 0)
, prdt_stock number(7,0) check(prdt_stock >= 0)
, prdt_com varchar2(90) not null
);
alter table product modify prdt_no number(5, 0) primary key;
user_constraints
- 시스템 테이블
- 현재 사용자가 사용하는 테이블의 제약 조건 내용들에 대한 목록.
cons_columns;
- 시스템 테이블
- 현재 사용자가 사용하는 테이블의 제약 조건들에 대한 목록
select * from user_constraints;
select * from user_cons_columns;
default
예시)
create table customer(
cust_id varchar2(30) primary key
, cust_pwd varchar2(30) constraint customer_pwd_nn not null
, cust_name varchar2(30) not null
, cust_tel varchar2(15)
, cust_addr varchar2(150)
, cust_grade number(2,0) default 1
, cust_mileage number(7,0) default 1000
);
default 값이 설정되면 아무것도 입력하지 않았을 때 default 값이 출력된다.
'Oracle SQLD' 카테고리의 다른 글
table (0) | 2022.06.03 |
---|---|
group by, having (0) | 2022.06.03 |
nvl, nvl2, decode, case ~ when ~ then (0) | 2022.06.03 |
to_date, months_between, add_months, next_day, last_day, 날짜 반올림과 자르기 (0) | 2022.06.03 |
to_char, data type (0) | 2022.05.25 |