MySQL

2024.06.12 MySQL 활용 쇼핑몰과 카테고리 1단계

정훈5 2024. 6. 12. 09:01

class_28.sql

class_28.sql
0.00MB

 

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 )입니다.
  • 각 카테고리는 여러 상품을 포함할 수 있으며, 각 상품은 하나의 카테고리에만 속합니다.