일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- CASE중첩
- 단일 행 서브 쿼리
- SQL문자형함수
- SQL내장함수
- SQL개발자
- nvl
- null
- SQL연산자
- 데이터모델링
- 3개월 완독 챌린지
- sqlp
- SQL기본
- sql전문가
- sql
- Simple Case Expression
- 연관 서브 쿼리
- Britcent 3개월 완독 챌린지
- AVG
- Cloud ERP
- Group Functions
- SQL숫자형 함수
- SQLD
- Searched Case Expression
- SUM
- Window Functions
- SQL Grouping Functions
- Aggregation Function
- Where
- 다중 열 서브 쿼리
- Atomic Habit
Archives
- Today
- Total
슴슴한 IT
[SQLD,SQLP]SQL기본 - 내장함수,문자형 함수 본문
728x90
내장 함수 분류
함수는 벤더에서 제공하는 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)으로 나눌 수 있으며, 다시 내장 함수는 함수 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Function)으로 나눌 수 있다. 다중행 함수는 다시 집계함수(Aggregate Function), 그룹 함수(Group Function), 윈도우 함수(Window Function)으로 나눌 수 있다.
단행행 함수의 종류
종류 | 내용 | 함수 예 | |||
문자형 함수 | 문자를 입력할 경우 문자나 숫자 값을 반환 | LOWER, UPPER, ASCII, CHR/CHAR, CONCAT, SUBSTR/SUBSTRING, LENGTH/LEN, LTRIM, RTRIM, TRIM |
|||
숫자형 함수 | 숫자를 입력하면 숫자 값을 반환 | ABS, SIGN, MOD, CEIL/CEILING, FLOOR, ROUND, TRUNC, SIN, COS, TAN, EXP, PWOER, SQRT, LOG, LN |
|||
날짜형 함수 | DATE 타입의 값을 연산 | SYSDATE/GETDATE, EXTRACT/DATEPART, TO_NUMBER | |||
변환형 함수 | 문자, 숫자, 날짜형 값의 데이터 타입을 변환 | CAST, TO_NUMBER, TO_CHAR, TO_DATE / CAST, CONERT |
|||
NULL 함수 | NULL을 처리하기 위함 함수 | NVL/ISNULL, NULLIF, COALESCE |
단일행 함수의 특징
- SELECT, WHERE, ORDER BY 절에 사용 가능
- 각 행들에 대해 개별적으로 작용해 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴
- 여러 인자를 입력해도 단 하나의 결과만 리턴
- 함수의 인자로 상수·변수·표현식이 사용 가능하고, 여러 개의 인수를 가질 수 있음
- 함수의 인자로 함수를 사용하는 함수의 중첩이 가능함
※ Oracle / SQL Server 의 함수를 구분해서 표시, '/' 가 없는 경우 공통 함수, 출처 : 한국데이터산업진흥원
문자형 함수
문자열 데이터를 처리하고 조작하는데 사용되는 함수, 데이터를 변환하거나 검색, 결합하는 등 문자 데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려줌
CONCAT(str1, str2, ...) : 두 개 이상의 문자열을 결합
SELECT CONCAT('Hello', ' ', 'World') AS result;
-- 결과: 'Hello World'
SUBSTRING(str, start, length) : 문자열의 일부를 추출
SELECT SUBSTRING('Data Modeling', 6, 7) AS result;
-- 결과: 'Modelin'
UPPER(str) : 문자열을 모두 대분자로 변환
SELECT UPPER('hello') AS result;
-- 결과: 'HELLO'
LOWER(str) : 문자열을 모두 소문자로 변환
SELECT LOWER('WORLD') AS result;
-- 결과: 'world'
LENGTH(str) : 문자열의 길이를 계산
SELECT LENGTH('Database') AS result;
-- 결과: 8
TRIM([leading | trailing | both] characters FROM str) : 문자열이나 뒤의 공백을 제거
SELECT TRIM(' Hello ') AS result;
-- 결과: 'Hello'
SELECT TRIM('o' from 'Hello') AS result;
-- 결과: 'Hell'
REPLACE(str, from_str, to_str) : 문자열에서 특정 부분 문자열을 다른 문자열로 대체
SELECT REPLACE('Hello, World!', 'World', 'SQL') AS result;
-- 결과: 'Hello, SQL!'
LEFT(str, length) : 문자열의 오니쪽에서 지정한 길이만큼 문자를 추출, 카운팅은 1부터 시작
SELECT LEFT('Data Modeling', 4) AS result;
-- 결과: 'Data'
RIGHT(str, length) : 문자열의 오른쪽에서 지정한 길이만큼 문자를 추출, 카운팅은 1부터 시작
SELECT RIGHT('Data Modeling', 8) AS result;
-- 결과: 'Modeling'
함수의 중첩 사용
select substring(trim( 'o' from 'Hello' ), 1, 2 ) as result;
-- 결과 : 'He'
※ Oracle에서는 FROM절과 DUAL 테이블을 반드시 명시해야 하고, Sybase나 SQL Server는 SELECT 절만으로 SQL문장 수행이 가능하다, 단 컬럼을 사용할 때는 Sybase, SQL Server도 FROM절을 명시해야 한다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
'SQL' 카테고리의 다른 글
[SQLD,SQLP]SQL기본 - 날짜형 함수 (0) | 2023.07.25 |
---|---|
[SQLD,SQLP]SQL기본 - 숫자형 함수 (0) | 2023.07.23 |
[SQLD,SQLP]SQL기본 - 합성연산자 (0) | 2023.07.23 |
[SQLD,SQLP]SQL기본 - 산술연산자 (0) | 2023.07.23 |
[SQLD,SQLP]SQL기본 - SELECT문 (0) | 2023.07.21 |