SELECT a * b FROM test_table;
SELECT a + b FROM test_table;
-- *, /, +, - 처럼 기본적인 산술연산들을 지원한다.
SELECT CONCAT(name, ' : ', age) FROM test_table;
-- CONCAT : 쉼표로 구분된 문자열들을 합쳐준다.
-- 위 쿼리처럼 쓴다면 lucy : 20 처럼 {name} : {age} 형태로 문자열이 만들어진다.
SELECT CONCAT_WS(' : ', name, age) FROM test_table;
-- CONCAT_WS : MySQL 전용 함수(방언)로, 첫번째 인자로 구분자를 받아 각 문자열 사이에 넣어준다.
-- 결과는 첫번째 쿼리와 같지만, 좀 더 간단하게 쓸 수 있다.
SELECT UPPER(name), LOWER(name) FROM test_table;
-- UPPER : 문자열을 모두 대문자로 변환해준다.
-- LOWER : 문자열을 모두 소문자로 변환해준다.
SELECT LENGTH(name) as byte_lenth, CHAR_LENGTH(name) as char_length FROM test_table;
-- LENGTH : 문자열의 바이트 크기를 반환한다.
-- CHAR_LENGTH : 문자열의 글자 수를 반환한다.
-- 보통 문자열의 길이만 구한다면 CHAR_LENGTH를 쓰면 되고, 실제 바이트 크기를 구한다면 LENGTH 를 쓰면 된다.
SELECT name, IFNULL(email, 'no email exists') FROM test_table;
-- IFNULL : MySQL 방언으로, 첫번째 값이 NULL 이 아니면 첫번째 값을, NULL이면 두번째 값을 반환한다.
SELECT name, COALESCE(email, 'no email exists') FROM test_table;
-- COALESCE : SQL 표준 함수로, 인자를 가변으로 여러개 받아 순서대로 확인해서 처음으로 NULL이 아닌 값을 반환한다.
-- 위처럼 쓴다면 email이 NULL 이 아니면 email, NULL 이면 그 다음 두번째 값을 반환한다.
-- IFNULL과 비슷하지만 (email, email_short, 'no email') 처럼 인자를 여러개 넘겨서 좀 더 유연하게 쓸 수 있다.
이외에도 MIN, MAX, AVG, COUNT 같은 여러 집계 함수들과 CURRENT_DATE, CURRENT_TIMESTAMP 같이 여려개의 표준 함수들이 존재한다.