[SQL] 02-3 데이터베이스 개체

김민서·2024년 7월 9일

혼자 공부하는 SQL

목록 보기
4/19

개념들

  1. 인덱스
    데이터를 조회할 때 결과가 나오는 속도를 빠르게 해줌.

  2. 테이블의 일부를 제한적으로 표현할 때 사용됨.
  3. 스토어드 프로시저
    SQL에서 프로그래밍이 가능하도록 해줌.
  4. 트리거
    잘못된 데이터가 들어가는 것을 미연에 방지하는 기능

인덱스

인덱스 실습하기

  1. 회원 테이블에는 현재 인덱스를 만들지 않은 상태
    -> 만약, '아이유'라는 이름을 가진 회원을 찾고 싶다면, 1행부터 끝까지 전체를 살피는 상태

  2. 아이유를 찾은 방법을 확인하기 위해 Execution Plan(실행 계획)을 통하여 Full Table Scan을 확인함.

  3. 회원 테이블에 인덱스 만들기
    1) ON member(member_name)의 의미는 member 테이블의 member_name열에 인덱스를 지정하라는 의미임.

  4. 인덱스가 생긴 회원 테이블에서 아이유 찾기

    1) Non-Unique Key Lookup이 나오는데, 이때 Key Lookup은 인덱스를 통해 결과를 찾았다는 의미
    2) 이와 같은 방법을 인덱스 검색이라고 부름.
    3) 인덱스 생성 여부에 따라 시간을 단축하는 효과는 있지만, 결과가 달라지는 것은 아님.

뷰 개념 이해하기

  1. 뷰는 '가상의 테이블'이라고 할 수 있음. 테이블과 뷰는 매우 유사하지만, 뷰는 실제 데이터를 가지고 있지 않으며, 실제 테이블에 링크된 개념임.
  2. 윈도우즈 운영체제의 '바로가기 아이콘'과 비슷한 개념임.
    -> 바탕화면의 바로가기 아이콘을 더블 클릭해서 실행하지만, 실제로 실행되는 파일은 다른 폴더에 있음.
  3. 뷰는 실체가 없으며 테이블과 연결되어있는 것 뿐임.
    -> 사용자가 뷰를 테이블처럼 생각해서 접근하면 알아서 테이블에 연결해줌.
  4. 뷰의 실체는 SELECT 문임.

뷰 실습하기

  1. 회원 테이블과 연결되는 회원 뷰(member_view) 만들기

    1) OUTPUT 패널에 초록색 체크표시가 나타나면 SQL이 제대로 실행되었다는 의미임.

  2. 회원 테이블이 아닌 회원 뷰에 접근하기

  3. 테이블을 사용하지 않고, 뷰를 사용하는 이유
    1) 보안에 도움이 됨.
    2) 긴 SQL 문을 간략하게 만들 수 있음.

스토어드 프로시저

스토어드 프로시저 개념 이해하기

  1. 스토어드 프로시저란 MySQL에서 제공하는 프로그래밍 기능임.
  2. 여러 개의 SQL 문을 하나로 묶어서 편리하게 사용할 수 있으며, SQL 외에도 C, 자바, 파이썬과 같은 프로그래밍 언어에서 사용되는 연산식, 조건문, 반복문 등을 사용할 수도 있음.
  3. 스토어드 프로시저를 통해 MySQL에서도 기본적인 형태의 일반 프로그래밍 로직을 코딩할 수 있음.

스토어드 프로시저 실습하기

  1. 두 SQL을 입력하고 한꺼번에 실행하기

  2. 두 SQL을 하나의 스토어드 프로시저로 만들기

    1) 첫 행과 마지막 행에 구분 문자라는 의미의 DELIMITER// ~DELIMITER; 문이 나오는데, 이는 스토어드 프로시저를 묶어주는 약속임.

  3. 두 줄의 SQL 문을 실행할 필요 없이 앞에서 만든 스토어드 프로시저를 호출하기 위해서 CALL 문을 실행함.

    1) 결과를 보면, 두 SQL을 실행한 것과 동일한 것을 확인할 수 있음.

0개의 댓글