혼공

혼자 공부하는 SQL 1주차

poem 2024. 7. 7. 18:12
SQL의 세계로 초대받다.

혼공단 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 ~ 02p. 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주차 미션 완료