본문 바로가기

SQL심화-Training15

샘플데이터 가공 샘플 데이터 Github: GitHub - 7ieon/SQLtune GitHub - 7ieon/SQLtuneContribute to 7ieon/SQLtune development by creating an account on GitHub.github.com[ Code ] > [ Download ZIP ] 으로 다운로드 강사 기준: "C:\Users\Administrator\Downloads\SQLtune-main" 경로에 압축을 해제하였음> mysql -uroot -p --port {MySQL Port번호} tunning 데이터베이스가 생성되고 테이블들도 함께 생성이 되는데 테이블명, 컬러명이 모두 한글로 되어 있다. 혹시 한글이 불편하다면 영어로 변경하도록 하자. 아래는 영어로 변경하는 DDL .. 2025. 10. 30.
은행 업무 관리 시스템 - 요구사항 1. 예금 (Deposit) 예금은 고객이 금융기관(은행 등)에 돈을 맡기고 일정한 이자를 받는 금융 상품. (1) 예금의 종류 1-1 요구불예금 (Demand Deposit) 언제든지 자유롭게 입출금 가능 (아래 2가지 종류 외에 추가될 가능성 있음) 이자 낮음 1-1-1 보통예금개인용 계좌이며 수표와 어음을 발행할 수 없는 계좌이다. 주로 급여통장이나 카드 결제, 공과금 자동이체 등의 용도로 사용.1-1-2 당좌예금기업 운용계좌이며 보통 법인간 거래에 사용된다. 전 금융기관에서 1인 1계좌만 개설이 가능하다. 수표와 어음을 발행할 수 있으며 수표 혹은 어음 소지인이 원하는 경우 어느 때나 돈을 찾을 수 있게 되어 있다. 1-2 저축예금 (Savings Deposit)일정 조건(예: 월간 일정 금액 유.. 2025. 4. 1.
간편 은행 스키마 -- 고객 테이블CREATE TABLE Customer ( customer_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE);-- 계좌 테이블CREATE TABLE Acc ( account_id INT PRIMARY KEY AUTO_INCREMENT, account_type ENUM('01', '02', '03', '04') NOT NULL, balance DECIMAL(15, 2) NOT NULL, customer_id INT NOT NULL );-- 카드 테이블CREATE TABLE Card ( card_id INT PRIMARY.. 2025. 3. 27.
4장 악성 SQL 튜닝으로 초보자 탈출하기 - (2) 아래 접은글로 되어있는 내용을 보기 전에 각 예제의 내용을 확인하고 본인이 생각하는 쿼리문을 먼저 작성해 보세요. 4.2.1 기본 키를 변형하는 BAD SQL사원번호(emp_no)가 1,100 이상이면서 사원번호가 5자리인 사원(employees)의 모든 정보를 출력하는 쿼리를 만들어 주세요. (찾은 행: 10)더보기튜닝 전 SQL문 - 10 rows in set (0.23 sec) WHERE 절에서 index 컬럼을 가공하게 되면 index를 활용할 수 없습니다. 그래서 가공하지 않고 원본값 그대로 사용하여야 인덱스를 활용할 수 있다. SELECT * FROM employees WHERE SUBSTRING(emp_no, 1, 4) = 1100 AND LENGTH(emp_no) = 5; 튜닝 후 .. 2025. 3. 25.
4장 악성 SQL 튜닝으로 초보자 탈출하기 - (1) 01. AUTO COMMITMySQL은 디폴트로 AUTO COMMIT이 활성화 되어 있기 때문에 INSERT, UPDATE, DELETE 작업 후에는 되돌릴 수가 없습니다. 그래서 작업 전에 백업을 하거나 AUTO COMMIT을 비활성화하여 결과를 보고 적용하거나 원 상태로 되돌리기 할 수 있습니다. -- AUTO COMMIT 확인 (1: 활성화, 0: 비활성화)SELECT @@autocommit;-- AUTO COMMIT 활성화SET autocommit = 1;-- AUTO COMMIT 비활성화SET autocommit = 0;-- 결과 적용COMMIT;-- 되돌리기ROLLBACK; 02. 책 예제에 맞게 데이터베이스 수정아래 예제는 "업무에 바로 쓰는 SQL 튜닝 - 양바른 지음, 한빛미디어" 책에 .. 2025. 3. 25.
3장 SQL 튜닝의 실행 계획 파헤치기 - (2) 3.2.2.3 table테이블명이나 테이블 알리아스를 표시하는 항목이다. 서브쿼리나 임시 테이블을 만들어서 별도의 작업을 수행할 때는 , 으로 표시한다. 3.2.2.4 partitions데이터가 저장된 논리적인 영역을 표시하는 항목이다. 사전에 정의한 전체 파티션 중 특정 파티션에 선택적으로 접근하는 것이 SQL 성능 측면에서 유리하다. 만약 너무 많은 영역의 파티션에 접근하는 것으로 출력된다면 파티션 정의를 튜닝하는 것이 좋다. 3.2.2.5 type옵티마이저가 테이블의 레코드를 어떤 방식으로 읽었는지 나타낸다. 12개의 값이 있는데 ALL을 제외한 나머지 값은 인덱스를 사용하는 접근 방법이다. 쿼리 성능이 높은 순으로 설명하겠다. 아래로 내려갈수록 성능이 낮아진다고 생각하면 된다. const테이블의 .. 2025. 3. 17.