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개 )
문자 처리 함수
ASCII(문자)
: 문자의 아스키 코드값 반환CHAR(숫자)
: 아스키 코드 숫자의 문자 반환LENGTH(문자열)
: 문자열 할당 바이트 크기 반환BIT_LENGTH(문자열)
: 문자열 할당 비트 크기 반환 == LENGTH * 8CHAR_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(문자열, 길이)
: 해당 문자열 왼쪽에서부터 substrRIGHT(문자열, 길이)
: 해당 문자열 오른쪽에서부터 substrUPPER(문자열)
: 문자열 대문자로 변경 후 반환LOWER(문자열)
: 문자열 소문자로 변경 후 반환LPAD:RPAD(기준문자열, 길이, 채울문자열)
: 기준 문자열에 좌 혹은 우측에 채울 문자열을 넣어 길이만큼 만들어 반환LTRIM, RTRIM, TRIM(문자열)
: 문자열의 공백 제거 반환TRIM(BOTH, LEADING, TRAILING ‘추출문자열’ FROM ‘원본문자열’)
REPEAT(문자열, 반복수)
: 반복 수 만큼 문자열 합침SPACE(길이)
: 해당 길이만큼 공백 문자열 반환REVERSE(문자열)
: 문자열 순서 뒤집어 반환SUBSTRING(문자열, 시작 위치, 길이)
: 문자열의 시작위치에섭터 길이만큼 반환 == SUBSTRSUBSTRING_INDEX(문자열, 구분자, 구분자 순서)
: 해당 문자열 구분자까지의 위치 반환(varchar 리턴)
숫자 처리 함수
ABS(num)
: 절대값 반환CEILING(num)
: 올림값 반환FLOOR(num)
: 내림값 반환TRUNCATE(num, 자릿수)
: 해당 숫자의 버림값 반환, 두번째 파라미터 필수ROUND(num, [자릿수])
: 반올림값 반환MOD(num1, num2)
: num1 % num2POW(num1 num2)
: num1^num2SQRT(num1)
: squareroot num1RAND()
: 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 = altValISNULL(val)
: val = null → 1COALESCE(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 |