하파와 데이터

[SQL 이론] 숫자형, 문자형 기본함수 본문

Development/SQL

[SQL 이론] 숫자형, 문자형 기본함수

hhpp 2023. 8. 7. 00:35

 

SQL에서 마주할 수 있는 다양한 숫자들과 문자형들이 있다. 

데이터를 그대로 사용하기 보다, 내가 그 안에서 추출하고 싶은 값들이 있을때, 

우리는 기본함수들을 이용해서 원하는 값을 찾아낼 수 있다. 

 

MYSQL의 함수는 아래 사이트를 통해 더 많이, 정확히 알아볼 수 있다.

https://dev.mysql.com/doc/refman/8.0/en/numeric-functions.html

 

 

SQL에도 여러가지 함수가 있다. 

전부를 나열할 수 없기 때문에, 필요한 함수들을 몇가지 적어본다 .

 

숫자형

COUNT(*)

-- NULL을 포함하여, 열의 총 갯수를 반환

-- count의 경우, 숫자 밸류가 아니더라도 그 값들을 셀 수 있다는게 특징이다. 

 

SUM('열이름')

- 열에 있는 값들의 합계를 출력

 

AVG('열이름')

- 열에 있는 값들의 평균를 출력

 

ABS('열이름')

- 열에 있는 값들의 절대값을 출력

 

TRUNCATE('열이름', 숫자)

- 열에서 지정한 '숫자'자리 아래로 버림

 

MOD('열이름', '나눌 숫자')

-- 열의 값을 콤마 뒤의 숫자로 나누고 남은 나머지를 반환

-- 홀수, 짝수를 구분할 때 자주 사용됨

-- MOD(X, 2) =0, 2로 나눈 나머지가 0을 의미하며 이는 짝수를 뜻함

-- MOD(X,2) = 1, 2로 나눈 나머지가 1을 의미하며 이는 홀수를 뜻함

 

POWER('열이름',숫자), POW('열이름',숫자)

-- 열이름의 숫자승의 값을 반환함

-- 예시로 POW(2,4) = 16(2의 4승)이며, POWER(4,2) = 16(4의 2승)이다.

-- POW와 POWER 함수는 완벽히 동일한 함수이다. 

-- POWER 함수에서 숫자부분에 분수를 넣으면, 분모에 있는 숫자만큼의 루트값을 반환한다. 

 

SQRT('열이름')

-- 열의 값의 제곱근(루트) 값을 반환

-- 예를들어 SQRT(4) = 2, SQRT(9)= 3이다. 

-- POWER를 통해서 SQRT와 동일한 효과를 낼 수 있다.

-- SQRT(4) = POWER(4,1/2)=2이다. 

-- POWER(8,1/3) = 2

 

문자형

문자형의 경우, 이해를 위해 DT를 지정하고 결과를 보는 것이 도움이 될 것 같다.

번호 ID ADDRESS
1 AB001 서울시 종로구 **
2 AB002 서울시 강남구 **
3 AB003 서울시 서초구 **

 

LOWER(문자열) 

-- 문자열을 소문자로 출력

SELECT LOWER(ID)
FROM DT
ID
ab001
ab002
ab003

ID열의 값을 소문자로 반환

-- 참고로, SELECT는 기본 DT의 값을 수정하는 것이 아니고 소문자로 변환하여 출력하는 것 뿐임

 

UPPER(문자열) 

-- 문자열을 대문자로 출력

SELECT UPPER(ID)
FROM DT
ID
AB001
AB002
AB003

UPPER의 경우, 기존 DT(ID)가 대문자였기 때문에 변화없이 대문자 그대로 출력됨

 

REPLACE(문자열,패턴1, 패턴2) 

-- 패턴 1의 값을 패턴 2의 값으로 치환하여 출력

SELECT REPLACE(ID,'B','C')
FROM DT
ID
AC001
AC002
AC003

 

CONCAT(문자열,패턴1, 패턴2) 

-- 패턴 1의 값을 패턴 2의 값으로 치환하여 출력

SELECT CONCAT(ID, ':', ADDRESS)
FROM DT
SELECT CONCAT(ID, ':', ADDRESS) FROM DT
AB001:서울시 종로구 **
AB002:서울시 강남구 **
AB003:서울시 서초구 **

 

'Development > SQL' 카테고리의 다른 글

[SQL이론] DATE 형태 변형, 일자 변경  (0) 2023.08.08
SQL - PIVOT 변환하기  (0) 2023.07.31
SQL 소수점 처리  (0) 2023.07.22
SQL- Null 에 따른 AVG 값의 차이  (0) 2023.07.22