반응형

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

+ Recent posts