MySQL
요약 노트 (2022년 1월 ~ 2022년 3월까지 공부했던 내용 정리)
혼자 공부하는 SQL책과 한빛미디어에서 제공하는 유튜브 강의로 공부함
데이터베이스: 데이터의 집합(ex. 카카오톡 메시지, 인스타그램 업로드 사진, 교통카드 이용내역 등)
DBMS: 데이터베이스를 관리하고 운영하는 소프트웨어
SQL: 관계형 데이터베이스(RDBMS)에서 사용되는 언어, '에스큐엘' or '시퀄'
프로젝트: 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓은 과정(=대규모 소프트웨어를 작성하기 위한 전체 과정)
폭포수 모델: 소프트웨어 개발 단계
1) 프로젝트 계획
2) 업무 분석
3) 시스템 설계
4) 프로그램 구현
5) 테스트
6) 유지보수
데이터베이스 모델링: 테이블의 구조를 미리 설계하는 개념
전체 데이터베이스 구성도
데이터베이스 개체는 인덱스, 뷰, 스토어드 프로시저, 트리거, 스토어드 함수, 커서 등
인덱스(index): 책 뒤의 '찾아보기'와 비슷한 개념
인덱스는 수천만~수억 건 이상의 데이터를 처리할 때 해당 페이지로 이동할 수 있는 효율적인 방법
ex. 회원 테이블에서 '아이유'를 찾을 때(인덱스X)
Execution Plan(실행 계획)
탭 클릭: Full Table Scan(전체 테이블 검색)SELECT * FROM member WHERE member_name='아이유';
ex. 회원 테이블에 인덱스 만들고 '아이유'를 찾을 때(인덱스O)
Execution Plan(실행 계획)
탭 클릭: Non-Unique Key Lookup(인덱스를 통해 결과를 찾음)CREATE INDEX idx_member_name ON member(member_name);
SELECT * FROM member WHERE member_name='아이유';
뷰(view): '가상의 테이블'
CREATE VIEW member_view
AS
SELECT * FROM member;
SELECT * FROM member_view;
스토어드 프로시저: MySQL에서 제공하는 프로그래밍 기능
DELIMITER // ~ DELIMITER ;
문은 첫 행과 마지막 행에 구분 문자CREATE PROCEDURE
스토어드 프로시저 이름 지정BEGIN
과 END
사이에 SQL 문DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name='나훈아';
SELECT * FROM product WHERE product_name='삼각김밥';
END //
DELIMITER ;
CALL
문CALL myProc()
DROP PROCEDURE
문DROP PROCEDURE myProc;
우재남. (2021). 혼자 공부하는 SQL. 한빛미디어. p24-p99.