추씨의DBMS일기9편(국비Ver)

2023. 10. 27. 12:38DBMS

금일강의내용정리

==========================================================================

쇼핑몰 <shopdb>

회원가입 [users]
create table users(
userid varchar(20) not null,
name varchar(10) not null,
primary key(userid)
);

 

INSERT INTO users VALUES('koreait', '홍길동');


카트 [cart]
create table cart(
pro_num varchar(20) not null,
pro_name varchar(100),
pro_price int,
cart_id int not null auto_increment,
userid varchar(20) not null,
primary key(cart_id),
foreign key(userid) references users(userid)
);

 

INSERT INTO cart VALUES('101', 'LG IBM Computer', 10, NULL, 'koreait');
INSERT INTO cart VALUES('102', 'Apple IPhone', 15, NULL, 'koreait');


상품구매 [buy]
create table buy(
buy_id int nuo null auto_increment,
pro_num varchar(20) not null,
pro_name varchar(100),
pro_price int,
pro_count int,
pro_delivery char(1),
userid varchar(20) not null,
primary key(buy_id),
foreign key(userid) references users(userid)
);


카테고리 [category]
create table category(
cate_name varchar(20) not null,
primary key(cate_name)
);


INSERT INTO category VALUES('컴퓨터');
INSERT INTO category VALUES('노트북');
INSERT INTO category VALUES('스마트폰');


상품등록 [product]
create table product(
pro_num varchar(20) not null,
pro_name varchar(100),
pro_price int,
pro_count int,
cate_name varchar(20) not null,
primary key(pro_num),
foreign key(cate_name) references category(cate_name) 
ON UPDATE cascade 
);


INSERT INTO product VALUES('101', 'LG 컴퓨터', 1, 1, '컴퓨터');
INSERT INTO product VALUES('102', '갤럭시 21', 2, 2, '스마트폰');

DELETE FROM category WHERE cate_name = '컴퓨터';

UPDATE category SET cate_name = '컴퓨터' WHERE cate_name = '컴퓨터2';
SELECT * FROM category;
SELECT * FROM product;

연결 t1, t2 연결해서 = 1
category, product를 연결해서 (c)대분류, 상품번호, 상품명, 구매개수, 가격 순으로 출력
(단, 대분류가 같은 것만 출력하시오.)


SELECT 
C.cate_name, 
P.pro_num, 
P.pro_name, 
P.pro_count, 
P.pro_price 
FROM category C, product P 
WHERE C.cate_name = P.cate_name;

외래키 무결성 제약조건
update : 대분류를 변경하게 된다면... 상품을...
ON UPDATE cascade 

delete : 대분류를 삭제하게 된다면... 상품을...
ON DELETE restrict

inner join t2
SELECT 출력컬럼 FROM t1, t2 WHERR t1.컬럼 = t2.컬럼;
SELECT 출력컬럼 FROM t1 INNER JOIN t2 ON t1.컬럼 = t2.컬럼;

분류 테이블 컬럼과 상품 테이블의 상품번호, 상품이름만 출력하시오
(t1 INNER JOIN t2 ON 조건)


SELECT A.cate_name, B.pro_num, B.pro_name FROM category A
INNER JOIN product B ON A.cate_name = B.cate_name;

t3(테이블 3개)
SELECT 출력컬럼 FROM t1 INNER JOIN t2 ON t1.컬럼 = t2.컬럼
INNER JOIN t3 ON t2.컬럼 = t3.컬럼;

다중 게시판
config(게시판 설정)
code 디비 테이블 이름 = notice 공지사항 -> create table notice();

create table config(
code varchar(20) not null,
title varchar(100) not null,
color varchar(20) not null,
primary key(code)
);

board(게시판)

create table notice_board(
b_id int not null auto_increment, 
subject varchar(100) not null, 
name varchar(10), 
content text, 
regdate date, 
code varchar(20), not null, 
primary key(b_id), 
foreign key(code) references config(code) 
ON UPDATE CASCADE 
ON DELETE RESTRICT
);

여기까지 금일강의내용 정리

==========================================================================

느낀점 : 아 즁말 재밌다

==========================================================================

오늘의 결론

.

.

.

.

.

.

.

오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아 간다, -앙드레 말로

'DBMS' 카테고리의 다른 글

추씨의DBMS일기11편(국비Ver)  (0) 2023.10.31
추씨의DBMS일기10편(국비Ver)  (1) 2023.10.30
추씨의DBMS일기8편(국비Ver)  (0) 2023.10.26
추씨의DBMS일기7편  (0) 2023.10.25
추씨의DBMS일기6편(국비Ver)  (0) 2023.10.25