4/03 sql 개념 정리 5교시

easyjw·2025년 4월 3일

함수: 함수로 데이터를 쉽게 가공하기

> 함수 function

함수란 사용자가 입력 값 X를 넣으면 정해 놓은 출력 값 Y가 나오는 개념입니다.

자판기를 생각하면 됩니다. 동전을 넣고(X) 자판기(함수)를 거치면 물건(Y)이 나오는 것과 유사한 개념입니다.

  • 미리 정의 된 기능을 그때 그때 쓴다
  • 미리 정의된 기능을 통해 데이터를 좀 더 편리하게 조작할 수 있도록 도와줍니다

함수를 사용하는 목적

  • 데이터 값을 계산하거나 조작합니다(단일 행 함수).

  • 행의 그룹에 대해 계산하거나 요약합니다(그룹 함수).

  • 열의 데이터 타입을 변환합니다. 즉, 날짜와 숫자 등 데이터 타입을 상호 변환합니다.

함수 - 단일 행 함수 & 그룹함수

함수에는 단일 행 함수그룹 함수가 있는데 차이점은 다음과 같습니다.

단일 행 함수 - 한 번에 하나의 데이터를 처리하는 함수입니다.

그룹 함수 - 여러 건의 데이터를 동시에 처리하여 해당 그룹에 해당하는 결과를 반환합니다.

단일 행 함수 : 데이터 값을 하나씩 계산하고 조작하기

컬럼명데이터 타입설명
post_idNUMBER(10)게시글 ID (Primary Key, Unique Key)
titleVARCHAR2(200)게시글 제목 (최대 200자)
contentVARCHAR2(4000)게시글 내용 (최대 4000자)
authorVARCHAR2(50)작성자 (최대 50자)
created_atDATE작성일시
updated_atDATE수정일시
view_countNUMBER(10)조회수
categoryVARCHAR2(50)카테고리 (선택 사항, 최대 50자)
tagsVARCHAR2(200)태그 (선택 사항, 쉼표 등으로 구분, 최대 200자)

설명:

  • post_id: 각 게시글을 고유하게 식별하는 ID입니다. NUMBER 타입으로 지정하고, Primary Key 또는 Unique Key로 설정하여 중복을 방지합니다.
  • title: 게시글 제목입니다. VARCHAR2 타입을 사용하여 가변 길이 문자열을 저장합니다.
  • content: 게시글 내용입니다. VARCHAR2 타입을 사용하여 가변 길이 문자열을 저장합니다. 4000자 제한이 있지만, 더 긴 내용을 저장해야 한다면 CLOB 타입을 고려해볼 수 있습니다.
  • author: 게시글 작성자입니다. VARCHAR2 타입을 사용하여 가변 길이 문자열을 저장합니다.
  • created_at: 게시글 작성일시입니다. DATE 타입을 사용하여 날짜와 시간을 저장합니다.
  • updated_at: 게시글 수정일시입니다. DATE 타입을 사용하여 날짜와 시간을 저장합니다.
  • view_count: 게시글 조회수입니다. NUMBER 타입을 사용하여 숫자 데이터를 저장합니다.
  • category: 게시글 카테고리입니다. VARCHAR2 타입을 사용하여 가변 길이 문자열을 저장합니다.
  • tags: 게시글 태그입니다. VARCHAR2 타입을 사용하여 가변 길이 문자열을 저장합니다. 쉼표 등으로 구분하여 여러 개의 태그를 저장할 수 있습니다.

단일 행 함수의 종류

종류설명
문자 타입 함수문자를 입력받아 문자와 숫자를 반환한다.
숫자 타입 함수숫자를 입력받아 숫자를 반환한다.
날짜 타입 함수날짜에 대해 연산한다. 숫자를 반환하는 MONTHS_BETWEEN 함수를 제외한 모든 날짜 타입 함수는 날짜 값을 반환한다.
변환 타입 함수임의의 데이터 타입의 값을 다른 데이터 타입으로 변환한다.
일반 함수그 외 NVL, DECODE, CASE WHEN, 순위 함수 등

단일 행 함수의 특징

  • 각 행에 대해 수행합니다.

  • 데이터 타입에 맞는 함수를 사용해야 합니다.

  • 행별로 하나의 결과를 반환합니다.

  • SELECT, WHERE, ORDER BY 절 등에서 사용할 수 있습니다.

  • 함수 속의 함수처럼 중첩해서 사용할 수 있습니다.

  • 중첩해서 사용할 경우 가장 안쪽(하위) 단계에서 바깥쪽(상위) 단계순으로 진행합니다.

문자 타입 함수

문자 타입 함수는 주로 데이터 조작에 쓰이며 종류는 다음과 같습니다. 문자나 문자열 데이터는 작은따옴표(‘ ’)로 묶어서 문자 타입으로 표현합니다.

문자 함수의 종류

함수설명결과
LOWER값을 소문자로 변환한다.LOWER('ABCD')abcd
UPPER값을 대문자로 변환한다.UPPER('abcd')ABCD
INITCAP첫 번째 글자만 대문자로 변환한다.INITCAP('abcd')Abcd
SUBSTR문자열 중 일부분을 선택한다.SUBSTR('ABC', 1, 2)AB
REPLACE특정 문자열을 찾아 바꾼다. 예를 들어 A를 찾아 E로 바꾼다.REPLACE('AB', 'A', 'E')EB
CONCAT두 문자열을 연결한다 (연산자와 같다).
LENGTH문자열의 길이를 구한다.LENGTH('AB')2
INSTR명명된 문자의 위치를 구한다.INSTR('ABCD', 'D')4
LPAD왼쪽부터 특정 문자로 자리를 채운다.LPAD('ABCD', 6, '*')**ABCD
RPAD오른쪽부터 특정 문자로 자리를 채운다.RPAD('ABCD', 6, '*')ABCD**
LTRIM주어진 문자열의 왼쪽 문자를 지운다.LTRIM('ABCD', 'AB')CD
RTRIM주어진 문자열의 오른쪽 문자를 지운다.RTRIM('ABCD', 'CD')AB

0개의 댓글