7장(함수)

2023. 4. 27. 15:59개발/데이터베이스

함수가 무엇인지, DBMS 어떤 유형의 함수를 제공하는지 그리고 함수들을 어떻게 사용하는지에 대해 알아보자

 

함수로 인해 발생하는 문제

 

예제를 실습하기 전에 SQL 함수는 문제의 소지가 많다는 것을 인지해야 한다. 대부분의 DBMS에서 지원하는 기능은 대체로 같지만

함수 이름이나 문법은 DBMS마다 매우 다르다.

 

[오라클 기준]

문자열 일부 추출하기: SUBSTR()

데이터형 변환하기: 오라클은 변환 타입마다 사용하는 함수가 다르다.

현재 날짜 가져오기: SYSDATE

 

SQL구문과 달리 SQL 함수는 호환이 불가능하다.

 

호환: 작성된 코드가 다양한 환경에서 동작하는

 

 

문자 조작 함수

 

 

UPPER()는 문자를 모두 대문자로 변환한다.

 

 

자주 사용되는 문자 조작 함수

 

LEFT() : 문자열 왼쪽에서부터 문자열 일부를 추출

LENGTH() : 문자열 길이를 반환

LOWER() : 문자열을 소문자로 반환

LTRIM() : 문자열의 왼쪽에 있는 공백 문자를 삭제

RIGHT() : 문자열 오른쪽에서부터 문자열 일부를 추출

RTRIM() : 문자열 오른쪽에 있는 공백 문자를 삭제

SOUNDEX() : 문자열의 SOUNDEX 값을 반환

UPPER() : 문자열을 대문자로 변환

 

SOUNDEX는 문자를 소리 나는 대로 표현하는 문자열 반환 알고리즘이다. 어떤 문자가 입력되었는지 보단 어떻게 발음되는지를 비교하여 비슷한 소리를 내는 음절로 변환한다. SOUNDEX가 SQL의 개념은 아니지만 대부분은 DBMS에서 지원한다.

 

 

 

WHERE절에서 cust_contact 컬럼과 찾으려는 문자열을 모두 SOUNDEX() 함수를 사용해 반환하였다.

 

 

날짜와 시간 조작함수

 

보통 애플리케이션에 저장된 날짜와 시간 데이터 자체는 의미가 없으므로 날짜 또는 시간을 읽거나 조작하기 위해서는 날짜와 시간 함수가 필요하다. 때문에 날짜와 시간 조작 함수는 SQL 언어에서도 매우 중요한 기능을 차지하지만, 불행히도 함수는 일관성이 매우 적고, 호환이 거의 되지 않는다.

 

to_char 날짜의 일부분을 추출하기 위해 사용되었고, to_number() 추출한 데이터를 숫자로 변환하여 2012 비교하기 위해 사용되었다.

 

 

BETWEEN 연산자를 사용하는 방법도 있다.

 

 

 

숫자 조작 함수

 

그대로 숫자 데이터를 조작한다. 함수는 대수학, 삼각법, 또는 기하학 계산에 주로 사용되므로, 문자나 숫자, 날짜 조작 함수처럼 자주 사용되지는 않는다.

 

ABS(): 숫자의 절대값을 반환한다

COS(): 숫자의 코사인 값을 반환한다

EXP(): 숫자의 지수 값을 반환한다

PI(): 숫자의 파이 값을 반환한다

SIN(): 숫자의 사인 값을 반환한다

SQRT(): 숫자의 제곱근 값을 반환한다

TAN(): 숫자의 탄젠트 값을 반환한다

'개발 > 데이터베이스' 카테고리의 다른 글

9장(데이터 그룹핑)  (0) 2023.05.01
8장(그룹 함수 사용하기)  (0) 2023.04.29
6장(계산 필드 생성하기)  (0) 2023.04.10
5장(Like 연산자 사용하기)  (0) 2023.04.04
4장(WHERE절 조합하기)  (0) 2023.03.25