본문 바로가기

SQL

[혼공학습단 13기] SQL_1주차

[기본] shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출 

 

  • SELECT member_name, member_addr FROM member;
    SELECT * FROM member WHERE member_name = '아이유'

 


데이터베이스 개체 : 인덱스, 뷰, 스토어드 프로시저, 트리거 등

 

트리거 : 잘못된 데이터가 들어가는 것을 미연에 방지

 

인덱스 개념 및 실습
인덱스 : 데이터가 많을 때 특정 단어를 조회한 뒤 해당하는 곳으로 이동함으로써 결과가 나오는 시간을 획기적으로 단축하는 개체 

 

1. 데이터 조회

  • SELECT * FROM member WHERE member_name = '아이유'

인덱스 생성 전 데이터 조회 결과

 

2. 인덱스 생성 

  • CREATE INDEX idx_memeber_name ON member(member_name) 
  • ON member(member_name) : member 테이블의 member_name 열에 인덱스를 지정하라는 의미

3. 데이터 조회(동일하게 진행)

  • SELECT * FROM member WHERE member_name = '아이유'

인덱스 생성 후 데이터 조회 결과

인덱스를 생성한 후 데이터를 조회한 결과, 아무 변화 없어 보이지만 [Execution Plan] 을 클릭하면 값이 변한 것을 확인할 수 있다. 

뷰 개념 및 실습
뷰 : 진짜 데이터와 연결된 가상의 데이터. 바로가기 아이콘과 페이지의 관계 중 바로가기 쪽이 뷰라고 할 수 있다. 

 

1. 뷰 생성

  • CREATE VIEW member_view
    AS 
    SELECT * FROM member;
  • 하단 Output에 초록색 체크 표시가 뜨면 SQL이 제대로 실행되었다는 의미 

View가 제대로 만들어졌다.

2. 데이터 조회

  • SELECT * FROM member_view;
  • 긴 SQL 구문을 단순하게 만들 수 있다. 

View를 이용한 모습

 

스토어드 프로시저 개념 및 실습
스토어드 프로시저 : SQL 내에서 일반 프로그래밍 언어처럼 코딩을 가능하게 하는 개체. 프로그래밍 로직을 작성하여 사용자가 지정하는 단어 안에 내용을 묶는다. 그러면 사용자가 특정 단어만 CALL로 불러도 간단하게 내용을 출력할 수 있다.

 

1. 데이터 조회 

SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';

 

별도의 탭으로 동시에 결과 출력됨

 

2. 스토어드 프로시저 생성 

  • DELIMITER //
    CREATE PROCEDURE myProc()
    BEGIN
    SELECT * FROM member WHERE member_name = '나훈아';
    SELECT * FROM product WHERE product_name = '삼각김밥';
    END // 
    DELIMITER ; 
  • 구분문자인 DELIMITER // ~ DELIMITER; 사이에 BEGIN (넣으려는 SQL문) END 넣기

 

3. 스토어드 프로시저를 호출하기 위해 CALL문 실행

 

 

 

 

 

SQLD를 취득하면서 기본적인 이론의 기틀을 다졌지만, 실무적으로 활용할 수 있는 능력을 기르기 위해 혼공SQL을 공부하게 되었다.

길다면 길고 짧으면 짧은 시간, 열심히 해보겠다! 

 

'SQL' 카테고리의 다른 글

[혼공학습단] 5주차  (0) 2025.02.16
[혼공학습단] 4주차  (0) 2025.02.09
[혼공학습단] 3주차  (0) 2025.01.25
[혼공학습단] 2주차  (0) 2025.01.19