-
DB 5/12일차 수업 테이블 생성프로그래밍/DB 2022. 5. 13. 07:03728x90
1. 테이블 이름 : TITLE
(CHECK 제약조건이 있는 경우)CREATE TABLE title (
title_id NUMBER (10) CONSTRAINT title_title_id_pk PRIMARY KEY,
title VARCHAR2 (60) CONSTRAINT title_title_nn NOT NULL,
description VARCHAR2 (400) CONSTRAINT title_description_nn NOT NULL,
rating VARCHAR2 (4)
CONSTRAINT title_rating_ck CHECK
(rating IN ('G', 'PG', 'R', 'NC17', 'NR')),
category VARCHAR2 (20)
CONSTRAINT title_category_ck CHECK
(category IN ('DRAMA', 'COMEDY', 'ACTION',
'CHILD', 'SCIFI', 'DOCUMEN',
'TARY')),
release_date DATE );2. 테이블 이름 : TITLE_COPY
(기본키 2개 있는 경우/ 외래키 1개 있는 경우.)
CREATE TABLE title_copy (
copy_id NUMBER (10),
-- title 테이블에 대한 외래키이다. CREATE에서 제약조건 추가시에는
-- FOREIGN KEY(자식테이블컬럼명)이 생략된다.
title_id NUMBER(10),
CONSTRAINT title_copy_title_if_fk REFERENCES title(title_id)
status VARCHAR2(15)
CONSTRAINT title_copy_status_nn NOT NULL
CONSTRAINT title_copy_stats_ck CHECK
(status IN ('AVAILABLE', 'DESTROYED', 'RENTED', 'RESERVED')),
-- PK가 2개이상이면 하나의 CONSTRAINT로 작성.
CONSTRAINT title_copy_copy_id_title_id_pk PRIMARY KEY (copy_id, title_id));3. 테이블 이름 : RENTAL
(FK가 3개, 2개가 각각 다른 컬럼에 해당하는 경우.)
CREATE TABLE rental (
book_date DATE DEFAULT SYSDATE,
member_id NUMBER(10)
CONSTRAINT rental_member_id_fk
REFERENCES member(member_id),
copy_id NUMBER(10),
act_ret_date DATE,
exp_ret_date DATE DEFAULT SYSDATE + 2,
title_id NUMBER(10),
CONSTRAINT rental_book_date_copy_title_pk
PRIMARY KEY(book_date, member_id, copy_id, title_id),
CONSTRAINT rental_copy_id_title_id_fk
FOREIGN KEY(copy_id, title_id)
REFERENCES title_copy(copy_id, title_id));DROP TABLE MEMBER;
CREATE TABLE MEMBER(
USERID VARCHAR2(20),
PASSWD VARCHAR2(20) NOT NULL,
BIRTHYEAR NUMBER(4),
REGDATE DATE DEFAULT SYSDATE,
CONSTRAINT PK_USERID PRIMARY KEY (USERID)
);
SELECT * FROM MEMBER;
--SelectList
--SelectOne
SELECT * FROM MEMBER
WHERE USERID = 'SSSS';
--데이터 추가
INSERT INTO MEMBER (USERID,PASSWD,BIRTHYEAR) VALUES('SSSS','1111',0606);
INSERT INTO MEMBER (USERID,PASSWD,BIRTHYEAR) VALUES('QQQQ','2222',0707);
INSERT INTO MEMBER (USERID,PASSWD,BIRTHYEAR) VALUES('DDDD','3333',0808);
INSERT INTO MEMBER (USERID,PASSWD,BIRTHYEAR) VALUES('EEEE','4444',0505);
--데이터 수정
UPDATE MEMBER
SET PASSWD = '0000',
BIRTHYEAR = 2020
WHERE USERID = 'SSSS';
--데이터 삭제
DELETE FROM MEMBER
WHERE USERID = 'QQQQ';
SELECT * FROM MEMBER
ORDER BY USERID;
COMMIT;
ROLLBACK;'프로그래밍 > DB' 카테고리의 다른 글
Oracel Developer 다운 (0) 2022.08.02 데이터베이스 (0) 2022.07.26