일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 해운대
- sqlp
- 영월카페
- 조인
- 수원
- 남원맛집
- 부산카페
- 데이터모델링의이해
- 삼겹살
- 코트야드메리어트호텔 서울판교
- SQL가이드
- sql 전문가 가이드
- 단일행함수
- 안양
- 부산여행
- SQL전문가가이드
- 의왕맛집
- SQLD
- 부산숙소
- 속초
- 부산
- 속초카페
- join
- 영월여행
- 부산맛집
- 의왕
- 속초여행
- sql
- 남원여행
- 신멘
- Today
- Total
지지 On Air
2-1-3. 함수(1) 본문
에고 ㅠㅠ 요즘 회사일이 너무 바빠서 포스팅이 좀 늦었습니다 ㅠㅠㅠ
이번 절에서는 쿼리문 작성하실때 꼭 필요한 '함수' 부분 입니다!
그룹함수와 윈도우함수는 2장에서 다룰예정으로, 우선 이번 절 에서는 단일행 함수에 대해서만 설명합니다.
과목 II. SQL 기본과 활용
- 제1장 SQL 기본
> 제3절 함수
1. 내장 함수 개요
함수는 다양한 기준으로 분류할 수 있는데, 벤터에서 제공하는 함수인 내장함수와 사용자가 정의할 수 있는 함수로 나뉠 수 있다.
내장함수는 다시 함수 입력 값이 단일행 값이 입력되는 단일행 함수와 여러 행의 값이 입력되는 다중행 함수로 나눌 수 있다.
다중행 함수는 다시 집계함수, 그룹함수, 윈도우함수로 나눌 수 있다.
단일행 함수는 처리하는 데이터의 형식에 따라서 문자형, 숫자형, 날짜형, 변환형, NULL 관련 함수로 나눌 수 있다.
본 절에서는 Oracle과 SQL Server에서 공통으로 사용하는 중요 함수 위주로 설명한다.
종류 | 내용 | 함수 |
문자형 함수 | 문자를 입력하면 문자나 숫자 값을 반환 | LOWER, UPPER, ASCII, CHR/CHAR, CONCAT, SUBSTR/SUBSTRING, SENGTH/LEN, LTRIM, RTRIM, TRIM |
숫자형 함수 | 숫자를 입력하면 숫자 값 반환 | ABS, SIGN, MOD, CEIL/CEILING, FLOOR, ROUND, TRUNC, SIN, COS, TAN, EXP, POWER, SQRT, LOG, LN |
날짜형 함수 | DATE 타입의 값을 연산 | SYSDATE/GETDATE, EXTRACT/DATEPART, TO_NUMBER(TO_CHAR(d,'YYYY'|'MM'|'DD'))/YEAR|MONTH|DAY |
변환형 함수 | 문자,숫자,날짜형 값의 데이터타입 변환 | (CAST, TO_NUMBER, TO_CHAR, TO_DATE)/(CAST,CONVERT) |
NULL 관련 함수 | NULL 처리를 위한 함수 | NVL/ISNULL, NULLIF, COALESCE |
* '/' 표시가 있는것은 Oracle함수/SQL Server함수 이다.
단일행 함수의 중요한 특징은 다음과 같다.
- SELECT, WHERE, ORDER BY 절에 사용 가능하다.
- 각 행들에 대해 개별적으로 작용해 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한다.
- 여러 인자를 입력해도 단 하나의 결과만 리턴한다.
함수도 인자로 상수,변수,표현식이 사용 가능하고, 하나의 인수를 가지는 경우도 있지만 여러 개의 인수를 가질 수도 있다.
- 특별한 경우가 아니면 함수의 인자로 함수를 사용하는 함수의 중첩이 가능하다.
2. 문자형 함수
문자형 함수는 위에서도 설명했듯, 문자 테이더를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수이다. 몇몇 문자형 함수는 결과를 숫자로 리턴하기도 한다.
문자형 함수 | 설명 |
LOWER(문자열) | 알파벳 문자를 소문자로 바꾼다. |
UPPER(문자열) | 알파벳 문자를 대문자로 바꾼다. |
ASCII(문자) | 문자나 숫자를 ASCII 코드 번호로 바꾼다. |
CHR/CHAR(ASCII번호) | ASCII 코드 번호를 문자나 숫자로 바꾼다. |
CONCAT(문자열1,문자열2) | 문자열1과 문자열2를 연결한다. 합성연산자 '||'(Oracle)나 '+'(SQL Server)와 동일하다. |
SUBSTR/SUBSTRING(문자열,M[,n]) | 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 돌려준다. n이 생략되면 마지막 문자까지이다. |
LENGTH/LEN(문자열) | 문자열의 개수를 숫자값으로 돌려준다. |
LTRIM(문자열 [,지정문자])/LTRIM(문자열) | 문자열의 첫 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거한다. (지정문자가 생략되면 공백값이 디폴트) SQL Server에서 LTRIM 함수에 지정문자 사용 불가. 공백만 제거할 수 있다. |
RTRIM(문자열 [,지정문자])/RTRIM(문자열) | 문자열의 마지막 문자부터 확인해서 지정 문자가 나타나는 동안 해당 문자를 제거한다. (지정 문자가 생략되면 공백값이 디폴트) SQL Server에서 RTRIM 함수에 지정문자 사용 불가. 공백만 제거할 수 있다. |
TRIM([leading|trailing|both] 지정문자 FROM 문자열) / TRIM (지정문자 FROM 문자열) | 문자열에서 머리말, 꼬리말 또는 양쪽에 있는 지정 문자를 제거한다. (leading|trailing|both가 생략되면 both가 디폴트) SQL Server에서는 TRIM함수에 leading|trailing|both 사용할 수 없다. 즉 양쪽에 있는 지정문자만 제거할 수 있다. |
문자열 함수들의 예제는 다음과 같다.
SQL문에서는 다음과 같이 사용하면 된다.
SELECT PLAYER_NAME + ' 선수' AS 선수명
FROM PLAYER;
실행결과
선수명 |
박주호 선수 |
이승우 선수 |
기성용 선수 |
이기혁 선수 |
... |
3. 숫자형 함수
숫자형 함수는 숫자 데이터를 입력받아 처리하고 숫자를 리턴한다.
숫자형 함수 | 함수 설명 |
ABS(숫자) | 숫자의 절댓값을 리턴 |
SIGN(숫자) | 숫자가 양수인지, 음수인지, 0인지를 구별한다 |
MOD(숫자1, 숫자2) | 숫자1을 숫자2로 나누어 나머지 값을 리턴. MOD함수는 %연산자로도 대체 가능 |
CEIL/CEILING(숫자) | 숫자보다 크거나 같은 최소 정수를 리턴 |
FLOOR(숫자) | 숫자보다 작거나 같은 최대 정수를 리턴 |
ROUND(숫자 [, m ]) | 숫자를 소수점 m자리에서 반올림해 리턴한다. m이 생략되면 디폴트 값은 0이다. |
TRUNC(숫자 [, m]) | 숫자를 소수 m자리에서 잘라서 버린다. m이 생략되면 디폴트 값은 0이다. SQL Server에서는 제공되지 않는 함수다. |
SIN, COS, TAN, ... | 숫자의 삼각함수 값을 리턴한다. |
EXP(숫자) | 숫자의 지수 값을 리턴 한다. |
POWER(숫자1, 숫자2) | 숫자의 거듭제곱 값을 리턴한다. |
SQRT(숫자) | 숫자의 제곱근(=√숫자) 값을 리턴한다. |
LOG(숫자1, 숫자2) / LOG(숫자2, 숫자1) | 숫자1을 밑수로 하는 숫자2의 로그값(LOG숫자1숫자2)을 리턴한다. SQL Server에서는 숫자2를 밑수로 하는 숫자1의 로그값을 리턴한다. |
LN(숫자) | 숫자의 자연 로그 값(=LOGe숫자)을 리턴한다. SQL Server에서는 제공되지 않는 함수다. |
숫자형 함수들의 예제는 다음과 같다.
한 포스팅으로 함수를 끝내고 싶었는데 표도 그림도 많고 내용이 많아서 (1) (2) 로 나누게되었습니다 ㅠㅠ
다음 포스팅에서 함수에 대한 내용 마무리 하겠습니다 :)
하트와 구독, 댓글은 큰 힘이 됩니다 💕
본 포스팅은 '한국데이터산업진흥원' 에서 발행한 'SQL 전문가 가이드' 를 참고/인용 하였음을 밝힙니다.
'개발 > SQL [SQLD&SQLP]' 카테고리의 다른 글
2-1-4. WHERE절 (12) | 2022.07.23 |
---|---|
2-1-3. 함수(2) (2) | 2022.07.22 |
2-1-2. SELECT문 (6) | 2022.07.18 |
2-1-1. 관계형 데이터베이스 개요 [ SQLD / SQLP / SQL 전문가 가이드 ] (6) | 2022.07.17 |
1-2-5. 본질식별자 vs 인조식별자 [ SQLD / SQLP / SQL 가이드 ] (8) | 2022.07.16 |