도서 관리 시스템
책ID/제목/저자/가격/재고수량을 가진 BOOKS테이블을 생성하고, 데이터를 10건 입력하는 코드를 짰다.
hancom스키마를 사용하기때문에, 제일 앞에는 `user hancom;`을 입력하고 시작했다.
use hancom;
create table books(
book_id int primary key,
title varchar(50),
author varchar(50),
price int,
cnt int
);
INSERT INTO books (book_id, title, author, price, cnt) VALUES
(1, '살인자의 기억법', '김영하', 14500, 90),
(2, '여행의 이유', '김영하', 15800, 120),
(3, '아몬드', '손원평', 13000, 150),
(4, '82년생 김지영', '조남주', 12000, 110),
(5, '채식주의자', '한강', 11500, 80),
(6, '달러구트 꿈 백화점', '이미예', 13800, 130),
(7, '불편한 편의점', '김호연', 14000, 100),
(8, '지적 대화를 위한 넓고 얕은 지식', '채사장', 16000, 70),
(9, '하얼빈', '김훈', 17000, 60),
(10, '데미안', '헤르만 헤세', 9500, 140);
이후 2개의 작업을 수행해야했다.
1. 가격이 20000원 미만인 모든 책의 가격 10% 인상
2. '김영하' 저자의 책 중 재고가 5개 미만인 모든 책의 재고 10개로 업데이트.
해당하는 쿼리문은 다음과 같다.
update books
set price = price * 1.1
where price < 20000;
update books
set cnt = 10
where author = "김영하"
and cnt < 5;
곱셈 연산의 할당, and문의 사용방법정도가 새롭게 느껴질 수 있다.
업데이트를 수행할 때, MySQL Workbench 의 설정이 UPDATE문의 작동을 막았었다. 발생했던 오류는 다음과 같다.
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
이를 해결하기 위해 워크벤치의 Edit (편집) > Preferences (환경설정) > SQL Editor로 이동해서
Safe Updates (rejects UPDATEs and DELETEs with no restrictions or that use key columns in the WHERE clause) 설정을 체크해제했다.
정상적인 쿼리 실행 후 결과물은 다음과 같게 나타난다.
데이터 제어 언어(DCL)
나의 이름으로 새로운 user를 만들고, employees 테이블에 select, insert 권한을 줘야했다.
이하의 코드는 root에서 진행하였다.
create user 'xinker'@'localhost' identified by '20250813';
grant select, insert on hancom.employees to 'xinker'@'localhost'
위의 SQL문을 실행하면, 비밀번호 20250813을 가진 유저 xinker가 로컬호스트에 만들어진다.
이후 그 정보대로 접속하면, select, insert 권한이 부여되어있고, 행을 추가할 수 있다.
INSERT INTO `employees` (`emp_id`,`name`,`salary`,`dep_id`,`join_date`) VALUES(20250813,'김싱커',65535,0,20250627);
권한이 없었다면, 유저 xinker는 이 행을 삽입할 수 없다. grant가 되어있기에, 이 작업은 정상적으로 실행된다.
실행 결과물을 조회하면, 다음과 같은 내용을 확인할 수 있다.
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.
'한컴AI 2기' 카테고리의 다른 글
[스나이퍼팩토리] 한컴AI 2기 - REPL, 모듈, Process, os, path (1) | 2025.08.22 |
---|---|
SQL 공부 1 : SELECT, DISTINCT, CONCAT (0) | 2025.08.21 |
[스나이퍼팩토리] 한컴AI 2기 - 리액트 네이티브와 포켓몬 API (5) | 2025.08.08 |
한컴AI 2기[스나이퍼팩토리] 한컴AI 2기 - AI개발자 교육 5주차 (3) | 2025.07.30 |
한컴AI 2기[스나이퍼팩토리] 한컴AI 2기 - AI개발자 교육 4주차 (2) | 2025.07.24 |