mariaDB 내장함수 :
1. 사용자의 편의르 위해 미리 작성해둔 함수
2. 숫자/문자/날짜/시간/변환/집계/분석 함수등이 제공
숫자함수 :
1. 절댓값 계산 : abs(값);
select abs(-4.5),abs(4.5); -- 4.5 / 4.5 출력확인
2. 반올림. : round(값, 자리수);
select round(4.1), round(4.5); -- 4.1 / 4.5 출력확인
select round(123.456,1), round(123.456,2); -- 123.5 / 123.46 출력확인
3. 무조건 내림 : floor(값);
select round(4.1), round(4.5); -- 4 / 4 출력확인
select round(-4.1), round(-4.5); -- -5 / -5 출력확인
-- 음수에서 floor 하면 더 작아져야함으로 -5가된다.
4. 무조건 올림 : ceil(값);
select ceil(4.1), ceil(4.5); -- 5 / 5
select ceil(-4.1), ceil(-4.5); -- 4 / 4
-- 위와 마찬가지로 음수에서는 값이 커지면 절댓값 자체는 낮아져야한다.
5. 나머지 연산 : mod(분자,분모);
select mod(10,5),mod(10,3); -- 0 / 1 출력확인
6. 난수 생성 : random (0~1사이 실수값이 출력이된다);
select rand(), rand()*10, rand()*100;
ex) n~m 사이 임의의 정수 생성
-- n~m 사이 임의의 정수 생성
-- n + rand()*(m-n+1) 4~14 사이의 임의의 정수 생성
select floor(4+rand()*(14-4+1));
문자함수:
1. 문자의 ASCII 코드 출력 : ascii(문자);
select ascii('a'), ascii('A'),ascii('0'); -- 97 / 65 / 48 출력확인
2. ASCII 코드의 문자 출력 : char(숫자);
select char(97),char(65),char(48); -- a / A / 0 출력확인
3. 문자열 길이 : length(문자열);
영문자 : 1byte
유니코드 : 3byte 한글은 유니코드 3byte먹는걸 확인할 수 있다.
select length('Hello, World!!'); -- 14 출력확인
select length('가나다라마바'); -- 18 출력확인
4. 문자열 연결 : concat(문자열1,문자열2, ... );
select concat('Hello',',World','!!'); -- Hello,World!! 출력확인
5. 문자열 추출 : left(문자열, 길이); , right(문자열, 길이); left는 왼쪽에서 부터 right는 오른쪽에서부터
mid(문자열, 시작, 길이); , substring(문자열, 시작, 길이); or substr(문자열, 시작, 길이)
+ substring_index 함수
select left('Hello,World',5); -- Hello 출력확인
select right('Hello,World',5);-- World 출력확인
select mid('Hello,World',1,5);-- Hello 출력확인
SELECT SUBSTR('foobarbar' FROM 4); -- barbar 출력확인
SELECT SUBSTR('Quadratically',5,6); -- ratica 출력확인
SELECT SUBSTR('Sakila', -3); -- ila 출력확인
SELECT SUBSTRING('Sakila', -5, 3); -- aki 출력확인
SELECT SUBSTRING('Sakila' FROM -4 FOR 2); -- ki 출력확인
SELECT SUBSTRING('Quadratically',5); -- ratically 출력확인
select substring_index('Hello_World_!!','_',1);
-- 첫번째 ' _ '로 분리한 문자열을 출력
select substring_index('Hello_World_!!','_',2);
-- 두번째 ' _ '로 분리한 문자열을 출력
6. 대소문자 변환: upper() or ucase() , lower() or lcase()
select upper('abc'), lower('ABC'); -- ABC , abc 출력확인
select ucase('abc'), lcase('ABC'); -- ABC , abc 출력확인
7. 공백처리 : trim() , ltrim() , rtrim()
select trim(' abc '), -- 앞뒤의 공백을 전부 제거
rtrim('abc '), -- 뒤 공백 전부 제거
ltrim(' abc'); -- 앞 공백 전부 제거
8. 문자열 채움 : pad(문자열, 총길이 , 채움문자)
왼쪽에 채우려면 lpad를 오른쪽을 채울려면 rpad를
select lpad('1234567890',10,'_'),
lpad('12345',10,'_'),
rpad('12345',10,'_'),
rpad('가나다',10,'_');
9. 문자열 바꾸기 : replace(문자열, 찾을문자, 바꿀문자)
select replace('Hello,World','World','mariadb'),
replace('Hello,World','World',''); -- 공백으로 지울 수도 있다
10. 문자열 뒤집기 : reverse()
select reverse('12345'), reverse('가나다라마');
11. 문자열 위치 찾기 : instr(문자열 , 찾을위치)
select instr('Hello,World','W'),
instr('Hello,World','H'),
instr('Hello,World','!');
12. Null 처리 함수 : coalesce(문자열, null일때 대체 값) or ifnull(문자열, null일때 대체값)
select Null, coalesce(Null,'널임'),
coalesce('Hello','널임'),
IFNULL(Null,'널임'),
IFNULL('Hello','널임');
+ 조건 판단 : if (조건식, 참일때값, 거짓일때 값)
다중 조건 : case when 조건식 then 처리값 or else 처리값 or 처리값 end
SELECT case when (5>3) then '겁나커요이잉~' else '겁나작아요이잉~' end,
case when (3>3) then '겁나커요이잉~' else '겁나작아요이잉~' end;
'JAVA & APP :국비지원 학원 복습 > MySql' 카테고리의 다른 글
MySQL 날짜 문제 풀기 (0) | 2020.12.11 |
---|---|
MySQL 내장함수 (날짜/시간 ...) (0) | 2020.12.11 |
DAY ?? . MySQL 뷰(View) (0) | 2020.12.10 |