728x90
반응형
CREATE TABLE PRODUCT (
PRODUCT_IDENTIFICATION_NUMBER INT PRIMARY KEY, //상품 식별 번호, 말 그대로 NUMBER 라 INT 지정, PK설정을해 NOT NULL + UNIQUE 보장해줬다.
PRODUCT_ID VARCHAR(20) UNIQUE NOT NULL, //상품 ID,문자. UNIQUE 설정 해줬다.상품의 이름이 같아도 찾을 수 있게
PRODUCT_NAME VARCHAR( 50 ) NOT NULL, // 상품 이름, 문자. 같은 이름의 상품이 존재 할 수 있다.
PRODUCT_PRICE INT NOT NULL, //상품 가격, 숫자.
PRODUCT_DISCOUNT_PRICE INT NULL,// 할인된 상품 가격, 할인 상품이 아닐 수 있으니 NULL 가능하게 지정.
PRODUCT_CATEGORY VARCHAR( 100) NOT NULL, //상품 카테고리, 문자. 기타 라는 카테고리가 있으니 NOT NULL 지정
PRODUCT_THUMBNAIL BLOB NOT NULL, // 상품 이미지, 이미지.
PRODUCT_FREE_DELIVERY BOOLEAN NOT NULL // 무료 배송 정보, 0 = 유료배송, 1= 무료배송
);
할인가 제외 모두 필수 정보라고 생각해 NOT NULL 설정을 했다.
쇼핑몰 메인 페이지인 PRODUCT 생성
INSERT INTO PRODUCT (PRODUCT_IDENTIFICATION_NUMBER, PRODUCT_ID, PRODUCT_NAME, PRODUCT_PRICE, PRODUCT_DISCOUNT_PRICE, PRODUCT_CATEGORY, PRODUCT_THUMBNAIL, PRODUCT_FREE_DELIVERY)
VALUES
(1001, 'PDigital-0', 'iPhone', 1000000, 900000, 'Digital', 'thumbnail1.jpg', 1),
(1002, 'PDigital-1', 'iPad', 800000, 700000, 'Digital', 'thumbnail2.jpg', 0),
(2000, 'PFood-0', 'coffee', 5000, 4800, 'Food', 'thumbnail3.jpg', 1),
(2001, 'PFood-1', 'cherry', 12000, NULL, 'Food', 'thumbnail4.jpg', 1),
(3000, 'PBook-0', 'The old man and the Sea', 10000, NULL, 'Book', 'thumbnail5.jpg', 0),
(3001, 'PBook-1', 'Stoner', 23000, 20000, 'Book', 'thumbnail6.jpg', 1),
(4000, 'PSports-0', 'bat', 80000,NULL, 'Sports', 'thumbnail7.jpg', 1),
(4001, 'PSports-1', 'ball', 50000, NULL, 'Sports', 'thumbnail8.jpg', 0),
(5000, 'PFashion-0', 'top', 50000, 49900, ' Fashion', 'thumbnail9.jpg', 1),
(5001, 'PFashion-1', 'outer', 130000, NULL, ' Fashion', 'thumbnail10.jpg', 1);
//CREATE 시 NULL 설정 해둔 것은 NULL 을 설정 할 수 있다.
//NULL 설정하고 싶지 않다면 자료형을 맞춰 값 넣어주기
SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_PRICE FROM PRODUCT
ORDER BY PRODUCT_ID;
//모든 상품의 ID, 이름, 가격을 ID 순으로 조회하는 SQL문
쇼핑몰 상세 페이지인 PRODUCT_DETAIL TABLE
CREATE TABLE PRODUCT_DETAIL (
PRODUCT_DETAIL_IDENTIFICATION_NUMBER INT PRIMARY KEY, //상품 상세 식별 번호, 숫자, 기본키로 설정해 unique + no null.
PRODUCT_DETAIL_ID VARCHAR( 20 ) UNIQUE NOT NULL, //상품 상세 아이디. 문자, unique, not null설정.
PRODUCT_DETAIL_NAME VARCHAR( 50) NOT NULL, // 상품 상세 이름. 같은 상품의 이름이 존재 할 수 있다. 위의 unique 설정 들을 이용해 식별 가능
PRODUCT_DETAIL_DESCRIPTION TEXT NOT NULL, //상품 상세 설명. 긴 글이 올 수 있어 text 문자 설정.
PRODUCT_DETAIL_QUANTITY INT NOT NULL, // 상품 수량. 구매 할 수량을 설정. 숫자.
PRODUCT_DETAIL_PRICE INT NOT NULL, //상품 상세 가격. 숫자
PRODUCT_DETAIL_DISCONT_PRICE INT, //상품 상세 할인 가격. 숫자.
PRODUCT_DETAIL_TOTAL_ORDER_PRICE INT NOT NULL, // 상품 상세 합계 가격. 숫자.
FOREIGN KEY (PRODUCT_DETAIL_ID) REFERENCES PRODUCT (PRODUCT_ID )
); // PRODUCT_DETAIL_ID 열이 PRODUCT 테이블의 PRODUCT_ID 열을 참조하는 외래키로 지정.
//FK는 PRODUCT, PRODUCT_DETAIL 간 관계를 설정. 데이터 일관성을 유지하는데 사용.
//할인 가격 제외, 필수 정보라고 생각해 null 값을 허용하지 않았다.
SELECT PRODUCT_DETAIL_ID,PRODUCT_DETAIL_NAME,PRODUCT_DETAIL_TOTAL_ORDER_PRICE
FROM PRODUCT_DETAIL
ORDER BY PRODUCT_DETAIL_ID;
//모든 상품의 상세 ID, 상세 이름, 총 가격을 ID 순으로 조회하는 SQL문
728x90
'데이터 베이스 > Bootcamp 데이터베이스' 카테고리의 다른 글
트랜잭션 (0) | 2024.03.22 |
---|---|
데이터베이스 (0) | 2024.02.08 |