목차
컬럼 출력 시 사칙연산 넣기
- 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 모두 사용가능합니다.
- 단, 문자들어 있는 컬럼에 사칙연산하면 안 됩니다!!
- 예시
- 사용금액에 수수료를 제외한 90% 금액만 출력하기
-
SELECT 사용금액*0.9 FROM card
-
- 결제당 평균 사용 금액 출력하기 (겻제횟수와 사용금액 이용)
-
SELECT 사용금액/결제횟수 FROM card
-
- 고객명과 고객등급을 합쳐서 출력하기.
- + (사칙연산) 이용해보기
- 문자가 있는 컬럼에 +(사칙연산)를 사용하니 오류가 발생하는 것을 확인할 수 있습니다.
- CONCAT 이용
-
SELECT CONCAT(고객명," ",고객등급) FROM card
-
- 이처럼 문자는 문자 전용 함수를 이용해야 합니다.
- + (사칙연산) 이용해보기
- 사용금액에 수수료를 제외한 90% 금액만 출력하기
문자 다루는 함수
CONCAT
-
SELECT CONCAT(합치고싶은문자컬럼1, 합치고싶은문자컬럼2, "넣고싶은문자", ...) FROM 테이블명
- CONCAT을 통해 문자를 가진 컬럼끼리 합쳐서 출력이 가능합니다.
- 참고 : Postgres, Oracle은 CONCAT 대신 || 를 사용합니다.
-
SELECT 합치고싶은문자컬럼1 || 합치고싶은문자컬럼2 || "넣고싶은문자" FROM 테이블명
-
- 예시
- 고객명 컬럼과 고객등급 컬럼 사이에 is를 넣어서 출력하기
-
SELECT CONCAT(고객명," is ",고객등급) FROM card
-
- 고객명 컬럼과 고객등급 컬럼 사이에 is를 넣어서 출력하기
TRIM
-
SELECT TRIM(공백을 포함한 문자) FROM 테이블명
- TRIM을 통해 문자의 좌우 공백을 제거 후 출력할 수 있습니다.
- 예시
-
SELECT TRIM(" 안 녕 하세요. ") FROM card
- 좌우 공백만 제거된 것을 확인할 수 있습니다.
-
REPLACE
-
SELECT REPLACE(컬럼명, 바뀔단어, 바꿀단어) FROM 테이블명
- 특정 컬럼에 대해서 특정 단어를 다른 단어로 변경시켜 줄 수 있습니다.
- 예시
-
SELECT REPLACE (고객등급,"패","훼") FROM card
-
SUBSTR
-
SELECT SUBSTR(컬럼명, 몇째글자부터, 몇자) FROM 테이블명
- 특정 컬럼에 대해서 몇 번째 글자부터 몇 글자만 뽑아서 출력해 줄 수 있습니다.
- 예시
-
SELECT SUBSTR(고객명,2,3) FROM card
- 2번째 글자부터 총 3글자가 출력되었습니다. (2, 3, 4 번째 글자 출력)
- 총 4글자보다 짧은 글자들은 마지막 글자까지만 출력되었습니다.
-
INSERT
-
SELECT INSERT(컬럼명, 몇째글자부터, 몇자, 바꿀단어)
- REPLACE와 동일한 기능입니다. 하지만 INSERT는 특정 글자를 바꾸는 것이 아니라 특정 부분을 바꾸는 것입니다. 이메일 이름을 변경할 때 유리합니다.
- 예시
- INSERT 사용
-
SELECT INSERT("test@naver.com", 1, 4, 고객명) FROM card
-
- REPLACE 사용
-
SELECT REPLACE("test@naver.com", "test", 고객명) FROM card
-
- INSERT 사용
숫자 다루는 함수
GREATEST, LEAST
- MAX, MIN은 하나의 컬럼에 대해서 최댓값과 최솟값을 구하는 것입니다. GREATEST와 LEAST는 하나의 로우에 대해서 최댓값과 최솟값을 구해줍니다.
-
SELECT GREATEST(COL1, COL2, COL3, ...) FROM 테이블명
- ROW의 최댓값을 구해줍니다.
-
SELECT LEAST(COL1, COL2, COL3, ...) FROM 테이블명
- ROW의 최솟값을 구해줍니다.
- 예시
- GREATEST
-
SELECT GREATEST(Column1, Column2, Column3) FROM test_table
-
- LEAST
-
SELECT LEAST(Column1, Column2, Column3) FROM test_table
-
FLOOR / CEIL
-
SELECT FLOOR(소수점 들어있는 숫자)
- FLOOR는 소수 부분을 내림해서 정수로 바꿔줍니다.
-
SELECT CEIL(소수점 들어있는 숫자)
- CEIL은 소수부분을 올림 해서 정수로 바꿔줍니다.
- 예시
- SELECT FLOOR(10.1) -> 10
- SELECT FLOOR(10.9) -> 10
- SELECT CEIL(10.1) -> 11
- SELECT CEIL(10.9) -> 11
ROUND / TRUNCATE
-
SELECT ROUND(소수점들어있는숫자, 자릿수)
- 입력한 자릿수까지 반올림해 줍니다.
-
SELECT TRUNCATE(소수점들어있는숫자, 자릿수)
- 입력한 자릿수까지 내림해 줍니다.
- 참고 : Oracle, Postgres는 TRUNCATE() 말고 TRUNC()라고 씁니다.
- 예시
- SELECT ROUND(10.777, 2) -> 10.78
- SELECT TRUNCATE(10.777, 2) -> 10.77
POWER
-
SELECT POWER(숫자, 지수)
- 숫자를 거듭제곱하고 싶을 때 사용합니다.
- 예시
- SELECT POWER(4, 2) -> 16
ABS
-
SELECT ABS(숫자)
- 숫자의 절댓값을 출력해 줍니다.
- 예시
- SELECT ABS(-100) -> 100
예제
- 특정 문자에 있는 모든 공백을 제거해서 출력하기
-
SELECT REPLACE(상품명, ' ', '') FROM 테이블명
- 공백을 빈 문자로 변경해 주면 됩니다.
-
- 휴대폰 뒷자리 4글자만 출력하기(번호 컬럼 예시 : 010-1234-1234)
-
SELECT RIGHT(번호, 4) FROM 테이블명
- 뒤에서 4자리 출력
- 참고 : LEFT의 경우는 앞에서부터 해당 숫자 자리만큼 출력해 줍니다.
-
SELECT SUBSTR(번호, 10,4) FROM 테이블명
- 10번째 자리부터 4자리 출력
-
출처
'Database > MySQL' 카테고리의 다른 글
그룹지어 통계내기 (GROUP BY) (0) | 2024.03.02 |
---|---|
select 안에 select (서브쿼리) (1) | 2024.03.01 |
MIN, MAX, AVG, SUM, COUNT 집계함수로 통계내기 (0) | 2024.02.28 |
WHERE로 데이터 필터링하기 (1) | 2024.02.27 |
데이터 출력 / 정렬 (SELECT / ORDER BY) (0) | 2024.02.27 |