Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- GRU
- HackerRank
- 자연어 논문 리뷰
- Window Function
- 서브쿼리
- 짝수
- airflow
- t분포
- leetcode
- 코딩테스트
- 자연어 논문
- SQL코테
- update
- 카이제곱분포
- 표준편차
- nlp논문
- 논문리뷰
- sql
- sigmoid
- torch
- LSTM
- 설명의무
- inner join
- 자연어처리
- 그룹바이
- CASE
- MySQL
- NLP
- SQL 날짜 데이터
- Statistics
Archives
- Today
- Total
HAZEL
[ SQL : 사용자 정의 함수, User - defined Function ] 본문
User - defined Function - Mysql
01. 기본 구조
CREATE FUNCTION '함수이름 function name' ('parameter name', 'datatype' )
RETURN '출력될 결과의 datatype' ( DETERMINISTIC )
BEGIN
DECLARE 'variable name' 'datatype';
SET;
RETURN ( Query ) / 'variabel name';
END
-- 사용 방법
SELECT 'function name' (parameter)
( DETERMINISTIC ) : 은 NOT DETERMINISTIC 이 defalt 임. 인풋값은 똑같고, 아웃풋값이 호출할 때마다 같을때, DETERMINISTIC 을 적어주고, 아니면 defalt값으로 유지하면 된다.
- 기본구조에서 가장 중요한 것은 'RETURN'은 반드시 적어주어야 한다는 것이다.
: 이 때, 중간에 변수를 선언해주어야 할 때, DECLARE 와 SET 으로 변수를 설정해준다.
DECLARE 와 SET에는 ; 을 반드시 적어주어야 한다.
02. 예시 - MY SQL 튜토리얼
https://www.mysqltutorial.org/mysql-stored-function/
Let’s take the example of creating a stored function. We will use the customers table in the sample database for the demonstration.
CREATE FUNCTION CustomerLevel(
credit DECIMAL(10,2)
)
RETURNS VARCHAR(20) DETERMINISTIC
BEGIN
DECLARE customerLevel VARCHAR(20);
IF credit > 50000 THEN
SET customerLevel = 'PLATINUM';
ELSEIF (credit >= 50000 AND
credit <= 10000) THEN
SET customerLevel = 'GOLD';
ELSEIF credit < 10000 THEN
SET customerLevel = 'SILVER';
END IF;
-- return the customer level
RETURN (customerLevel);
END
- DECIMAL : 실수형
- RETURNS : 함수의 반환값
- VARCHAR : 문자
- DETERMINISTIC : 항상 반환값이 같기때문에, 적어줌
- DECLARE customerLevel VARCHAR(20); : 변수를 선언을 해줌
- IF 문을 이용해서 조건에 따라서 RETURN
- 위의 함수를 실행하는 방법
SELECT
customerName,
CustomerLevel(creditLimit)
FROM
customers
ORDER BY
customerName;