sql

MYSQL - 숫자/문자열/시간을 다루는 함수

yun.seul 2023. 1. 16. 20:52
숫자를 다루는 함수

 

숫자를 다루는 함수들의 예시들이다.

select abs(-33);
select round(123.44, 1);
select ceil(123.44);
select floor(123.44);

select pow(5,3);

select rand();
select pi();

 

기능 함수 구조 예시 결과
절댓값 abs(숫자) abs(-33) 33
반올림 round(숫자, 소수점자리) round(123.44, 1) 123.4
올림 ceil(숫자) ceil(123.44) 124
내림 floor(숫자) floor(123.44) 123
거듭제곱 pow(밑,지수) pow(5,3) 5^3 = 125
랜덤함수 rand() rand() 0부터 1사이의 랜덤 변수
파이(π) pi() pi() 3.141593

 

 

 

 

문자열을 다루는 함수

 

문자열을 다루는 함수들의 첫번째 예시들이다.

select trim('       234           ');
select Ltrim('       234           ');
select Rtrim('       234           ');

select lower('ABCD');
select UPPER('abce');

select reverse('뒤집기');

select concat('문자열','여러개','결합');
select concat('값 중에' , null , '값이 있으면?');

select ifnull(null,'왼쪽값이 null이면 대체');
select coalesce (null, null, null,'나열된 값중null아닌 첫번째값으로', null);

 

기능 예시 결과
양쪽 공백 없애기 trim('       234           ') '234'
왼쪽 공백 없애기 Ltrim('       234           ') '234           '
오른쪽 공백 없애기 Rtrim('       234           ') '       234'
소문자로 바꿈 lower('ABCD') 'abcd'
대문자로 바꿈 UPPER('abce') 'ABCD'
문자열을 뒤집어 나열한다 reverse('뒤집기') '기집뒤'
여러 문자열을 합친다 concat('문자열','여러개','결합') '문자열여러개결합'
concat('값 중에' , null , '값이 있으면?') NULL
첫번째 값이 null이면 두번째값으로 대체 ifnull(null,'왼쪽값이 null이면 대체') '왼쪽값이 null이면 대체'
여러값 중 null값이 아닌 첫번째 값 coalesce (null, null, null,'나열된 값중null아닌 첫번째값으로', null) '나열된 값중null아닌 첫번째값으로'

 

문자열을 다루는 함수들의 두번째 예시들이다.

select char_length('몇글자인가요?');
select replace('원본 문자열에서 변환합니다', '변환', 'replace');

select lpad('123', 5, '0');
select rpad('456', 5, '*');

select locate('D', 'ABCDEFG');
select locate('A', 'ABCDEFG',2);

-- (문장, 몇번째, 짜를 갯수)
select substring('employees', 3);
select substring('employees', 3, 3);
select substring('employees', -3);
기능 함수 구조 예시 결과
문자열길이를 출력 char_length(문자열) char_length('몇글자인가요?') 7
문자열 중 문자를 찾아 치환 replace(문자열,문자열에서 찾을 단어, 바꿀 문자열) replace('원본 문자열에서 변환합니다', '변환', 'replace') '원본 문자열에서 replace합니다'
문자열 길이를 정해주고 빈공간인 문자열을 특정문자로 채워준다(왼쪽부터) lpad(문자열,단어길이, 빈공간에넣을 문자열) lpad('123', 5, '0') '00123'
문자열 길이를 정해주고 빈공간인 문자열을 특정문자로 채워준다(오른쪽부터) rpad(문자열,단어길이, 빈공간에넣을 문자열) rpad('456', 5, '*') '456**'
문자열에서 단어를 찾아 인덱스 번호를 알려준다 locate(찾을단어, 문자열,[몇번째부터찾을지]) locate('D', 'ABCDEFG') 4
locate('A', 'ABCDEFG',2) 0
문자열을 자른다
(음수일땐 문자열의 마지막에서 숫자를 세어 자른다)
substring(문자열,자를지점,[끝지점]) substring('employees', 3) 'ployees'
substring('employees', 3, 3) 'plo'
substring('employees', -3) 'ees'

 

 

 

시간을 다루는 함수

 

시간을 다루는 함수들의 예시들이다

select current_date();
select current_time();
select current_timestamp();

select date '2022-12-26' + interval 7 day;
select adddate('2022-12-26', 1);
select date_add('2022-12-26', interval 1 day);

select datediff('2022-06-26','2022-12-26');

select extract(year from '2022-06-26');

select dayofweek('2022-12-26');
기능 함수 구조 예시 결과
현재날짜 current_date() current_date() 2023-01-16
현재시간 current_time() current_time() 20:42:32
현재날짜시간 current_timestamp() current_timestamp() 2023-01-16 20:42:32
interval을 붙이면 날짜를 계산가능하게 만들어준다 interval date '2022-12-26' + interval 
7 day
2023-01-02
날짜더하기(day만 가능) adddate('날짜', 일(day)) adddate('2022-12-26', 1) 2022-12-27
날짜더하기(주,달,년 다 가능) date_add('날짜', 더할 날짜) date_add('2022-12-26', interval 1 day) 2022-12-27
날짜 빼기 datediff('시작날짜','끝날짜') datediff('2022-06-26','2022-12-26') -183
날짜에서 년, 월, 일, 시간등을 추출 extract(추출할 타입 from '날짜') extract(year from '2022-06-26') 2022
요일 숫자로 나타내기
(1  : 일요일)
dayofweek('날짜') dayofweek('2022-12-26') 2

'sql' 카테고리의 다른 글

MYSQL - JOIN문  (0) 2023.01.16
MYSQL - transaction문  (0) 2023.01.16
MYSQL - CAST/ CONVERT 데이터 형 변환  (0) 2023.01.13
MYSQL - UNION/GROUP BY/HAVING/DISTINCT  (0) 2023.01.12
MYSQL - 서브쿼리(Subquery)  (0) 2023.01.12