- sungjuk 테이블 생성
create table sungjuk (
sno int primary key --기본키(유일성)
,uname varchar(50) not null
,kor int check(kor between 0 and 100) --국어점수 0~100사이만 입력가능
,eng int check(eng between 0 and 100) --영어점수 0~100사이만 입력가능
,mat int check(mat between 0 and 100) --수학점수 0~100사이만 입력가능
,addr varchar(50) check(addr in ('Seoul','Jeju','Busan','Suwon'))-- 주소 'SEOUL','JEJU','BUSAN','SUWON' 입력
,tot int default 0
,aver int default 0
,wdate date default sysdate --현재 날짜 함수
);
[테이블 제약조건 에러 메세지]
-- primary key 제약조건
-- ORA-00001: 무결성 제약 조건(SYSTEM.SYS_C007315)에 위배됩니다
-- sno 칼럼은 기본키(PK)이므로 중복된 값을 허용하지 않음
insert into sungjuk(sno, uname) values(1, '홍길동'); --2번 실행했을 때 에러 발생
-- not null조건
-- ORA-01400: NULL을 ("SYSTEM"."SUNGJUK"."UNAME") 안에 삽입할 수 없습니다
insert into sungjuk(sno) values(2); -- uname 칼럼에 반드시 값을 입력해야 함
insert into sungjuk(sno, uname) values(2, '1234567890');
insert into sungjuk(sno, uname) values(3, 'ABCDEFGHIJ');
-- ORA-12899: "SYSTEM"."SUNGJUK"."UNAME" 열에 대한 값이 너무 큼(실제: 11, 최대값: 10)
insert into sungjuk(sno, uname) values(4, 'ABCDEFGHIJK');
insert into sungjuk(sno, uname) values(5, '무궁화');
-- ORA-12899: "SYSTEM"."SUNGJUK"."UNAME" 열에 대한 값이 너무 큼(실제: 12, 최대값: 10)
insert into sungjuk(sno, uname) values(6, '대한민국');
--check 제약조건
-- ORA-02290: 체크 제약조건(SYSTEM.SYS_C007324)이 위배되었습니다
insert into sungjuk(sno, uname, kor, eng, mat)
values(1, '홍길동', -10, 20, 300);
-- ORA-02290: 체크 제약조건(SYSTEM.SYS_C007325)이 위배되었습니다
-- addr칼럼에 'Incheon' 허용 안 함
insert into sungjuk(sno, uname, kor, eng, mat, addr)
values(1, '홍길동', 10, 20, 30, 'Incheon');
-- default 제약조건
-- tot와 aver는 0 입력, wdate는 현재날짜가 입력됨
insert into sungjuk(sno, uname, kor, eng, mat, addr)
values(1, '홍길동', 10, 20, 30, 'Seoul');
--SQL 오류: ORA-00913: 값의 수가 너무 많습니다 - "too many values"
insert into sungjuk(sno, uname, kor, eng, mat)
values(2, '홍길동', 10, 20, 30, 'Seoul');
'Backend > Oracle DB' 카테고리의 다른 글
[Oracle DB] CASE WHEN (0) | 2023.03.13 |
---|---|
[Oracle DB] GROUP BY와 DISTINCT, HAVING 절 (0) | 2023.03.13 |
[Oracle DB] 문제: 성적테이블 (0) | 2023.03.11 |
[Oracle DB] 시퀀스, SYSDATE 함수 (0) | 2023.03.11 |
[Oracle DB] SORT 정렬 (0) | 2023.03.11 |