코딩 기록/Oracle(SQL develpoer)
오라클로 상품, 고객정보 테이블 작성하고 원하는 자료 출력하는 연습문제 / COLUMN 2개를 외래키(FOREIGN KEY)로 지정하여 문제 풀기
NomadHaven
2021. 12. 24. 22:33
온라인 마켓 TABLE을 더음과 같이 작성하라.
PRODUCT(상품) : 상품번호, 상품명, 상품가격, 상품설명
CART(장바구니) : 장바구니 번호, 소비자 ID, 상품번호, 수량
CONSUMER(소비자) : 소비자 ID, 이름, 나이
CREATE TABLE PRODUCT(
PRODUCTID NUMBER PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL,
PRICE NUMBER NOT NULL,
PRODUCT_DESC VARCHAR2(500)
);
CREATE TABLE CONSUMER(
USERID VARCHAR2(50) CONSTRAINT PK_USER_ID PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL,
AGE NUMBER(3) NOT NULL
);
CREATE TABLE CART(
CARTID NUMBER CONSTRAINT PK_CART_ID PRIMARY KEY,
USERID VARCHAR2(50), -- 외래키
PRODUCTID NUMBER, -- 외래키
AMOUNT NUMBER
);
--CART 테이블에서 두 COLUMN을 외래키로 지정하기
ALTER TABLE CART
ADD
CONSTRAINT FK_PRODUCT_ID FOREIGN KEY(PRODUCTID)
REFERENCES PRODUCT(PRODUCTID);
ALTER TABLE CART
ADD
CONSTRAINT FK_USER_ID FOREIGN KEY(USERID)
REFERENCES CONSUMER(USERID);
상품 테이블에 상품을 등록합니다
소비자 테이블에 소비자 등록합니다.
카트에 소비자가 쇼핑한 상품을 추가합니다.
--상품 테이블
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(100, '새우깡', 1500, '새우가 들어 있지 않습니다');
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(101, '포테이토칩', 2300, '통감자');
INSERT INTO PRODUCT(PRODUCTID, NAME, PRICE, PRODUCT_DESC)
VALUES(102, '카누', 5000, '');
SELECT * FROM PRODUCT;
--소비자 테이블
INSERT INTO CONSUMER(USERID, NAME, AGE)
VALUES('hgd1001', '홍길동', 24);
INSERT INTO CONSUMER(USERID, NAME, AGE)
VALUES('sch2002', '성춘향', 16);
--CART 테이블
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(1, 'sch2002', 101, 3);
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(2, 'sch2002', 102, 10);
INSERT INTO CART(CARTID, USERID, PRODUCTID, AMOUNT)
VALUES(3, 'hgd1001', 100, 1);
id 'sch2002'가 쇼핑한 상품을 출력합니다.
SELECT c.userid, p.name
FROM cart c , product p
WHERE userid = 'sch2002';