[MySQL] 4편 단일행함수 (ifnull, if, lower/upper, trim, round, mod, now)

Hailey·2021년 1월 17일
1

MySQL

목록 보기
4/9
post-custom-banner

함수의 종류는 매우매우 많기 때문에 외우기보다는 필요할 때 검색해서 사용하는 것이 좋습니다.

4편에서는 자주 사용하는 몇 가지의 단일행함수를 알아보려고합니다! 함수만 잘 사용하더라도 SQL 활용능력을 많이 끌어올릴 수 있습니다.

일반함수

1. ifnull 함수 사용 하기

null인 데이터 값이 있을 때 null이라고 출력하지 않고 지정하는 다른 특정 값으로 출력하게 하는 함수입니다.

다음의 실적 관련 테이블이 있습니다.

  • employee
nameperformancebonus
이지은280500,000
천우희250null
고윤정3201,000,000
박채희220null

bonus의 null 값을 0으로 바꾸어 출력하려고 합니다.

SELECT name, performance, ifnull(bonus, 0) 
FROM employee;
  • employee
nameperformancebonus
이지은280500,000
천우희2500
고윤정3201,000,000
박채희2200

ifnull 의 사용법은 다음과 같습니다.

ifnull(data, 'null 대신 들어갈 문자나 숫자, 또는 컬럼명')

2. if 함수 사용 하기

if 함수 역시 자주 쓰이는 함수 중 하나입니다. if 함수는 ifnull을 대신할 수도 있습니다.

if 함수의 사용법은 아래와 같습니다.

if(조건, 조건 성립시 출력, 조건 미성립시 출력)
SELECT name, performance, if(bonus is null, '해당없음', bonus) 
FROM employee;
nameperformancebonus
이지은280500,000
천우희250해당없음
고윤정3201,000,000
박채희220해당없음

performance의 점수에 따라 우수사원을 출력하는 테이블도 사용할 수 있습니다.

SELECT name, performance, if(performance >= 270, '우수사원', '일반사원') 
FROM employee;
nameperformanceif(performance >= 270, '우수사원', '일반사원')
이지은280우수사원
천우희250일반사원
고윤정320우수사원
박채희220일반사원

문자함수

1. lower/upper 함수 사용 하기

문자열을 소문자로 혹은 대문자로 변경할 수 있는 함수입니다.

  • country
country
England
Australia
South Korea
SELECT country_name AS 원본, 
lower(country_name) AS 소문자, 
upper(country_name) AS 대문자 
FROM country;
country소문자대문자
EnglandenglandENGLAND
AustraliaaustraliaAUSTRALIA
South Koreasouth koreaSOUTH KOREA

2. trim/ltrim/rtrim 함수 사용 하기

trim은 데이터 문자열의 양쪽 공백을 없애는 함수이고, ltrim은 왼쪽 공백만 없애는 함수, rtrim은 오른쪽 공백만 없애는 함수들입니다.

사용법은 세 함수 모두 같습니다. trim(칼럼명)입니다.

SELECT country as 원본, trim(country) as trim, ltrim(country) as ltrim, rtrim(country) as rtrim

아래표를 보면 trim에서는 왼쪽과 오른쪽 모두 공백이 없어지고, ltrim에서는 왼쪽 공백이 사라지고, rtrim에서는 오른쪽 공백이 없어지는 함수이기 때문에 왼쪽 공백에 변함이 없는 것을 확인할 수 있습니다.


숫자함수

1. round 함수 사용 하기

round 함수는 반올림 함수로 먼저 입력된 숫자를 두번째 숫자까지 반올림한 후 출력하는 함수입니다. 옵션을 통해서 반올림 자릿수를 설정할 수 있습니다.

SELECT round(112.3456,1),round(112.3456,2),round(112.3456,-1) 
FROM dual;
round(112.3456,1)round(112.3456,2)round(112.3456,-1)
112.3112.35110

2. mod 함수 사용 하기

mod 함수는 나머지 함수로 먼저 입력된 값을 두 번째 입력된 값으로 나눈 뒤 나눈 값을 제외하고 나머지를 결과로 출력하는 함수입니다.

select mod(26,5),mod(13,9),mod(9,2) from dual;
mod(26,5)mod(13,9)mod(9,2)
141

날짜함수

1. 지금 현재 날짜, 시간 출력 하기

select now();
select sysdate();
select current_timestamp();


profile
Cloud Solution Architect - Customer Success in security💗🌎
post-custom-banner

0개의 댓글