Oracle SQL 기초 함수 정리

발라·2025년 7월 22일

서버 이해 첫걸음

목록 보기
7/11
post-thumbnail

오늘은 Oracle SQL에서 자주 쓰이는 문자 처리, 수치 계산, 날짜 연산 함수들을 알려드릴게요!


1. 대문자·소문자 변환 함수

SELECT
  FIRST_NAME,
  UPPER(FIRST_NAME) AS 대문자이름,
  EMAIL,
  LOWER(EMAIL)      AS 소문자이메일
FROM EMPLOYEES;
  • UPPER(col)
    문자열을 전부 대문자로 변환해줘요.
  • LOWER(col)
    문자열을 전부 소문자로 변환해줘요.

예시

  • StevenSTEVEN
  • JDOE@EX.COMjdoe@ex.com

2. 문자열 길이 구하기

-- 전체 이름 + 길이
SELECT
  FIRST_NAME,
  LENGTH(FIRST_NAME) AS 이름_길이
FROM EMPLOYEES;
  • LENGTH(col)
    문자열의 길이(문자 개수)를 반환해요.
-- 길이가 8인 이름만 뽑기
SELECT
  FIRST_NAME
FROM EMPLOYEES
WHERE LENGTH(FIRST_NAME) = 8;

3. 문자열 자르기 (SUBSTR)

SELECT
  JOB_ID,
  SUBSTR(JOB_ID, 1, 2) AS2글자,
  SUBSTR(JOB_ID, 4)    AS 4번째부터끝까지
FROM EMPLOYEES;
  • SUBSTR(col, 시작위치, 길이?)
    • SUBSTR(JOB_ID,1,2) : 1번째 문자부터 2글자
    • SUBSTR(JOB_ID,4) : 4번째 문자부터 끝까지

4. 문자열 치환 (REPLACE)

SELECT
  HIRE_DATE,
  REPLACE(HIRE_DATE, '/', '-') AS 날짜_하이픈변환
FROM EMPLOYEES;
  • REPLACE(col, '찾을문자', '바꿀문자')
    문자열 내 모든 ‘찾을문자’를 ‘바꿀문자’로 바꿔줘요.

주의: 인자가 3개여야 에러 안 남 (>_<)


5. 문자열 연결 (CONCAT & ||)

-- CONCAT 함수
SELECT
  CONCAT('입사일은 ', HIRE_DATE) AS 자기소개
FROM EMPLOYEES;

-- || 연산자
SELECT
  '입사일은 ' || HIRE_DATE || '입니다.' AS 자기소개
FROM EMPLOYEES;
  • CONCAT(a, b) : a와 b를 이어 붙여
  • a || b : Oracle 고유 방식

6. 수치 계산 함수

SELECT
  MOD(10, 2)    AS 나머지1,   -- 0
  MOD( 9, 2)    AS 나머지2,   -- 1
  ROUND(15.65)  AS 반올림정수,  -- 16
  ROUND(15.65,1)AS 반올림소수1, -- 15.7
  TRUNC(15.65)  AS 버림정수,    -- 15
  TRUNC(15.65,1)AS 버림소수1    -- 15.6
FROM DUAL;
  • MOD(x, y) : x를 y로 나눈 나머지
  • ROUND(n, d?): n을 d자리까지 반올림 (d 미지정 시 정수)
  • TRUNC(n, d?): n을 d자리까지 버림

7. 날짜·시간 함수

7‑1. SYSDATE(현재 날짜/시간)

SELECT SYSDATE FROM DUAL;

7‑2. 날짜 더하기

SELECT
  SYSDATE             AS 지금,
  SYSDATE + 1         AS 하루_뒤,      -- 1일 = 1
  SYSDATE + 1/24      AS 한시간_뒤,    -- 1시간 = 1/24일
  SYSDATE + 1/24/60   AS 일분_뒤,      -- 1분 = 1/(24*60)일
  SYSDATE + 1/24/60/60 AS 일초_뒤      -- 1초 = 1/(24*60*60)일
FROM DUAL;

7‑3. 한 달 더하기/빼기

SELECT
  SYSDATE                        AS 지금,
  ADD_MONTHS(SYSDATE,  1)        AS 한달_뒤,
  ADD_MONTHS(SYSDATE, -1)        AS 한달_전
FROM DUAL;
  • 날짜 연산 시에는 일(day) 단위로 계산되어요.
  • 한 달 단위는 ADD_MONTHS() 써~

마무리

위 함수들만 잘 응용해도 문자열, 수치, 날짜 처리할 때 훨씬 편해질 거에요!


작성일:2025.07.22
작성자:발라

profile
능숙한 바이브코딩을 할 수 있게 됨을 꿈꾸며

0개의 댓글