[혼공SQL] 1주차

JISO.O·2023년 7월 9일
0

혼공학습단

목록 보기
13/19
post-thumbnail

🐤기본미션

p.80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기

코드

결과


😎선택미션

데이터베이스 개체 3가지 설명하기

1. 인덱스

  • 인덱스란 책의 제일 뒤에 수록되는 '찾아보기'와 비슷한 개념이다.
 SELECT * FROM member WHERE member_name = '아이유';

위의 코드로 실행하면 전체 테이블을 검색해서 해당 열을 가져온다. Execution Plan을 확인해보면 Full Table Scan이라고 나오는데 이건 전체 테이블을 검색했다는 의미이다.

그럼 이제 인덱스를 만들어서 실행을 해보자

 CREATE INDEX idx_member_name ON member(member_name);	//인덱스 생성
 SELECT * FROM member WHERE member_name = '아이유'; //인덱스 검색

위의 코드로 실행한 후 Execution Plan을 확인해보면
이러한 결과가 나오는데, 이건 인덱스에 해당하는 열만 검색했다는 의미이다. 이렇게 하면 검색 시간을 단축할 수 있다.

2. 뷰

  • 뷰란 '가상의 테이블'로 실제 데이터를 가지고 있지 않고 진짜 테이블에 링크된 개념이다. 윈도우즈 운영 체제의 '바로 가기 아이콘'과 비슷한 개념이라고 이해하면 쉽다.
CREATE VIEW member_view
AS
	SELECT * FROM member;	//뷰 생성 코드
SELECT * FROM member_view;	//뷰로 테이블 접근

뷰로 테이블에 접근하면 보안에 도움이 되고, 긴 SQL문을 간략하게 만들 수 있다는 장점이 있다.

3. 스토어드 프로시저

  • 스토어드 프로시저란 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL문을 하나로 묶어서 편리하게 사용할 수 있는 기능이다.
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';

위의 코드로 실행하면 두 개의 결과가 나온다. 만약 코드가 두 줄이 아니라 여러 줄이라면 매번 이 코드들을 작성하기 불편할 것이다. 그럼 이것을 하나의 스토어드 프로시저로 만들어보자.

DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
	SELECT * FROM member WHERE member_name = '나훈아';
    SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER ;

이렇게 코드를 작성한 후

CALL myProc();

CALL문을 통해 스토어드 프로시저를 호출하면 SELECT문 2개를 호출한 것과 같은 결과가 나온다.


이번이 3번째 혼공단 활동이다!! 이번에는 SQL이라는 언어로 참여를 했는데 혼공단 활동이 끝나고 SQL에 대해 얼마나 알게 될지 기대된다☺️

profile
미림마이스터고등학교에서 개발을 공부중인 학생입니다!

0개의 댓글