문자함수
1. 문자열 자르기
SELECT
capital_city,
substr(capital_city,2,2) as substr,
mid(capital_city,2,2) as mid,
substring(capital_city,2,2) as substring
FROM class.country
- 숫자는 1부터 시작
- 3함수 모두 기능이 같음
- substr(컬럼명, 시작할 문자열의 위치 값, 리턴 시킬 값의 길이)
2, 특정 문자열 위치 찾기
SELECT
capital_city,
instr(capital_city, 'a') as instr_a,
instr(capital_city, 'do') as instr_do,
instr(capital_city, 'r') as instr_r
FROM class.country;
- 두 글자 이상의 변수를 주면 해당 문자가 시작하는 그 지점의 위치를 반환
- 대소문자를 구분하지 않음
3. 원하는 문자의 자릿수를 채우기
SELECT
continent,
lpad(continent, 10, '@') as lpad,
rpad(continent, 10, '@') as rpad
FROM class.country;
- lpad(컬럼명, 기준 자릿수, 채워 넣을 숫자 or 문자)
4.문자열 공백 없에기
SELECT
capital_city,
trim(capital_city) as trim,
ltrim(capital_city) as ltrim,
rtrim(capital_city) as rtrim
FROM class.country
- trim: 양쪽 공백 제거
- ltrim: 왼쪽 공백 제거
- rtrim: 오른쪽 공백 제거
5. 문자열 수정
SELECT
capital_city,
replace(capital_city, 'o', '$') as replace_function
FROM class.country;
- replace(컬럼명, '찾을 문자', '치환할 문자')
- 대소문자를 구분한다.
책 이외 번외
1. 문자열 분할
SELECT SUBSTRING_INDEX('google.co.kr', '.', 1); -- 'google'
SELECT SUBSTRING_INDEX('google.co.kr', '.', 2); -- 'google.co'
SELECT SUBSTRING_INDEX('google.co.kr', '.', 3); -- 'google.co.kr'
SELECT SUBSTRING_INDEX('google.co.kr', '.', -1); -- 'kr'
SELECT SUBSTRING_INDEX('google.co.kr', '.', -2); -- 'co.kr'
SELECT SUBSTRING_INDEX('google.co.kr', '.', -3); -- 'google.co.kr'
- substring_index('문자열', '구분자', '위치')
숫자함수
1. 날짜와 시간을 연산하여 출력하는 방법
date_add(date, interval expr type)
date_sub(date, interval expr type)
adddate(date, interval expr type)
subdate(date, interval expr type)
select date_add('2020-12-31 23:59:59', interval 1 second); -- 주어진 시간에 1초를 더한다
select date_add(now(), interval 31 day); -- 현재날짜에 31일을 뺀다
select date_add(now(), interval '-1 17' day_hour); -- 현재시작에 하루와 17시간을 뺀다
2. 시간과 초 데이터를 변환하여 출력
select sec_to_time(5000); -- 5,000초를 시간으로 환산
select time_to_sec('20:20:50'); -- 20시간 20분 50초를 초 데이터로 변환
3. 날짜에 달(월)을 더해주는 함수
- PERIOD_ADD(P, N)
select period_add(2001,15); -- YYMM / result: 202104
select period_add(202001,15); -- YYYYMM / result: 202104
4. 원하는 날짜를 원하는 형태로 변경하여 출력
- select date_format('date 데이터','출력 format');
select date_format(now(), '%p'); -- 오전, 오후 출력
select date_format(now(), '%Y-%m-%d %H:%i:%s'); -- 자리년도와 일, 월, 24 시시간과 분, 초
변환함수
1. 데이터 타입을 서로 변환시켜주는 형 변환 함수
- CAST ( 표현 할 값 AS 데이터 형식[(길이)] );
- CONVERT ( 표현 할 값 , 데이터 형식[(길이)] );
문자 <--> 숫자
select cast(100 as char) as num_to_char, cast('100' as signed) as char_to_num from dual;
문자 -> 날짜
SELECT
'2016-08-25 03:30:00',
CAST('2016-08-25 03:30:00' AS DATETIME) AS char_to_datetime
FROM DUAL;
조건 함수
출처
독학으로 예재 따라 익히는 mysql sql 입문서
'Database > Mysql' 카테고리의 다른 글
인덱스 - 1 (0) | 2022.01.10 |
---|---|
스프링 부트 테스트 도중 'Lock wait timeout exceeded; try restarting transaction' (0) | 2021.08.17 |