home강의 홈으로
Section 1. SELECT 기초 - 원하는 정보 찾기
Lesson 3. 숫자와 문자열을 다루는 함수들

🕹️ 실습 링크 바로가기

위의 사이트에서 실습이 안 될 시 👉 클릭해주세요!



1. 숫자 관련 함수들


함수 설명
ROUND 반올림
CEIL 올림
FLOOR 내림

SELECT ROUND(0.5), CEIL(0.4), FLOOR(0.6);
SELECT Price, ROUND(price), CEIL(price), FLOOR(price) FROM Products;



함수 설명
ABS 절대값

SELECT ABS(1), ABS(-1), ABS(3 - 10); SELECT * FROM OrderDetails WHERE ABS(Quantity - 10) < 5;



함수 설명
GREATEST (괄호 안에서) 가장 큰 값
LEAST (괄호 안에서) 가장 작은 값

SELECT GREATEST(1, 2, 3), LEAST(1, 2, 3, 4, 5);
SELECT OrderDetailID, ProductID, Quantity, GREATEST(OrderDetailID, ProductID, Quantity), LEAST(OrderDetailID, ProductID, Quantity) FROM OrderDetails;



💡 그룹 함수 - 조건에 따라 집계된 값을 가져옵니다.

함수 설명
MAX 가장 큰 값
MIN 가장 작은 값
COUNT 갯수 (NULL값 제외)
SUM 총합
AVG 평균 값

SELECT MAX(Quantity), MIN(Quantity), COUNT(Quantity), SUM(Quantity), AVG(Quantity) FROM OrderDetails WHERE OrderDetailID BETWEEN 20 AND 30;



함수 설명
POW(A, B), POWER(A, B) A를 B만큼 제곱
SQRT 제곱근

SELECT POW(2, 3), POWER(5, 2), SQRT(16);
SELECT Price, POW(Price, 1/2) FROM Products WHERE SQRT(Price) < 4;



함수 설명
TRUNCATE(N, n) N을 소숫점 n자리까지 선택

SELECT TRUNCATE(1234.5678, 1), TRUNCATE(1234.5678, 2), TRUNCATE(1234.5678, 3), TRUNCATE(1234.5678, -1), TRUNCATE(1234.5678, -2), TRUNCATE(1234.5678, -3);
SELECT Price FROM Products WHERE TRUNCATE(Price, 0) = 12;

🐬 더 많은 숫자 함수 보러가기 ▶️



2. 문자열 관련 함수들


함수 설명
UCASE, UPPER 모두 대문자로
LCASE, LOWER 모두 소문자로

SELECT UPPER('abcDEF'), LOWER('abcDEF');
SELECT UCASE(CustomerName), LCASE(ContactName) FROM Customers;



함수 설명
CONCAT(...) 괄호 안의 내용 이어붙임
CONCAT_WS(S, ...) 괄호 안의 내용 S로 이어붙임

SELECT CONCAT('HELLO', ' ', 'THIS IS ', 2021) SELECT CONCAT_WS('-', 2021, 8, 15, 'AM')
SELECT CONCAT('O-ID: ', OrderID) FROM Orders; SELECT CONCAT_WS(' ', FirstName, LastName) AS FullName FROM Employees;



함수 설명
SUBSTR, SUBSTRING 주어진 값에 따라 문자열 자름
LEFT 왼쪽부터 N글자
RIGHT 오른쪽부터 N글자

SELECT SUBSTR('ABCDEFG', 3), SUBSTR('ABCDEFG', 3, 2), SUBSTR('ABCDEFG', -4), SUBSTR('ABCDEFG', -4, 2); SELECT LEFT('ABCDEFG', 3), RIGHT('ABCDEFG', 3);
SELECT OrderDate, LEFT(OrderDate, 4) AS Year, SUBSTR(OrderDate, 6, 2) AS Month, RIGHT(OrderDate, 2) AS Day FROM Orders;



함수 설명
LENGTH 문자열의 바이트 길이
CHAR_LENGTH, CHARACTER_LEGNTH 문자열의 문자 길이

SELECT LENGTH('ABCDE'), CHAR_LENGTH('ABCDE'), CHARACTER_LENGTH('ABCDE'); -- w3wchool 사이트에서는 한글이 제대로 동작하지 않습니다. SELECT LENGTH('안녕하세요'), -- 15 CHAR_LENGTH('안녕하세요'), -- 5 CHARACTER_LENGTH('안녕하세요'); -- 5



함수 설명
TRIM 양쪽 공백 제거
LTRIM 왼쪽 공백 제거
RTRIM 오른쪽 공백 제거

SELECT CONCAT('|', ' HELLO ', '|'), CONCAT('|', LTRIM(' HELLO '), '|'), CONCAT('|', RTRIM(' HELLO '), '|'), CONCAT('|', TRIM(' HELLO '), '|');
SELECT * FROM Categories WHERE CategoryName = ' Beverages ' SELECT * FROM Categories WHERE CategoryName = TRIM(' Beverages ')



함수 설명
LPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임
RPAD(S, N, P) S가 N글자가 될 때까지 P를 이어붙임

SELECT LPAD('ABC', 5, '-'), RPAD('ABC', 5, '-');
SELECT LPAD(SupplierID, 5, 0), RPAD(Price, 6, 0) FROM Products;



함수 설명
REPLACE(S, A, B) S중 A를 B로 변경

SELECT REPLACE('맥도날드에서 맥도날드 햄버거를 먹었다.', '맥도날드', '버거킹');
SELECT REPLACE(Description, ', ', ' and ') FROM Categories;



함수 설명
INSTR(S, s) S중 s의 첫 위치 반환, 없을 시 0

SELECT INSTR('ABCDE', 'ABC'), INSTR('ABCDE', 'BCDE'), INSTR('ABCDE', 'C'), INSTR('ABCDE', 'DE'), INSTR('ABCDE', 'F');
SELECT * FROM Customers WHERE INSTR(CustomerName, ' ') BETWEEN 1 AND 6; -- < 6으로 하면?



함수 설명
CAST(A AS T) A를 T 자료형으로 변환
CONVERT(A, T) A를 T 자료형으로 변환

SELECT '01' = '1', CAST('01' AS DECIMAL) = CAST('1' AS DECIMAL); SELECT '01' = '1', CONVERT('01', DECIMAL) = CONVERT('1', DECIMAL);



🐬 더 많은 문자열 함수 보러가기 ▶️

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] MySQL 1-3

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?