▶ View
- 하나 이상의 테이블들을 활용해 사용자가 정의한 가상 테이블
- JOIN 사용을 최소화해 편의성을 최대화
- 가상테이블이기 때문에 중복되는 열 저장될 수 없음
ex)
CREATE VIEW 가상테이블명 AS
SELECT A.*
,A.판매갯수 * B.가격 AS 결제금액
FROM SALES AS A
LEFT
JOIN PRODUCT AS B
ON A.PRODUCT_CODE = B.PRODUCT_CODE;
이후 View 실행, 수정, 삭제
SELECT *
FROM 가상테이블명
ALTER VIEW 가상테이블명 AS
~ 수정할 명령어 작성~
DROP VIEW 가상테이블명
▶ Procedure
- 프로시저 : 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 매개변수를 활용해 사용자가 정의한 작업을 수행
* 매개변수
IN → 매개변수를 저장된 프로시저로 전달
OUT → 프로시저 결과값을 반환
INOUT → 매개변수를 저장된 프로시저로 전달, 프로시저 결과값을 반환
IN 매개변수
DELIMITER //
CREATE PROCEDURE 프로시저명 (IN 매개변수명1 변수타입, 매개변수명2 변수타입)
BEGIN
(매개변수 활용할 명령어 작성)
SELECT *
FROM CUSTOMER
WHERE GENDER = 매개변수명1
AND ADDR = 매개변수명2;
END //
DELIMITER
▲ 프로시저 실행
CALL 프로시저명(매개변수값1, 매개변수값2);
매개변수값들에 해당하는 행만 조회됨
▲ 프로시저 삭제
DROP PROCEDURE 프로시저명
* DELIMETER → 여러 명령어들 하나로 묶어줄 때 사용
* BEGIN과 END → 프로시저 매개변수 활용한 명령어의 시작과 끝 의미
OUT 매개변수
DELIMITER //
CREATE PROCEDURE 프로시저명 (IN 매개변수명1 변수타입, 매개변수명2 변수타입 OUT 회원수 INT )
BEGIN
SELECT COUNT(MEM_NO)
INTO 회원수
FROM CUSTOMER
WHERE GENDER = 매개변수명1
AND ADDR = 매개변수명2;
END //
DELIMITER
* INTO : OUT 매개변수의 결과값 반환
IN 매개변수의 조건들이 프로시저로 전달되면, 이에 따른 결과값인 회원수가 OUT 매개변수로 반환
CALL로 요청후 SELECT로 OUT 매개변수로 반환된 결과값을 조회
INOUT 매개변수
DELIMITER //
CREATE PROCEDURE 프로시저명 (INOUT COUNT INT)
BEGIN
SET COUNT = COUNT + 10;
END //
DELIMITER;
SET @counter =1;
CALL 매개변수명 (@counter);
SELECT @counter;
1이 프로시저로 전달되는 IN 매개변수 성질 , +10이 더해진 OUT 매개변수 성질 가짐
INOUT 매개변수를 저장한 프로시저에 해당 매개변수 넣고 실행
'IT 기초 > SQL' 카테고리의 다른 글
[SQL 활용] 연산자 및 함수 - 함수 (0) | 2023.04.04 |
---|---|
[SQL 활용] 연산자 및 함수 - 연산자 (0) | 2023.04.04 |
[SQL 문법] 서브 쿼리(Sub Query) (0) | 2023.04.01 |
[SQL 문법] 테이블 결합(JOIN) (0) | 2023.04.01 |
[SQL 기본구조] SQL 정의, 관계형 데이터베이스, SQL 명령어 (0) | 2023.03.31 |