1. 설계
tb_categories
| Field Name | Data Type | Descripition | value |
| category_id | int | 카테고리 고유 ID | 1, 2, 3, 4 |
| category_name | varchar(100) | 카테고리 이름 | "상의", "하의", "외투" |
tb_products
| Field Name | Data Type | Descripition | value |
| product_id | int | 상품 고유 ID | 1, 2, 3, 4 |
| product_name | varchar(255) | 상품 이름 | "상의", "하의", "외투" |
| category_id | int | fk | |
| price | dicimal(10, 2) | 상품 가격 | |
| size | enum | 상품 사이즈 | "S", "M", "L", "XL" |
| color | varchar(50) | 상품 컬러 | "흰색", "검정색", "청색" ... |
테이블 관계
- tb_categories 와 tb_products 는 일대다 관계( 1 : N )
각 카테고리는 여러 상품을 포함할 수 있으며, 각 상품은 하나의 카테고리에만 속한다.
2. 코드
CREATE TABLE tb_categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
category_name VARCHAR(100) NOT NULL
);
INSERT INTO tb_categories(category_name) VALUES('상의');
INSERT INTO tb_categories(category_name) VALUES('하의');
INSERT INTO tb_categories(category_name) VALUES('외투');
CREATE TABLE tb_products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255),
category_id INT,
price DECIMAL(10 , 2 ),
size ENUM('S', 'M', 'L', 'XL'),
color VARCHAR(50),
FOREIGN KEY (category_id)
REFERENCES tb_categories (category_id)
);
SELECT * FROM tb_categories;
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('티셔츠', 1, 19900, 'M', '흰색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('청바지', 2, 49900, 'L', '청색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('자켓', 3, 99900, 'L', '검정색');
INSERT INTO tb_products(product_name, category_id, price, size, color)
VALUES('셔츠', 1, 29900, 'S', '보라색');
SELECT * FROM tb_products;
-- 특정 카테고리에 속하는 모든 상품을 조회하는 쿼리
SELECT p.product_name, p.price, p.size, p.color
FROM tb_products p
JOIN tb_categories c ON p.category_id = c.category_id
WHERE c.category_name = '상의';
'MySQL > 정리' 카테고리의 다른 글
| 서브 쿼리란 - 7 (0) | 2024.06.13 |
|---|---|
| 쇼핑몰과 카테고리 2단계 - 28 (0) | 2024.06.12 |
| 블로그 서비스의 DB 구축 - 26 (1) | 2024.06.11 |
| 쇼핑몰 서비스의 DB 구축 - 25 (0) | 2024.06.11 |
| SELF JOIN - 24 (1) | 2024.06.11 |
