나만 헷갈리는 mysql8 함수

2022. 10. 6. 23:03·Database/Mysql
반응형

문자함수

 

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' 카테고리의 다른 글

게시글 좋아요 수로 정렬이 필요한 경우 통계 테이블 활용하기  (0) 2025.04.13
인덱스 - 1  (0) 2022.01.10
스프링 부트 테스트 도중 'Lock wait timeout exceeded; try restarting transaction'  (0) 2021.08.17
'Database/Mysql' 카테고리의 다른 글
  • 게시글 좋아요 수로 정렬이 필요한 경우 통계 테이블 활용하기
  • 인덱스 - 1
  • 스프링 부트 테스트 도중 'Lock wait timeout exceeded; try restarting transaction'
소프
소프
  • 소프
    기회는 찬스
    소프
  • 전체
    오늘
    어제
    • 분류 전체보기 (139)
      • Language (20)
        • Java (19)
        • Design Pattern (1)
      • Tech (27)
        • Spring (19)
        • JPA (3)
        • QueryDSL (1)
        • Gradle (4)
      • 개발 생각 (1)
      • IT Book (0)
        • 자바_스프링 개발자를 위한 실용주의 프로그래밍 (0)
      • Database (4)
        • Mysql (4)
        • Redis (0)
      • 네트워크 (1)
      • 운영체제 (2)
      • IDE (12)
        • Intellij (9)
        • vscode (2)
        • datagrip (1)
      • 인프라 (11)
        • Docker (2)
        • Jenkins (7)
        • Github Actions (1)
        • GCP (1)
      • 형상관리 (2)
        • gitlab (2)
        • git (0)
      • 외부활동 (44)
        • CS 면접 끝장내기 - 데이터베이스 1기 (5)
        • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
        • CS 면접 끝장내기 - 자바 2기 (0)
        • TDD, 클린 코드 with Java 17기 (7)
        • ATDD, 클린 코드 with Spring 8기 (6)
        • 루퍼스 2기 (21)
      • 프로젝트 (0)
      • 회고 (6)
      • 기타 (1)
        • 제미니의 개발 실무 (0)
  • 블로그 메뉴

    • 홈
    • Github
    • LinkedIn
    • 방명록
  • 인기 글

  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
소프
나만 헷갈리는 mysql8 함수
상단으로

티스토리툴바