본문 바로가기

TIL

TIL 3/10 - DB(2) SELECT, 빌트인함수

ORDER BY 을 통한 정렬시 NULL 하단 정렬코자 할 경우

ORDER BY
        ref_category_code IS NULL ASC -- 해당 형태로 작성 필요 
ORDER BY
    ref_category_code IS NULL DESC, ref_category_code DESC 
    -- 역순 정렬시 NULL 상단에 위치하고자 할 경우 정렬 한번 더 진행 필요.

LIMIT

출력 행의 개수를 제한하는 구문

주로 ORDER BY 절로 원하는 기준으로 정렬 뒤 LIMIT 절을 이용해서 출력 개수 제한

→ Top-N 분석, 페이지네이션

LIMIT [offset], row_count offset → 출력 시작 행 수(index) row_count → 출력 개수

Built in function

내장 함수

전달된 값들을 읽어들여 특정 작업 수행 후 결과값 반환 함수

호출 → 작업 수행 → 결과값 반환

https://www.w3schools.com/mysql/mysql_ref_functions.asp

https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html

단일행 함수 - 각 행마다 반복적으로 작업을 수행하여 결과 반환 ( N개 → N개 )

  • 문자 처리 함수

    1. ASCII(문자) : 문자의 아스키 코드값 반환

    2. CHAR(숫자) : 아스키 코드 숫자의 문자 반환

    3. LENGTH(문자열) : 문자열 할당 바이트 크기 반환

    4. BIT_LENGTH(문자열) : 문자열 할당 비트 크기 반환 == LENGTH * 8

    5. CHAR_LENGTH(문자열) : 문자열 길이 반환

      utf8mb4 문자셋 기준

      한글 한 글자 - 3Byte

      그 외 한 글자 - 1Byte

      CONCAT(str1, str2, ...) : 해당 문자열 다 이어붙인 결과 반환

      CONCAT_WS(구분자, str1, str2, ...) : 문자열들을 구분자로 이어붙인 결과 반환

      ELT(찾을 위치, str1, str2, ..) : 문자열들 중 특정 위치의 문자만 반환 (없으면 NULL 반환)

      FIELD(찾을 문자열, str1, str2, ...) : “ 해당 문자열 위치 반환( 없으면 0 반환 )

      FIND_IN_SET(찾을 문자열, 문자열리스트) : 문자열 리스트 중 “ 없으면 0 반환

      → 단, 문자열 리스트는 ‘,’ 로 나열된 문자열이어야함

      INSTR(기준문자열, 부분문자열) : 기준 문자열 기준으로 부분 문자열의 시작 위치 반환 없으면 0 반환

      LOCATE(부분문자열, 기준문자열) : 기준 문자열 기준으로 부분 문자열의 시작 위치 반환 없으면 0 반환

      FOMAT(숫자, 소숫점자릿수) : 1000 단위마다 콤마(,) 표시를 해주며 소수점 아래 자리수까지 표현(반올림)함

      INSERT(기준 문자열, 위치, 길이, 삽입할 문자열) : 기준 문자열의 해당 위치에서 해당 길이만큼 지우고 삽입 문자열을 넣어 반환

      REPLACE(기준문자열, 찾을 문자열, 바꿀 문자열) : 기준 문자열로부터 특정 문자열을 찾아 바꿀 문자열로 변경 후 반환, 찾을 문자열 미존재시 기준 문자열 반환

      LEFT(문자열, 길이) : 해당 문자열 왼쪽에서부터 substr

      RIGHT(문자열, 길이) : 해당 문자열 오른쪽에서부터 substr

      UPPER(문자열) : 문자열 대문자로 변경 후 반환

      LOWER(문자열) : 문자열 소문자로 변경 후 반환

      LPAD:RPAD(기준문자열, 길이, 채울문자열) : 기준 문자열에 좌 혹은 우측에 채울 문자열을 넣어 길이만큼 만들어 반환

      LTRIM, RTRIM, TRIM(문자열) : 문자열의 공백 제거 반환

      TRIM(BOTH, LEADING, TRAILING ‘추출문자열’ FROM ‘원본문자열’)

      REPEAT(문자열, 반복수) : 반복 수 만큼 문자열 합침

      SPACE(길이) : 해당 길이만큼 공백 문자열 반환

      REVERSE(문자열) : 문자열 순서 뒤집어 반환

      SUBSTRING(문자열, 시작 위치, 길이) : 문자열의 시작위치에섭터 길이만큼 반환 == SUBSTR

      SUBSTRING_INDEX(문자열, 구분자, 구분자 순서) : 해당 문자열 구분자까지의 위치 반환(varchar 리턴)

  • 숫자 처리 함수

    ABS(num) : 절대값 반환

    CEILING(num) : 올림값 반환

    FLOOR(num) : 내림값 반환

    TRUNCATE(num, 자릿수) : 해당 숫자의 버림값 반환, 두번째 파라미터 필수

    ROUND(num, [자릿수]) : 반올림값 반환

    MOD(num1, num2) : num1 % num2

    POW(num1 num2) : num1^num2

    SQRT(num1) : squareroot num1

    RAND() : 0 ~ 1 실수 난수 반환

    SIGN(num) : 양수 → 1 0 → 0 음수 → -1 반환

  • 날짜/시간 처리 함수

    NOW(), SYSDATE(), LOCALTIME(), LOCALTIMESTAMP() : 연-월-일 시:분:초 반환

    CURDATE(), CURRENT_DATE() : 연-월-일 반환

    CURTIME(), CURRENT_TIME() : 시:분:초 반환

    ADDDATE(날짜, 일수): 해당 날짜로부터 해당 일수만큼 더해서 반환

    SUBDATE(날짜, 일수) : 해당 날짜로부터 해당 일수만큼 빼서 반환

    일수 대신 “INTERVAL N 단위[DAY MONTH YEAR]” 형식으로 작성 가능

    → 해당 단위의 N 날짜만큼 더하거나 뺀 날짜 반환

    ADDTIME, SUBTIME(날짜 및 시간, 시간) : 해당 날짜 및 시간 기준으로 더하거나 뺀 시간 반환

    DATEDIFF,TIMEDIFF(d1, d2) : d1 - d2 반환

    EXTRACT(UNIT FROM 날짜 및 시간) : 날짜 및 시간으로부터 UNIT에 해당하는 값 추출 및 반환

    UNIT_LIST

    • YEAR_MONTH

    • YEAR

    • MONTH

    • DAY

    • DAY_HOUR, HOUR

    • HOUR_MINUTE

    • MINUTE

    • SECOND

    • MICROSECOND

      DAYOFWEEK(날짜) : 요일 반환(1=일요일, ~ 7=토요일)

      DAYOFMONTH(날짜) : 해당 월 기준 흐른 날 반환

      DAYOFYEAR(day) : 년도 기준 흐른 날 반환

      MONTHNAME(day) : 달 이름 반환

      LASTDAY(day) : 해당 달 마지막 날짜 반환

      MAKEDATE(year, num) : year의 num만큼 지난 날짜 구해 반환

      PERIOD_ADD(yearmonth, monthnum) : 연월 + 개월수 이후 연월 구해 반환

      PERIOD_DIFF(yearmonth1. yearmonth2) : yearmonth1 - yearmonth2 개월수 반환

      DATE_FORMAT(날짜 및 시간, 형식)

      @@lc_time_names 환경변수, 수정을 위해서는 SET ~ = ‘’; 형태

  • 기타함수

    CAST(값 AS 데이터형식)

    CONVER(깂, 데이터형식)

    문자열로 : CHAR

    날짜 및 시간 : DATE, TIME, DATETIME

    숫자 : SIGNED INTEGER, DOUBLE, DECIMAL

    다중행 함수 - 여러 행들이 그룹으로 형성되어 적용 → 그룹당 1개 결과 반환

    IFNULL(val, altVal) : val = NULL → val = altVal

    ISNULL(val) : val = null → 1

    COALESCE(val1, val2, val3, ..) : NULL이 아닌 첫 요소 반환

'TIL' 카테고리의 다른 글

TIL 3/12 - 서브쿼리  (0) 2025.03.12
TIL 3/11 - 그룹함수, GROUPING, JOIN  (0) 2025.03.11
TIL 3/7 - DB  (0) 2025.03.07
TIL 3/6 - Network, AP I, 통신  (0) 2025.03.06
TIL 3/5 - Stream(filter, map, sorted,reduce, collect)  (1) 2025.03.05