Database/MS-SQL

내장 함수

ㅈㅣ니 2024. 8. 15.

 

 

 

이번에는 SQL의 내장함수에 대해 알아보는 시간을 가져볼 것입니다.

 

수학에서 함수 y = f(x) 는 값 x를 함수 f에 넣으면 y값을 결과로 반환한다는 의미입니다.

SQL 에서도 수학의 함수처럼 특정 값이나 열의 값을 입력받아 그 값을 계산하여 결과 값을 돌려주는 개념을 사용합니다.

SQL 에서 사용하는 함수에는 DBMS가 제공하는 내장 함수와 사용자가 직접 만든 사용자 정의 함수가 있습니다.

 

SQL 내장 함수는 다음과 같이 SELECT 절, WHERE 절, UPDATE 절 등에서 모두 사용할 수 있습니다.

SELECT 함수명(인자1,인자2,인자3,...)
FROM 테이블이름
WHERE 열이름 = 함수명(인자1,인자2,인자3,...);

 

UPDATE 테이블이름
SET 열이름 = 함수명(인자1,인자2,인자3,...);

 

 

내장 함수의 종류로는

 

[ 숫자 함수, 문자열 함수, 날짜 및 시간 함수, 변환 함수, 커서 함수, 보안 함수, 시스템 함수, 텍스트와 이미지 함수 ]

가 있습니다.

 

숫자 함수

 

이 중에서 사용 빈도가 높은 것은 ABS 함수와 ROUND 함수입니다.

 

ABS 함수

-> 절댓값 구하는 함수

 

→ 위의 이미지를 보면 FROM 절이 없는데, SQL SERVER 에서는 FROM 절이 생략될 경우

내부적으로 가상 테이블이 존재하는 것이라고 간주하고 실행하는 것이라 실행되는 것입니다.

 

(Oracle 의 경우 FROMm 절의 생략이 허용되지 않기 때문에 dual이라는 가상 테이블을 FROM 절에 지정해줘야합니다.)

 

 

 

ROUND 함수

→ 반올림한 값을 구하는 함수

 

 

 

 

예시) 고객별 평균 주문금액을 백원 단위로 반올림한 값을 구하시오.

 

SELECT custid "고객번호", ROUND(SUM(saleprice)/COUNT(*), -2) "평균금액"
FROM Orders
GROUP BY custid

 

 

 

 

 

문자열 함수

문자열 함수는 주로 CHAR나 VARCHAR의 데이터형을 대상으로 단일 문자나 문자열을 가공한 결과를 반환합니다.

 

 

REPLACE 함수

 

예시)

야구가 포함된 도서를 농구로 변경한 도서 목록 출력

SELECT bookid,REPLACE(bookname, '야구', '농구') bookname, publisher, price 
FROM Book;

 

 

 

 

LEN 함수

예시)

'굿스포츠'에서 출판한 도서의 제목과 제목의 길이 출력

SELECT bookname as "제목", LEN(bookname) as "길이"
FROM Book
WHERE publisher = '굿스포츠';

 

 

SUBSTRING 함수

예시)

서점의 고객 중에서 같은 성을 가진 사람이 몇 명인지 성별 인원수 파악

SELECT SUBSTRING(name, 1, 1) as "성", COUNT (*) "인원"
FROM Customer
GROUP BY SUBSTRING(name, 1, 1);

 

 

 

 

 

 

 

 

 

 

반응형

'Database > MS-SQL' 카테고리의 다른 글

부속 질의 ( 서브 쿼리 )  (1) 2024.09.02
내장함수 (2) | Null 함수  (0) 2024.08.26
[MS-SQL] 인덱스 (INDEX)란?  (4) 2024.08.12
[SQL] WHERE 절의 IN 연산자  (0) 2024.08.01
정규화 (Normalization) 란?  (0) 2024.08.01