본문 바로가기
CS/DB

연산

by 넬준 2021. 12. 3.

수치연산

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

댓글