IF
주로 SELECT절에 사용, 결과 값을 새로운 컬럼으로 변환 한다.
SELECT name, IF(attack >= 60, 'strong','weak')AS attack_class
FROM pokemon.mypokemon;
IFNULL
데이터가 NULL인지 아닌지를 확인해 NULL이라면 새로운 값을 반환한다.
SELECT name, IFNULL(name, 'unknown') AS full_name
FROM mypokemon
CASE
조건이 여러개일때 사용
SELECT name
CASE
WHEN attack >= 100 THEN 'very strong'
WHEN attack >= 60 THEN 'strong'
ELSE 'weak'
END AS attack_class
FROM my pokemon
SELECT name, type
CASE type
WHEN 'bug' THEN 'grass'
WHEN 'electric' THEN 'water'
WHEN 'grass' THEN 'bug'
END AS rival_type
FROM my pokemon
함수만들기
CREATE FUNCTION
함수 지우기
DROP FUNCTION
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 ability;
RETURNS ability
END
MYSQL 에서 함수 생성시
SET GLOBAL log_bin_trust_function+creators = 1;
권한을 생성시켜줘야 함
DELIMITER // // DELIMITER 로 감싸줘야함!
최종예제
SET GLOBAL log_bin_trust_function+creators = 1;
DELIMITER //
CREATE FUNCTION isStrong(attack INT, defense INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE a INT;
DECLARE b INT;
DECLARE isStrong VARCHAR(20);
SET a = attack;
SET b = defense;
SELECT CASE
WHEN a+b > 120 THEN 'veryStrong'
WHEN a+b > 90 THEN 'Strong'
ELSE 'notStrong'
END INTO isStrong;
END
// DELIMITER ;
SELECT name, isStrong(attack, defense) AS isStrong
FROM mypokemon
'DB' 카테고리의 다른 글
MySQL기초(7) (0) | 2022.05.04 |
---|---|
MySQL 기초(5) (0) | 2022.05.04 |
MySQL 기초 (4) (0) | 2022.05.02 |
MySQL 기초(3) (0) | 2022.05.02 |
MySQL 기초 (2) (0) | 2022.04.29 |