수수한 코딩세상

[DB] SQL 사칙연산 & 문자다루는 함수 본문

수수한 코딩세상/DB

[DB] SQL 사칙연산 & 문자다루는 함수

수수한 코딩열공생 2024. 6. 28. 16:03
<개발 도구>
DBMS : MySQL
Editor : DBeaver

 

테이블에서 컬럼데이터를 조작해서 출력할 수 있는 방법에는 여러 방법이 있습니다. 그중에서 사직연산과 문자 컬럼의 문자 데이터를 다루는 함수들에 대해 정리해 보도록 하겠습니다.

 

사칙연산

▶ 더하기 (+)

SELECT 컬럼명 + 10 FROM 테이블명;

해당 컬럼에 10을 더한 값이 출력됩니다.

 

▶ 빼기 (-)

SELECT 컬럼명 - 10 FROM 테이블명;

해당 컬럼에 10을 뺀 값이 출력됩니다.

 

▶ 나누기 (/)

SELECT 컬럼명 / 10 FROM 테이블명;

해당 컬럼에 10을 나눈 값이 출력됩니다.

 

▶ 곱하기 (*)

SELECT 컬럼명 * 10 FROM 테이블명;

해당 컬럼에 10을 곱한 값이 출력됩니다.

 

▶ 컬럼끼리 사칙연산

SELECT 컬럼명1 / 컬럼명2 FROM 테이블명;

컬럼1을 컬럼2로 나눈 값이 출력됩니다.

 

문자 다루는 함수
(CONCAT(), TRIM(), REPLACE(), SUBSTR(), INSERT(), RIGHT(), LEFT())

▶ 문자끼리 이어 붙이기 : CONCAT()

SELECT CONCAT(컬럼명1, 컬럼명2, 컬럼명3, ...) FROM 테이블명;

# CONCAT 이용 예시
SELECT CONCAT(고객명,'의 등급은 ',고객등급) FROM 테이블명;
#-> 출력 : 홍길동의 등급은 VIP

concatenate(연결하다)의 뜻을 가진 CONCAT() 함수를 사용하면 문자 컬럼 여러 개를 이어 줄 수 있습니다. 컬럼이 2개 이상이어도 가능합니다.

CONCAT() 안에 직접 문자를 기입하여 예시코드처럼 사용할 수도 있습니다.

 

▶ 문자 좌우 공백 제거 : TRIM()

SELECT TRIM(컬럼명) FROM 테이블명;

trim(정돈된, 관리, 말끔한)이라는 뜻을 가진 단어처럼 해당 컬럼의 좌우의 공백을 제거해서 출력해줍니다.

 

▶ 단어 바꿔서 출력 : REPLACE()

SELECT REPLACE(컬럼명, 바뀔단어, 바꿀단어) FROM 테이블명;

# REPLACE 사용 예시
SELECT REPLACE(고객등급, '패', '훼') FROM 테이블명;
#-> 출력 : 패밀리 등급이 훼밀리라고 변경되어서 출력됨

replace(바꾸다)라는 뜻과 같이 해당 컬럼에서 단어를 원하는 단어로 바꿔서 출력해줍니다.

 

▶ 문자 일부만 출력 : SUBSTR()

SELECT SUBSTR(컬럼명, 몇번째글자부터, 몇자) FROM 테이블명;

substring(부분 문자열)에서 따온 SUBSTR() 함수는 해당 컬럼에서 지정한 부분의 문자를 출력해 줍니다.

 

▶ 문자 일부 교체해서 출력 : INSERT()

SELECT INSERT(컬럼명, 몇번째글자부터, 몇자, 바꿀단어) FROM 테이블명;

# INSERT 사용 예시
SELECT INSERT('test@naver.com',6,5,'gmail') FROM 테이블명;
#-> 출력 : test@gmail.com

insert(삽입)이라는 뜻을 가진 INSERT() 함수는 바꾸고자 하는 부분의 문자열을 원하는 문자로 바꿔 출력해 줍니다.

☞ REPLACE() & INSERT()
REPLACE()와 INSERT()가 비슷하다고 생각되실 수 있습니다.
REPLACE()는 특정 문자를 바꾸는 함수이고, INSERT()는 특정 부분을 바꾸는 함수입니다.

- REPLACE() : 특정 문자 바꿔 출력
- INSERT() : 특정부분 바꿔 출력

 

 

▶ 오른쪽 문자 출력 : RIGHT()

SELECT RIGHT(컬럼명, 출력할 문자수);

#RIGHT 사용 예시
SELECT RIGHT('010-1234-5678',4);
#-> 출력 : 5678 휴대폰 번호 끝자리를 출력할 수 있음

RIGHT() 함수는 해당 컬럼의 문자 끝에서부터 원하는 문자수만큼을 출력해 줍니다.

 

▶ 왼쪽 문자 출력 : LEFT()

SELECT LEFT(컬럼명, 출력할 문자수);

# LEFT 사용 예시
SELECT LEFT('123456-1234567',6);
#-> 출력 : 123456 주민등록번호 앞자리만을 출력 가능함

LEFT() 함수는 해당 컬럼의 문자 처음부터 원하는 문자수만큼을 출력해 줍니다.

 

이상 숫자데이터 또는 문자데이터를 컬럼단위로 조작해서 출력하는 함수들에 대해서 정리해 보았습니다.

 


Reference

해당 글은 애플코딩님의 강의를 보고 정리한 내용입니다.

https://codingapple.com/course/sql-and-database/

 

한 번에 끝내는 SQL & Database - 코딩애플 온라인 강좌

SQL은 관계형 데이터베이스에서 데이터를 입출력할 때 사용하는 언어입니다.  관계형 데이터베이스를 다루는 곳에서 백엔드 개발 잘하고 싶다면 SQL을 잘 알아두도록 합시다.  실은 SQL을 개발자

codingapple.com