본문 바로가기

Oracle SQLD

constraints

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