혼자 공부하는 SQL 1주차
혼공단 12기
SQL (Structured Query Language)
뜨거운 여름밤은 가고 남은 건 SQL이지만, 시작합니다.
목표
1. 혼공단 12기 SQL 6주 과정 완수하기
2. 까먹지 말고 SQLD 시험 원서 접수하기
2. 2024년 SQLD 자격증 시험 합격하기
2024년 SQLD 제54회 일정
- 원서 접수 시작: 7월 22일(월)
- 시험 일자: 8월 24일(토)
- 사전 점수 공개: 9월 6일(금)
- 결과 발표: 9월 20일(금)
1주차 미션
1주차 (7/1 ~ 7/7) | Chapter 01 ~ 02 | p. 80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기 | 데이터베이스 개체 3가지 설명하기 |
미션 1. WHERE I U 🫢
select * from member WHERE member_name = '아이유';
미션 2. DB 개체 3가지
1. 인덱스
데이터를 조회할 때 결과가 나오는 속도를 빠르게 해주는 개체
- 책 뒤의 찾아보기, 구글 독스의 개요, 노션의 목차 같은 역할
CREATE INDEX idx_member_name ON member(member_name);
이렇게 memeber 테이블의 member_name 열에 인덱스를 지정해주면 회원 테이블에서 원하는 사용자를 찾아낼 수 있다.
결과값은 동일하지만, 인덱스로 찾으면 훨씬 빠르게 조회할 수 있게 된다.
Execution Plan을 통해서 인덱스 사용여부를 확인할 수 있다.
2. 뷰
실제 데이터를 가지고 있지 않지만, 테이블과 동일하게 취급할 수 있는 개체
- 가상의 테이블, 바로가기 아이콘과 같은 역할
CREATE VIEW member_view
AS
SELECT*FROM member;
이렇게 뷰를 만들어주면, 실제 데이터를 건들지 않기 때문에 보안은 강화되고 SQL문을 간단하게 작성할 수 있다.
3. 스토어드 프로시저
여러 개의 SQL을 묶어주거나, 프로그래밍 기능을 제공하는 개체
- stored procedure 직역하면 축적된 절차
DELIMITER //
CREATE PROCEDURE MyProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER;
DELIMITER// 로 앞을, DELIMITER;로 뒤를 막아주고, BEGIN과 END로 한 번 더 감아주고, 안에 즐겨찾는 친구들을 넣어주면 된다.
CALL MyProc();
그리고 CALL 해주면 즐겨찾는 친구들만 마중나온다.
그리고 이 친구들과 손절하려면 DELETE가 아닌 DROP을 사용하여야 한다. 지나간 인연은 지우는 게 아니라 놓아주는 것...
1주차 미션 완료