Database SQL/Oracle

[DB#14] DB기본 연습문제(데이터 입력)

양동민 2020. 11. 25. 13:04

예제 ) exam테이블 만들기

시험에 필요한 수험번호/이름/시험명/1과목/2과목/3과목/4과목/5과목/응시일/등록일 을 만들고, 데이터 추가해주기.

여기서 데이터는 예시가 있으면 그대로 입력해주고, 나의 경우엔 원래있지만 무작정 입력해보았다.

 

CREATE TABLE EXAM(

수험번호, ->영어로 변수처럼 STUDENT_CODE CHAR(8) -> CHAR는 고정문자열이고, 크기가 고정된 데이터에 사용할때 유용하기 때문에 수험 번호와 같은 경우엔 CHAR가 효과적이다.

이름, -> STUDENT_NAME VARCHAR(21) -> 이름과 같은 경우는 확실하게 알아야한다. 최대 몇글자 까지 가능한지, 법적으로 얼마나 이름 길이가 허용되어있는지를 검색정도는 해보고 길이를 설정해야한다.

시험명, -> EXAM_SUBJECT VARCHAR(18) -> 'OO처리기사' 한글 한 글자에 3바이트로 했을때, 그리고 UTF-8인지 다른 글자인지 확인하고 설정해야 한다.

1과목, -> SUBJECT_NO1 NUMBER(3)

2과목, -> SUBJECT_NO2 NUMBER(3)

3과목, -> SUBJECT_NO3 NUMBER(3)

4과목, -> SUBJECT_NO4 NUMBER(3)

5과목, -> SUBJECT_NO5 NUMBER(3)

응시일, -> EXAM_DATE DATE -> 연 월 일 시 분 초까지 저장되기때문에 따로 문자열을 등록하지않아도 괜찮다.

등록일 -> REGIST_DATE DATE -> 위와 같다.

 

 

 

데이터 추가(DML)

INSERT INTO EXAM(수험번호, 이름, 시험명, 1과목, 2과목, 3과목, 4과목, 5과목, 응시일, 등록일)

VALUES(?,?,?,?,?,?,?,?,?)

 

영어로 다시 집어넣으면  

INSERT INTO EXAM(STUDENT_CODE, STUDENT_NAME, EXAM_SUBJECT, SUBJECT_NO1, SUBJECT_NO2, SUBJECT_NO3, SUBJECT_NO4, SUBJECT_NO5, EXAM_DATE,REGIST DATE)

VALUES('A0013212', '홍길동', '정보처리기사', 45, 50, 70, 80, 100, '2020-10-30', sysdate)

 

INSERT INTO EXAM(STUDENT_CODE, STUDENT_NAME, EXAM_SUBJECT, SUBJECT_NO1, SUBJECT_NO2, SUBJECT_NO3, SUBJECT_NO4, SUBJECT_NO5, EXAM_DATE,REGIST DATE)

VALUES('A0013215', '전우치', '정보처리기사', 60, 40, 50, 90, 700, '2020-10-30', sysdate)

 

INSERT INTO EXAM(STUDENT_CODE, STUDENT_NAME, EXAM_SUBJECT, SUBJECT_NO1, SUBJECT_NO2, SUBJECT_NO3, SUBJECT_NO4, SUBJECT_NO5, EXAM_DATE,REGIST DATE)

VALUES('A0013311', '장보고', '건축기사', 80, 60, 70, 70, 90, '2020-10-30', sysdate)

 

COMMIT;

해주면 된다.

 

 

+)NUMBER는 설정하지 않으면 최대 38자리로 설정된다.