[MySQL] 데이터베이스 개체(02-3)

🚀 데이터베이스 개체

인덱스, 뷰, 스토어드 프로시저, 트리거, 스토어드 함수, 커서 등

💡 인덱스(index)

  • 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해줌
  • 인덱스 생성 여부에 따라 결과가 달라지는 것은 아님
[인덱스 생성]
CREATE INDEX idx_member ON member(member_name);

💡 뷰(view)

  • 테이블(table)의 일부를 제한적으로 표현, 가상의 테이블
  • 인덱스 생성 여부에 따라 결과가 달라지는 것은 아님
  • 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크(link)된 개념
  • 보안에 도움이 되며, 긴 SQL문을 간략하게 만들 수 있음
[뷰 생성]
CREATE VIEW   member_view
AS
       SELECT * FROM  member;

뷰에 접근하는 방식은 테이블과 동일

SELECT * FROM member_view;

💡 스토어드 프로시저(stored procedure)

  • MySQL에서 제공하는 프로그래밍 기능
  • 여러 개의 SQL문을 하나로 묶어 편리하게 사용 가능
  • SQL을 묶는 개념 외에도 연산식, 조건문, 반복문 등 사용 가능
[스토어드 프로시저 생성]
DELIMITER //
CREATE PRECEDURE myProc()
BEGIN
      SELECT * FROM member  WHERE member_name = '나훈아';
      SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER;
  • 구분 문자라는 의미의 DELIMITER // ~ DELIMITER; 문 사용 » 스토어드 프로시저 묶어주는 약속
  • BEGIN, END 사이에 SQL문
[스토어드 프로시저 호출]
CALL myProc();

호출시 myProc() 에 포함된 두 SQL을 실행한 것과 동일한 결과 확인

[스토어드 프로시저 삭제]
DROP PROCEDURE myProc;

Categories:

Updated:

Leave a comment