수치연산
SELECT 구, WHERE 구, ORDER BY 구 등 여러 구에서 연산을 할 수 있다.
SELECT에서 열끼리 연산한 값에 예약어 AS를 사용해 별명을 정해줄 수 있다.(생략 가능)
한글과 같이 ASCII 문자(알파벳, 숫자 등)가 아닌 것으로 별명을 정해줄 땐 " "(더블쿼트)로 둘러싸준다.
SELECT 구에서 지정해준 별명은 WHERE 구에서 사용할 수 없다, 이는 DB 서버 내부에서
처리 순서가 WHERE 구 -> SELECT 구이기 때문이다.
WHERE 구로 행이 조건에 맞는지 조사한 후에 SELECT 구에 지정된 열을 선택해 결과를 반환하는 식이다.
(ORDER BY 구는 가장 나중에 처리되므로 SELECT 구에서 지정한 별명을 사용할 수 있다.)
다른 구를 포함한 자세한 처리 순서는 추후에 다룬다.
NULL의 연산은 NULL이다.
연산자처럼 함수도 사용이 가능하다
예) ROUND 함수 - 기본적으로 소수 첫째 자리에서 반올림하는 함수
ROUND(1254.54) = 1255
두 번째 매개변수를 지정하여 반올림 자릿수를 바꿀 수 있다.
ROUND(1254.54, 1) = 1254.5
ROUND(1254.54, -1) = 1250
이처럼 ROUND(열명) 등의 방식으로 함수 연산식이 쓰일 수 있다.
문자열 연산
문자열 결합
MySQL에서는 CONCAT 함수로 문자열을 결합한다.
SELECT CONCAT(quantity, unit) FROM table;
SUBSTRING 함수
문자열의 일부를 계산해서 반환하는 함수
TRIM 함수
문자열의 앞 뒤로 여분의 스페이스가 있을 때 제거해주는 함수(중간에 있는 스페이스는 제거할 수 없다.)
이를테면, CHAR형에서는 문자열의 길이가 고정되어 있고, 남은 공간에 스페이스를 채운다. 이 때 이 스페이스를 사용하기 위해 TRIM 함수를 사용하면 된다.
또한, 인수를 지정해주면 문자 제거할 수 있다.
CHARACTER_LENGTH 함수
문자열의 길이를 계산해서 반환하는 함수
OCTET_LENGTH 함수 : 문자열의 길이를 바이트 수대로 반환
EUC-KR 문자세트에선 ASCII 문자 1byte, 한글 2byte
UTF-8 문자세트에선 ASCII 문자 1byte, 한글 3byte
날짜 연산
CURRENT_TIMESTAMP 함수는 현재 날짜와 시간 반환하는 함수
SELECT CURRENT_TIMESTAMP
인자를 필요로 하지 않기 때문에 ()을 생략한다.
'CS > DB' 카테고리의 다른 글
데이터 추가, 갱신, 삭제 - INSERT / UPDATE / DELETE (0) | 2021.12.03 |
---|---|
CASE문 (0) | 2021.12.03 |
결과 행 제한(LIMIT OFFSET) (0) | 2021.12.03 |
정렬 (ORDER BY) (0) | 2021.12.03 |
테이블에서 데이터 검색 (SELECT, DESC, WHERE, AND, OR , NOT, LIKE) (0) | 2021.12.03 |
댓글