IF(조건식, 참일때 값, 거짓일 때 값)
형식으로 사용합니다.- 주로 SELECT 절에 사용하는 함수로, 결과 값을 새로운 컬럼으로 반환합니다.
쿼리 입력SELECT name, IF (attack >= 60, 'strong', 'week') AS attack_class FROM pokemon.mypokemon;
IFNULL([컬럼이름], NULL일 때 값)
형식으로 사용합니다.- 해당 컬럼의 값이 NULL인 로우에서
NULL일 때 값
을 반환합니다.- 주로 SELECT 절에 사용하는 함수로, 결과 값을 새로운 컬럼으로 반환합니다.
입력쿼리SELECT name,IFNULL(name,'unknown') AS full_name FROM pokemon.mypokemon;
쿼리 문법
형식1CASE WHEN 조건식1 THEN 결과값1 WHEN 조건식2 THEN 결과값2 ELSE 결과값3 END
형식2
CASE [컬럼이름] WHEN 조건값1 THEN 결과값1 WHEN 조건값2 THEN 결과값2 ELSE 결과값3 END
- 주로 SELECT절에 사용하는 함수로, 결과 값을 새로운 컬럼으로 반환합니다.
- ELSE 문장을 생략 시 NULL값을 반환합니다.
쿼리 문법SELECT name, CASE WHEN attack >= 100 THEN 'very_strong' WHEN attack >= 60 THEN 'strong' ELSE 'weak' END AS attack_class FROM mypokemon;
쿼리 문법
SELECT name, type CASE type WHEN 'bug' THEN 'grass' WHEN 'electric' THEN 'water' WHEN 'grass' THEN 'bug' END AS rival_type FROM pokemon.mypokemon;
쿼리 문법
CREATE FUNCTION [함수이름]([입력값 이름][데이터 타입],...) RETURNS [결과값 데이터 타입] BEGIN DELARE [임시값 이름][데이터 타입]; SET [임시값 이름] = [입력값 이름]; 쿼리; RETURN 결과값 END
- 공격력과 방어력의 합을 가져오는 함수
CREATE FUNCTION getability(attack INT, defense INT) RETURNS INT BEGIN DECLARE a INT; DECLARE b INT; DECLARE ability INT; SET a = attack; SET b = defense; SELECT a + b INTO ablilty; RETURN ability; END SELECT name, getability(attack,defense) AS getablilty FROM mypeokmon;
💡MySQL Workbench 에서 함수 생성시 주의할 점
SET GLOBAL log_bin_trust_function_creators = 1;
DELIMITER //
CREATE FUNCTION getability(attack INT, defense INT)
RETURNS INT
BEGIN
DECLARE a INT;
DECLARE b INT;
DECLARE ability INT;
SET a = attack;
SET b = defense;
SELECT a + b INTO ablilty;
RETURN ability;
END
>
//
DELIMITER ; -- 꼭 한 칸을 띄어주세요!!
🙄 입력할 것이 많아서 헷갈리고 외울 것이 많다고 느껴지지만, 자주쓰다보면 익숙해질 것이다.
기억 안날 때 절망하지 말고 돌아와서 다시 보자
좋은 정보 감사합니다