본문 바로가기
문제풀이/DB

[SQL] Table 생성 연습문제(1)

by AngieLee 2021. 6. 1.

온라인 마켓 TABLE을 작성하라.


-- PRODUCT(상품) : 상품번호, 상품명, 상품가격, 상품설명

CREATE TABLE PRODUCT(
    PRODUCTID NUMBER PRIMARY KEY,
    NAME VARCHAR2(50) NOT NULL,
    PRICE NUMBER NOT NULL,
    PRODUCT_DESC VARCHAR2(500)
);

 

-- CONSUMER(소비자) : 소비자 ID, 이름, 나이

CREATE TABLE CONSUMER(
    USERID VARCHAR2(50) CONSTRAINT PK_USER_ID PRIMARY KEY,
    NAME VARCHAR2(50) NOT NULL,
    AGE NUMBER(3) NOT NULL
);

 

-- CART(장바구니) : 장바구니 번호, 소비자 ID, 상품번호, 수량

CREATE TABLE CART(
    CARTID NUMBER CONSTRAINT PK_CART_ID PRIMARY KEY,
    USERID VARCHAR2(50),    -- 외래키
    PRODUCTID NUMBER,       -- 외래키
    AMOUNT NUMBER
);

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);


-- 소비자가 쇼핑한 상품을 추가합니다.(장바구니에 담는다)

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);

 

-- 쇼핑한 상품을 출력합니다.

SELECT *
FROM cart
WHERE userid = 'sch2002';

SELECT c.userid, c.productid, p.name, p.price
FROM cart c, product p
WHERE c.productid = p.productid
    AND c.userid = 'sch2002';

'문제풀이 > DB' 카테고리의 다른 글

[SQL] hr schema 표준함수 문제  (0) 2021.06.01
[SQL] Table 생성 연습문제(2)  (0) 2021.06.01
[SQL] scott schema  (0) 2021.05.26
[SQL] hr schema  (0) 2021.05.26