본문 바로가기

SQL

[SQL] 데이터베이스 개체

목차

  • 인덱스
  • 스토어드 프로시저

 

 

데이터베이스 개체

  • 테이블은 데이터의 핵심 개체이다.
  • 하지만 테이블 외에 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서 등의 개체도 필요하다.
  • 모든 데이터베이스 개체들은 독립적으로 존재하는 것이 아니라 상호 연관이 있다.

 

  • 인덱스
    • 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해준다.
    • 테이블의 일부를 제한적으로 표현할 때 주로 사용
  • 스토어드 프로시저
    • SQL에서 프로그래밍이 가능하도록 해준다.
  • 트리거
    • 잘못된 데이터가 들어가있는 것을 미연에 방지하는 기능

 

인덱스

데이터가 많아질수록 결과가 나오는 시간이 많이 소요된다.

인덱스는 이런 경우 결과가 나오는 시간을 대폭 줄여준다.

CREATE INDEX idx_member_name ON member(member_name);

 

인덱스 검색

 

 

 

  • 테이블과 상당히 동일한 성격의 데이터베이스 개체이다.
  • 뷰를 사용하면 보안도 강화하고, SQL 문도 간단하게 사용할 수 있다.
  • 한마디로 정의하면 '가상의 테이블'
  • 뷰는 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념

 

CREATE VIEW member_view AS
SELECT * FROM member;
SELECT * FROM member_view;

 

그렇다면 테이블을 쓰지 않고 굳이 뷰를 쓰는 이유가 뭘까?

  • 보안에 도움이 된다.
  • 긴 SQL문을 간략하게 만들 수 있다.

 

 

스토어드 프로시저

 

스토어드 프로시저(stored procedure)란 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL 문을 

하나로 묶어서 편리하게 사용할 수 있다. SQL를 묶는 개념 외에 Java, C 같은 프로그래밍 언어에서 사용되는

연산식, 조건문, 반복문 등을 사용할 수 있다.

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();

 

 

'SQL' 카테고리의 다른 글

[SQL] 데이터 변경을 위한 SQL 문  (0) 2024.05.31
[SQL] SQL SELECT 문(2)  (0) 2024.05.31
[SQL] SQL SELECT 문(1)  (0) 2024.05.31
[SQL] 데이터베이스 구축해보기  (1) 2024.05.30
[SQL] DBMS, MySQL 설치  (0) 2024.05.30