class_28.sql
tb_categories
| Field Name | Data Type | Description | Value |
| category_id | INT | 카테고리 고유 ID | 1, 2, 3, 4 ... |
| category_name | VARCHAR(100) | 카테고리 이름 | "상의", "하의", "외투" |
categories는 여러 product를 참조한다. 1:n
카테고리와 상품은 1:N이다.
use mydb3;
-- tb_categories 테이블 생성
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('외투');
-- tb_products 테이블 생성
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, 49000, 'L', '청색');
insert into tb_products(product_name, category_id, price, size, color)
values ('자켓', 3, 99000, 'L', '검정색');
insert into tb_products(product_name, category_id, price, size, color)
values ('셔츠', 1, 30000, 'S', '보라색');
select *
from tb_products;
-- 특정 카테고리에 속하는 모든 상품을 조회 쿼리
select p.product_name, p.price, p.size, p.color
from tb_products as p
join tb_categories as c
on p.category_id = c.category_id -- on 안하면 corss join 이 된다.
where c.category_name = '상의';
테이블 관계
- tb_categories 와 tb_products 는 일대다 관계( 1 : N )입니다.
- 각 카테고리는 여러 상품을 포함할 수 있으며, 각 상품은 하나의 카테고리에만 속합니다.
'MySQL' 카테고리의 다른 글
| 2024.06.13 MySQL활동 서브 쿼리란 (0) | 2024.06.13 |
|---|---|
| 2024.06.12 MySQL 활용 쇼핑몰과 카테고리 2단계 (0) | 2024.06.12 |
| 2024.06.11 MySQL활용 블로그 서비스의 DB 구축(2) (0) | 2024.06.11 |
| 2024.06.11 MySQL활용 쇼핑몰 서비스의 DB 구축(1) (0) | 2024.06.11 |
| 2024.06.11 MySQL활용 SELF JOIN (0) | 2024.06.11 |