02-3. 데이터베이스 개체
🎨 데이터베이스 개체
- 데이터베이스 안에 들어있을 수 있는 오브젝트
- 테이블
- 뷰
- 인덱스
- 스토어드 프로시저
- 트리기
🎨 인덱스
- 데이터를 조회할 때 빠르게 조회할 수 있도록 도와주는 개체
- 실무에서 대용량의 데이터를 다룰 때 유용
- 책의 '찾아보기'와 동일한 개념
- 특정 단어를 찾아야하는 경우 책의 첫 장부터 쭉 읽으며 찾는 것이 아니라 책 뒷편에 실린 '찾아보기'를 통해 몇 페이지에 있는지 확인할 수 있다
- 없어도 문제는 없음
- 인덱스가 없다고 책 내용이 없는 것은 아닌 것 처럼
- 빨리 찾을 수 있도록 도와줄 뿐
- 실무에서는 인덱스를 반드시 사용한다
🎮 '아이유' 조회하기
- 이건 책 내용을 다 뒤진 것
- 만약 데이터가 400만건 있었다면 400만건을 다 뒤져서 아이유를 찾은 것
✅ Excution Plan
- 실행 계획
- 조회할 때 어떻게 결과가 나오게 됐는지에 대해
- Full Table Scan: 전체 테이블을 스캔해서(뒤져서) 찾았다
🎮 인덱스 만들기
- 처음부터 인덱스가 있는 건 아님
- 인덱스를 만들어줘야함
- 책 뒤의 찾아보기를 만든다고 생각
- 멤버 테이블의 멤버 이름을 가지고 찾아보기를 만들어주는 것
- 결과가 따로 나오지는 않고 초록색 체크가 뜨면 제대로 실행된 것
🎮 다시 '아이유' 찾아보기
- 쿼리와 결과는 같음
- 하지만 찾는 방식이 달라졌음
✅ Excution Plan
- Non-Unique Key Lookup
- 일단은 Full Table Scan이 아님
- 찾아보기를 통해 아이유를 찾아냈다
🎨 뷰
- 가상의 테이블
- 테이블처럼 생겼지만 테이블은 아님
- 실체가 없다
- 테이블은 진짜 데이터가 있다
- 바로가기
- 엣지 바로 가기 (우리는 이것이 실행된다고 생각하지만)
- 이 실행파일의 바로가기인 것 (사실은 이 exe 실행파일이 실행되는 것)
- 뷰도 마찬가지로 테이블이라고 착각하지만 실제로는 테이블이 아닌, 가상의 테이블
- 사용자는 뷰에 접근
- 뷰에서 실제 테이블을 가져와서 보여주는 효과
- 사용자는 뷰에 접근했지만 테이블에 접근한 것과 동일한 효과
- 뷰의 실체: 테이블을 SELECT 하는 구문으로 만들어짐
- SELECT: 조회 → 결과
- 뷰에 접근 → 뷰의 SELECT가 작동해서 → 테이블의 데이터를 쭉 가져와 → 사용자에게 보여줌
- 사용자는 본인이 테이블에 접근했다고 착각
- 보안 등의 문제로 사용함
🎮 뷰 만들어보기
- 이 아이콘을 통해서도 새 쿼리 창을 만들 수 있다
- 테이블에 접근하는 쿼리문
- 이것을 뷰로 만들어보기
- 잘 만들어졌음
🎮 뷰 사용해보기
- 똑같이 나옴
- 뷰에 접근, 뷰에서 SELECT 문이 작동해서 데이터를 퍼옴
🎨 스토어드 프로시저
- SQL이 일반 프로그래밍 언어는 아님
- 하지만 그런 프로그래밍 언어들과 비슷하게 만들어주는 것
- MySQL은 프로그래밍 기능이 기본적으로는 없지만 비슷하게 if문, 반복문 등을 사용하고 싶을 때
🎮 스토어드 프로시저 만들기
- 이 두가지를 묶어 스토어드 프로시저로 만들기
- 초록색 표시된 곳은 사용자 지정
- 나머지는 예약어
- 잘 만들어짐
- 이제는 SELECT ~ '나훈아'; SELECT ~ '삼각김밥'; 이렇게 긴 줄을 다 쓰지 않고 저장 프로시저만 사용해주면 됨
- 두 쿼리에 대한 결과가 각각 한번에 나옴
출처: https://youtu.be/lBk5YhLZevs?si=IFhyw6RS_WCukZQR
'MySQL > 혼공SQL' 카테고리의 다른 글
[SQL 기초 강의] 7강. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절) (0) | 2023.11.08 |
---|---|
[SQL 기초 강의] 6강. SQL 기본 문법(SELECT ~ FROM ~ WHERE) (0) | 2023.11.07 |
[SQL 기초 강의] 4강. 데이터베이스 만들기 (1) | 2023.11.03 |
[SQL 기초 강의] 3강. 데이터베이스 모델링 (1) | 2023.10.31 |
[SQL 기초 강의] 2강. MySQL 설치 방법과 정상 작동 확인하기 (1) | 2023.10.31 |