MySQL Study 연습
SCHEMA(스키마) 만들기
테이블 만들기
- 고객의 정보 테이블
- 물건의 정보 테이블
- 영수증을 보관 테이블
고객의 정보를 저장하는 테이블
- uid와 name은 넉넉하게 45
- registration_date 는 맴버가 등록된 시간을 저장
고객의 정보를 저장하는 테이블 생성
이제 맴버를 등록해 보자 (아래는 공부하기 좋은 사이트)
오류......
0 10 04:25:12 INSERT INTO members_table(member_uid, member_name) VALUE (03d64791-b24e-4769-b297-788929acee8f, 홍길동) Error Code: 1054. Unknown column '03d64791' in 'field list' 0.000 sec 원인은 ' ' 추가하고 해결
반복 작업이니 PROCEDURE 를 사용하자
sql
USE exam_data;
SELECT * FROM members_table;
#맴버 등록
-- 홍길동 03d64791-b24e-4769-b297-788929acee8f
-- 임꺽정 a108f00e-9c8a-42e4-8be9-9bb5ee700d9d
-- 장보고 6887898f-2b92-4c49-bf4c-6f12acd8ff91
-- 이순신 6bd03e52-6dc8-4ccc-ac4a-b649cfbd4162
-- 김흥부 a3709a4a-5c75-11ed-9b6a-0242ac120002
-- 김놀부 8acd150c-5c77-11ed-9b6a-0242ac120002
INSERT INTO members_table(member_uid, member_name)
VALUE ('03d64791-b24e-4769-b297-788929acee8f', '홍길동');
delimiter //
CREATE PROCEDURE add_members_item($member_uid varchar(45), $member_name varchar(45))
BEGIN
INSERT INTO members_table(member_uid, member_name)
VALUE ($member_uid, $member_name);
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE add_members_item;
CALL add_members_item('03d64791-b24e-4769-b297-788929acee8f','홍길동'); -- uid 가 겹침 적용 안됨
CALL add_members_item('a108f00e-9c8a-42e4-8be9-9bb5ee700d9d','임꺽정');
CALL add_members_item('6887898f-2b92-4c49-bf4c-6f12acd8ff91','장보고');
CALL add_members_item('6bd03e52-6dc8-4ccc-ac4a-b649cfbd4162','이순신');
CALL add_members_item('a3709a4a-5c75-11ed-9b6a-0242ac120002','김흥부');
CALL add_members_item('8acd150c-5c77-11ed-9b6a-0242ac120002','김놀부');
SELECT * FROM members_table;
UID로 맴버 검색
sql
#맴버를 uid로 검색
delimiter //
CREATE PROCEDURE search_member($member_uid varchar(45))
BEGIN
SELECT member_name, registration_date FROM members_table
WHERE member_uid = $member_uid;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE search_member;
CALL search_member('6bd03e52-6dc8-4ccc-ac4a-b649cfbd4162');
uid로 맴버 제거
sql
#맴버를 uid로 삭제
delimiter //
CREATE PROCEDURE delete_member($member_uid varchar(45))
BEGIN
delete from members_table
where member_uid = $member_uid;
SELECT * FROM members_table;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE delete_member;
CALL delete_member('a3709a4a-5c75-11ed-9b6a-0242ac120002'); -- 김흥부 제거
맴버를 uid로 수정 임꺽정 -> 임꺽정2
sql
#맴버를 uid로 수정
delimiter //
CREATE PROCEDURE update_member($member_uid varchar(45), $member_name varchar(45))
BEGIN
update members_table set member_name = $member_name
where member_uid = $member_uid;
SELECT * FROM members_table;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE update_member;
CALL update_member('a108f00e-9c8a-42e4-8be9-9bb5ee700d9d','임꺽정2');
나스에서 적용 확인
상품의 정보를 저장하는 테이블 생성
sql
#######################################################
######################### 상품 #########################
#######################################################
#100 음료
-- a61617dd-37ef-41c2-b264-b62477c9c985 콜라
-- 906ee7f0-7bb0-4259-97cf-551dd47987b8 사이다
-- 91900f64-97bf-4e13-ac74-abc976e5959c 게토레이
#200 과자
-- 50cb7fca-5dde-11ed-9b6a-0242ac120002 치토스
-- a4e298da-855a-49bc-9ff4-3a55658a5494 썬칩
-- b8702f3c-1d1a-4653-a8d4-fb80baca8517 오징어땅콩
#300 아이스크림
-- 5157547e-8187-4736-b304-81f256341392 뽕따
-- 96e42038-dc79-405c-be07-f3d1025a846e 월드콘
-- 8bd1592c-ce12-4773-9cb9-394cb6ea41b4 죠스바
use exam_data;
select * from products_table;
delimiter //
create procedure add_product($product_uid varchar(45), $product_category INT(11) , $product_name varchar(45), $product_price INT(11))
begin
insert into products_table(product_uid, product_category, product_name, product_price)
values ($product_uid, $product_category, $product_name, $product_price);
end //
delimiter ;
call add_product('a61617dd-37ef-41c2-b264-b62477c9c985', 100, '콜라', 1700);
call add_product('906ee7f0-7bb0-4259-97cf-551dd47987b8', 100, '사이다', 1500);
call add_product('91900f64-97bf-4e13-ac74-abc976e5959c', 100, '게토레이', 2000);
call add_product('50cb7fca-5dde-11ed-9b6a-0242ac120002', 200, '치토스', 1300);
call add_product('a4e298da-855a-49bc-9ff4-3a55658a5494', 200, '썬칩', 1400);
call add_product('b8702f3c-1d1a-4653-a8d4-fb80baca8517', 200, '오징어땅콩', 1500);
call add_product('5157547e-8187-4736-b304-81f256341392', 200, '뽕따', 1200);
call add_product('96e42038-dc79-405c-be07-f3d1025a846e', 200, '월드콘', 1500);
call add_product('8bd1592c-ce12-4773-9cb9-394cb6ea41b4', 200, '죠스바', 1000);
-- 프로시져 드랍
Drop PROCEDURE add_product;
#상품을 이름으로 검색
delimiter //
CREATE PROCEDURE search_product($product_name varchar(45))
BEGIN
SELECT product_uid , product_category, product_name, product_price, registration_date FROM products_table
WHERE product_name = $product_name;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE search_member;
CALL search_product('월드콘');
#상품을 uid로 삭제
delimiter //
CREATE PROCEDURE delete_product($product_uid varchar(45))
BEGIN
delete from products_table
where product_uid = $product_uid;
SELECT * FROM products_table;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE delete_member;
CALL delete_product('a61617dd-37ef-41c2-b264-b62477c9c985'); -- 콜라 제거
#맴버를 uid로 수정
delimiter //
CREATE PROCEDURE update_product($product_uid varchar(45), $product_price INT(11))
BEGIN
update products_table set product_price = $product_price
where product_uid = $product_uid;
SELECT * FROM products_table;
END //
delimiter ;
-- 프로시져 드랍
Drop PROCEDURE update_product;
CALL update_product('96e42038-dc79-405c-be07-f3d1025a846e', 1500);
### 정리 ###
## 상품를 추가하는 PROCEDURE
-- call add_product('', , '', );
## 특정 이름으로 상품을 검색하는 PROCEDURE
-- CALL search_product('월드콘');
## 특정 상품를 제거하는 PROCEDURE
-- CALL delete_product('');
## 특정 맴버를 수정하는 PROCEDURE
-- CALL update_product('', );
- query_dump 4 KB
plaintext
Microsoft Windows [Version 10.0.19044.2130]
(c) Microsoft Corporation. All rights reserved.
C:\Users\서울IT>mysql -u root -p exam_data_dump_schema < C:\mysql_data/exam_data_dump.sql
Enter password: **********
ERROR 1049 (42000): Unknown database 'exam_data_dump_schema'
C:\Users\서울IT>mysql -u root -p exam_data_dump_schema < C:\mysql_data/exam_data_dump.sql
Enter password: **********
C:\Users\서울IT>mysqldump -u root --routines --triggers -u apptm -p exam_data > C:\mysql_data/exam_data_2.sql
Enter password: **********
mysqldump: Got error: 1045: Access denied for user 'apptm'@'localhost' (using password: YES) when trying to connect
C:\Users\서울IT>mysqldump -u root --routines --triggers -p exam_data > C:\mysql_data/exam_data_2.sql
Enter password: **********
C:\Users\서울IT>mysql -u root -p exam_data_dump2_schema < C:\mysql_data/exam_data_2.sql
Enter password: **********
C:\Users\서울IT>mysql -u root -p exam_data_dump2_schema < C:\mysql_data/exam_data_2.sq