타닥타닥 개발자의 일상

오라클로 상품, 고객정보 테이블 작성하고 원하는 자료 출력하는 연습문제 / COLUMN 2개를 외래키(FOREIGN KEY)로 지정하여 문제 풀기 본문

코딩 기록/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';

 

 

Comments