SELECT 심화

이강용·6일 전

SQLD

목록 보기
8/12

단일행 함수(1)

단일행 함수의 특징

  • 행마다 하나의 결과를 반환하는 함수
  • SELECT·WHERE·ORDER BY 등에서 사용 가능
  • 함수 중첩이 가능
  • SUBSTR(UPPER('abcde'),2,3) -> 'BCD'

대소문자 변환

함수설명예시결과
UPPER문자열의 모든 영문자를 대문자로 변환UPPER('abcde')ABCDE
LOWER문자열의 모든 영문자를 소문자로 변환LOWER('ABCDE')abcde
INITCAP각 단어의 첫 글자는 대문자, 나머지는 소문자로 변환INITCAP('hello world')Hello World

--UPPER, LOWER, INITCAP 변환 결과 비교
SELECT UPPER('Sales Manager') AS 대문자,
LOWER('Sales Manager') AS 소문자,
INITCAP('sales manager') AS 첫글자대문자
FROM DUAL;

[결과]

대문자소문자첫글자대문자
SALES MANAGERsales managerSales Manager

문자열 길이·추출

함수설명예시결과
LENGTH문자열의 길이(문자 수)를 반환LENGTH('ABCDE')5
SUBSTR지정한 위치부터 원하는 길이만큼 문자열을 추출SUBSTR('ABCDE', 2, 3)BCD
INSTR문자열에서 검색 문자가 처음 등장하는 위치를 반환INSTR('ABCDE', 'C')3
INSTR문자열에서 검색 문자를 지정한 시작 위치부터 찾아, 지정한 발생 횟수의 위치를 반환INSTR('ABABAB', 'A', 2, 2)5

문자열 채우기·공백 제거

함수설명예시결과
LPAD문자열의 왼쪽을 지정한 길이만큼 특정 문자로 채움LPAD('ABC', 5, '0')00ABC
RPAD문자열의 오른쪽을 지정한 길이만큼 특정 문자로 채움RPAD('ABC', 5, '0')ABC00
LTRIM문자열 왼쪽의 공백을 제거LTRIM(' ABC')ABC
RTRIM문자열 오른쪽의 공백을 제거RTRIM('ABC ')ABC
TRIM문자열 양쪽의 공백을 제거TRIM(' ABC ')ABC
TRIM (제거할문자 FROM 문자열)문자열 양쪽에서 지정한 문자를 제거TRIM('A' FROM 'AAABCAAA')BC

NULL의 개념과 처리 방식

NULL의 정의와 특성

  • NULL은 값이 없거나 알 수 없는 상태를 의미
  • 0이나 공백 문자와는 다른 개념
  • NULL은 어떤 값과도 같다고도, 다르다고도 할 수 없음
  • NULL과의 비교 결과는 UNKNOWN이며 조건을 만족하지 않는 것으로 처리
  • NULL 여부는 IS NULL/IS NOT NULL로 확인
구분의미저장 여부
NULL값 자체가 없음(알 수 없음)값 없음
0숫자 0이라는 값이 존재함값 있음
''(공백)공백 문자라는 값이 존재함값 있음

NULL 연산 규칙

1) 산술 연산

  • NULL이 포함된 산술 연산 결과는 항상 NULL

2) 집계 함수와 NULL

  • COUNT(*)는 NULL 포함 모든 행을 센다
  • COUNT(컬럼)은 NULL이 아닌 값의 개수를 센다
  • SUM·AVG·MAX·MIN은 NULL을 제외하고 계산
  • AVG는 NULL 제외 합계를 NULL 제외 행 수로 나눔
profile
HW + SW = 1

0개의 댓글