< UNIQUE >
UNIQUE는 중복은 허용되지 않지만 NULL값은 허용이 된다. 예시로 e-mail 등록이 있다.
tbl_a테이블을 만드는데 email열에 unique조건을 줄 것이다.
이렇게 유니크가 설정된 테이블에 값을 넣어 볼 것이다.
우선은 e-mail열에 다른 값을 주고 apply를 해보면 성공적으로 값이 들어가는 것을 볼 수 있다.
하지만 e-mail 값에 같은 값을 넣어주면 실패하게 되는 것을 볼 수 있다.
또 다른 방법으로 unique 조건을 줘볼 것이다.
다음은 테이블을 미리 만든후 나중에 유니크를 설정하는 것이다.
유니크 설정
alter table 테이블명 add constraint 유니크제약조건 unique(열명);
테이블만 만들었을 때는 이렇게 유니크 설정이 되어 있지 않다.
여기에 유니크 설정 명령어인 alter table tbl_c add constraint uk_tbl_c_email unique(email); 를 입력하면 이렇게 유니크 설정된 것을 볼 수 있다.
다음은 설정된 유니크 조건을 없애 볼 것이다.
유니크 조건을 삭제하기 위해서는 alter table 테이블명 drop constraint 유니크제약조건; 을 입력하면 된다.
alter table tbl_c drop constraint uk_tbl_c_email;
< CHECK >
CHECK 조건은 입력하는 값을 제한하기 위해 사용된다.
조건을 주는 방법은 여러가지이다.
첫번째는 age int check(age>=20 and age<=50) 로 열을 지정해주면서 바로 CHECK조건을 주는 것이고
두번째는 constraint CK_ADDR check (addr in('대구', '부산', '대전')) 로 먼저 열을 지정한 뒤 따로 CHECK조건을 주는 것이다.
체크 조건을 확인해보기 위해서는 select * from information_schema.check_constraints; 이 명령어를 사용하면 된다.
한글은 깨져 보이지않지만 들어가 있는 것을 볼 수 있다.
다음은 tbl_d 테이블에 값을 넣어 볼 것이다.
먼저 조건에 맞는 값을 넣어본다.
잘 들어가는 것을 볼 수 있다.
다음은 나이 값에 조건에 맞지않는 값을 넣어 볼 것이다.
이렇게 에러가 나는 것을 볼 수 있다.
다음은 주소 열에 조건에 맞지 않는 값을 넣어 볼 것이다.
역시 에러가 나는 것을 볼 수 있다.
다음은 check조건을 삭제해 볼 것이다.
check조건 삭제는 alter table 테이블명 drop check 삭제할 열명; 으로 하면 된다.
먼저 alter table tbl_d drop check CK_ADDR; 를 사용하면 주소 조건이 사라진 것을 볼 수 있다.
이어서 alter table tbl_d drop check tbl_d_chk_1; 를 하면 나이 조건이 사라진 것을 볼 수 있다.
< DEFAULT >
DEFAULT는 값을 넣지 않으면 미리 설정한 값이 들어가도록 하는 것이다.
이렇게 테이블을 만들고 구조를 살펴보면 이렇게 나온다.
이 테이블에 값을 넣어볼 것이다.
이렇게 이름 값이 들어 있지 않은 곳에 '이름없음' 이라고 들어간 것을 볼 수 있다.
다음은 조건을 추가해볼 것이다.
조건 추가는 alter table 테이블명 alter column 컬럼명 set default 조건; 으로 입력하면 된다.
이렇게 주소를 설정하지 않았는데 대구가 들어 간 것을 볼 수 있다.
다음은 조건 삭제이다.
조건 삭제는 alter table 테이블명 alter column 컬럼명 drop default; 하면 된다.
'IT수업 > 데이터베이스' 카테고리의 다른 글
it 수업 6주차 (17) 내장 함수 (1) | 2024.02.01 |
---|---|
it 수업 6주차 (16) 변수, LIMIT, 형 변환, 비교연산자 (1) | 2024.02.01 |
it 수업 6주차 (14) 제약조건 PK, FK (1) | 2024.01.31 |
it 수업 6주차 (13) insert문 (0) | 2024.01.31 |
it 수업 6주차 (12) Group By 절 (1) | 2024.01.30 |