본문 바로가기

Windows Developer/Oracle

[Oracle] 테이블 생성 및 테이터 삽입




[학생 테이블 생성 및 삽입]
CREATE TABLE student

(stu_id CHAR(5)    CONSTRAINT student_stu_id_pk PRIMARY KEY

                CONSTRAINT student_stu_id_ck CHECK(LENGTH(TRIM(' ' FROM stu_id)) =5),

 stu_name   VARCHAR2(10) CONSTRAINT student_stu_name_nn NOT NULL

);


 

INSERT INTO student VALUES('94031','박지성');

INSERT INTO student VALUES('94032','이청용');

INSERT INTO student VALUES('94033','차두리');

INSERT INTO student VALUES('94034','기성용');

INSERT INTO student VALUES('94035','박주영');


CHAR과 VCHAR2
char - 고정길이  , vchar - 가변길이



 

[과목 테이블 생성 및 삽입]
CREATE TABLE subject

(sub_id NUMBER(3)     CONSTRAINT subject_sub_id_pk PRIMARY KEY,

 sub_name VARCHAR2(20) CONSTRAINT subject_sub_name_nn NOT NULL

);

INSERT INTO subject VALUES(1,'국어');

INSERT INTO subject VALUES(2,'영어');

INSERT INTO subject VALUES(3,'과학');

INSERT INTO subject VALUES(4,'수학');

INSERT INTO subject VALUES(5,'국사');




[성적 테이블 생성 및 삽입]
CREATE TABLE score

(stu_id CHAR(5)           CONSTRAINT score_stu_id_nn NOT NULL,

 sub_id NUMBER(3)     CONSTRAINT score_sub_id_nn NOT NULL,

 score  NUMBER(3)      CONSTRAINT score_score_nn NOT NULL,

 grade  CHAR(1)           CONSTRAINT score_grade_ck CHECK(grade IN('A','B','C','D','F')),

 CONSTRAINT score_pk  PRIMARY KEY (stu_id, sub_id),

 CONSTRAINT score_fk1   FOREIGN KEY (stu_id) REFERENCES student(stu_id) ON DELETE CASCADE,

 CONSTRAINT score_fk2   FOREIGN KEY (sub_id) REFERENCES subject(sub_id) ON DELETE CASCADE

);

INSERT INTO score VALUES('94031',1,90,'B');

INSERT INTO score VALUES('94031',2,65,'D');
.
.
COMMIT;

CONSTRAINT score_grade_ck CHECK(grade IN('A', 'B', 'C', 'D', 'F')
과목 점수가 A,B,C,D,F외에는 insert할 수 없다(제약조건), 여기서 IN()함수는 AND와 같은 역할을 한다

CONSTRAINT score_fk1 FOREIGN KEY(stu_id) REFERENCES student(stu_id) ON DELETE CASCASE
primary key로 지정된 stu_id에서 이블의 stu_id와 foreign키 이며 delete cascade는 stu_id를 삭제 했을 경우
모든 테이블의 stu_id가 삭제가 된다






'Windows Developer > Oracle' 카테고리의 다른 글

[Oracle] NON-EQUJOIN  (0) 2011.01.07
[Oracle] EquJoin  (0) 2011.01.07
[oracle] 프로시져 생성 및 in, out, in out 파라미터  (0) 2011.01.04
[My-SQL] 기본 쿼리문  (0) 2010.09.18
[오라클] 쿼리 작성시 유의 사항  (0) 2010.09.18