기본 미션
🐯 Chapter 01 ~ 02 p. 80 - shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과화면 인증샷
추가 미션
🐱 데이터베이스 개체 3가지 설명하기
데이터 베이스 개체란? 데이터베이스 안에 저장되는 개체. 모든 데이터베이스 개체는 독립적으로 존재하는 것이 아니라 테이블과 상호 연관이 있다.
1. 인덱스 INDEX
- 책의 제일 뒷부분의 '찾아보기'와 비슷한 개념으로 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해준다.
-- INDEX 생성 및 확인
CREATE INDEX idx_member_name ON member(member_name);
2. 뷰 VIEW
- 테이블과 상당히 동일한 성격의 데이터베이스 개체로 '가상의 테이블'이라고 할 수 있다.
- 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념임. like as 윈도우즈OS의 '바로가기 아이콘'과 비슷한 개념.
- 데이블의 일부를 제한적으로 표현할 때 주로 사용.
- 뷰를 활용하면 보안도 강화하고, SQL문도 간단하게 사용할 수 있다.
-- View 생성 및 이용
CREATE VIEW member_view AS SELECT * FROM member;
SELECT * FROM member_view;
3. 스토어드 프로시져 Stored Procedure
- MySQL에서 제공하는 기능으로 SQL에서 프로그래밍 언어처럼 코딩이 가능하도록 해준다.
- 여러개의 SQL문을 하나로 묶어서 편리하게 사용 할 수 있다.
- C, Java, Python과 같은 언어에서 사용되는 연산식, 조건문, 반복문 등을 사용 할 수 있다.
-- Stored Proceduer 실습
-- 일반 쿼리문
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
-- Stored Proceduer 쿼리문 생성
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER ;
-- Stored Proceduer 쿼리문 불러오기
CALL myProc();
-- Stored Proceduer 삭제하기
DROP PROCEDURE myProc;
4. 트리거 Trigger
- 잘못된 데이터가 들어가는 것을 미연에 방지 하는 기능으로 INSERT, UPDATE, DELETE와 같이 DML(Data Manipulation Language) 문이 작동할때 자동으로 실행되는 프로그래밍 기능.
- 트리거를 활용하면 데이터가 삭제될 때 해당 데이터를 다른곳에 자동으로 백업 할 수 있다.
-- 테이블에 트리거 부착하기
DROP TRIGGER IF EXISTS myTrigger;
DELIMITER $$
CREATE TRIGGER myTrigger
AFTER DELETE
ON trigger_table
FOR EACH ROW
BEGIN
SET @msg = '~~이 삭제됨'; -- 트리거 실행시 작동되는 코드들
END $$
DELIMITER;
-- 트리거의 경우 따로 섹션을 만들어 기재 할 예정.
5. 스토어드 함수 Stored Function
- 스토어드 프로시저와 비슷 하지만 사용 방법이나 용도가 다르다
- MySQL에서 제공하지 않는 함수를 사용 하고 싶을때 직접 만들어서 사용하는 함수 (MySQL에서 제공하는 함수를 내장함수(built-in function)이라고 한다.)
- 어떤 계산을 통해서 하나의 값을 반환하는데 주로 사용
- RETURN문으로 반환할 값의 데이터 형식을 지정하고, 본문 안에서는 RETURN문으로 하나의 값을 반환.
- 스토어드 함수의 매개변수는 모두 입력 매개변수 (IN을 붙이지 않는다)
- 스토어드 함수를 부를때는 CALL이 아닌 SELECT 문 안에서 호출, 함수 안에서는 SELECT문 사용 못함
- 스토어드 함수를 사용하려면 생성권한을 허용해주어야 하며 이는 한번만 설정해주면 이후에는 신경 쓰지 않아도 됨
-- 스토어드 함수 생성권한 허용
SET GLOBAL log_bin_trust_function_creators = 1;
-- 스토어드 함수 생성 방식
DELIMITER $$
CREATE FUNCTION 스토어드함수이름(매개변수)
RETURN 반환형식
BEGIN
이 부분에 프로그래밍 코딩
RETURN 반환값;
END$$
DELIMITER;
SELECT 스토어드함수이름();
-- 기존에 작성된 스토어드 함수의 내용을 확인 하기 위한 쿼리문
SHOW CREATE FUNCTION 함수이름;
6. 커서
- 테이블을 한 행씩 처리하기 위한 방식.
- 커서는 대부분 스토어드 프로시저와 함께 사용된다.
- 커서의 작동 순서 ① 커서 선언하기 ② 반복 조건 선언하기 ③ 커서 열기 [④ 데이터 가져오기 ⑤ 데이터 처리하기] 이부분을 반복 ⑥ 커서 닫기
- 커서는 DECLARE로 선언하며, 그 내용은 SELECT 문
- 커서는 행이 끝날 때까지 계속 반복. 행의 끝을 판단하기 위해 변수 endOfRow를 준비하고 TRUE값인지 체크하는 방식 사용
'SQL > 혼공학습단 8기 - SQL' 카테고리의 다른 글
week5 - 인덱스의 개념과 종류 및 작동 원리와 구조를 이해 (0) | 2022.08.14 |
---|---|
week4 - 테이블 만들기 CREATE, DROP, 가상의 테이블 view (0) | 2022.08.02 |
week3 - 테이블을 연결하는 JOIN 의 종류 와 예제 (0) | 2022.07.22 |
Week2 - 기본 문법 및 테이블 입력 및 수정 (0) | 2022.07.13 |
[혼공단8기] 혼공SQL로 시작하기 (0) | 2022.06.30 |