SQL - 문자형 함수, 숫자형 함수, 날짜형 함수, 형변환 함수

2023. 3. 10. 12:52SQLD 정리

반응형

문자형 함수
LOWER(문자열) >>> 영어 문자열 소문자로 변환 
LOWER('SQL') ==> 'sql'
 
UPPER(문자열) >>> 영어 문자열 대문로 변환
UPPER('sql') ==> 'SQL'
 
CONCAT(문자열1, 문자열2) >>> 문자열1과 문자열2를 결합
CONCAT('호', '잇') ==> '호잇'
 
SUBSTR(문자열, M, N) >>> 문자열의 M번째 자리부터 N개를 자른다.
SUBSTR('SUBWAY', 3, 2) ==> 'BW'
 
LENGTH(문자열), LEN(문자열) >>> 공백을 포함하여 문자열의 길이값
LEN('1 2 3') ==> 5
 
TRIM(문자열, 제거대상) >>> 왼쪽과 오른쪽에 지정된 문자를 삭제한다, 제거대상을 지정하지 않으면 공백을 제거한다.
TRIM('QQQQWERQQQQ', 'Q') ==> 'WER'
TRIM('      123     ', ) ==> '123'
 
LTRIM(문자열, 제거대상) >>> 왼쪽에 지정된 문자를 삭제한다, 제거대상을 지정하지 않으면 공백을 제거한다.
LTRIM('QQQQWERQQQQ', 'Q') ==> 'WERQQQQ'
LTRIM('      123     ', ) ==> '123     '
 
RTRIM(문자열, 제거대상) >>> 오른쪽에 지정된 문자를 삭제한다, 제거대상을 지정하지 않으면 공백을 제거한다.
RTRIM('QQQQWERQQQQ', 'Q') ==> 'QQQQWER'
RTRIM('      123     ', ) ==> '      123'
 
숫자형 함수
ROUNT(숫자, 소수점 자릿수) >>> 반올림해서 소수점 몇자리까지 나타낼지
ROUND(999.123456, 4) ==> 999.1235
 
TRUNC(숫자, 소수점 자릿수) >>> 버림해서 소수점 몇자리까지 나타낼지
TRUNC(999.123456, 4) ==> 999.1234
 
CEIL(숫자) >>> 크기가 같은 최소 정수 반환
CEIL(2.5) ==> 3
 
FLOOR(숫자) >>> 적거나 같은 최대 정수 반환
FLOOR(2.5) ==> 2
 
MOD(숫자1, 숫자2) >>> 숫자1을 숫자2로  나눈 나머지 반환
MOD(5, 4) ==> 1
 
SIGN(숫자) >>> 숫자가 양수면 1, 0 이면 0, 음수면 -1 반환
SIGN(-323) ==> -1
 
ABS(숫자) >>> 절댓값
ABS( -1234 ) ==> 1234
 
날짜형 함수
SYSDATE >>> 쿼리를 돌리는 현재 날짜와 시간 출력
 
EXTRACT(정보 FROM 날짜) >>>날짜형 데이터에서 원하는 값을 추출함
정보에는 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 가 있다.
EXTACT(YEAR FROM sysdate) ==> 2023
참고) 위의 예시는 TO_NUMBER(TO_CHAR(sysdate, 'YYYY'))와 같다.
 
형변환 함수
TO_NUMBER(문자열) >>> 문자열을 숫자로 변환
TO_NUMBER('2023') ==> 2023
 
TO_CHAR(숫자 또는 날짜, 포맷) >>> 숫자 또는 날짜형 데이터를 포맷에 맞게 문자로 바꿈
TO_CHAR( date '2023-03-10' , 'day') >>> 금요일
 
TO_DATE(문자열, 포맷) >>> 문자열을 포맷에 맞는 날짜로 변환
TO_DATE('20230310' , 'YYYYMMDD') ==> 2023/03/10
 
참고) 명시적 형변환, 암시적 형변환
명시적 형변환 : 형변환 함수를 사용하여 강제로 데이터 타입을 변경
암시적 형변환 : 데이터베이스가 알아서 형 변환 해줌
EX)
SELECT * FROM PRODUCT WHERE SERIAL_NUMBER = '1232323'
위의 SQL문에서 PRODUCT 테이블의 SERIAL_NUMBER  컬럼이 NUMBER 타입인데 '1232323'로 조건문을 적으면 암시적으로 형변환 한다.
만약 인덱스에 대해서 암시적 형변환이 일어나면 인덱스를 사용할 수 없다.
인덱스 : 빠른 조회를 돕는 책의 목차와 같은 기능을 한다. 데이터는 인데스를 기준으로 자동정렬 한다. 
 
어제 날짜를 출력하는 SELECT 문
SELECT TO_CHAR(SYSDATE -1, 'YYYYMMDD') FROM DUAL;
참고) DUAL - 듀얼 테이블은 오라클에 존재하는 기본 테이블, 하나의 열로만 이루어져 있음
 

반응형