문자열 결합 : 2개의 열 데이터를 모아 1개의 열로 처리하는 등, 문자열 가공
수치형 데이터도 문자열 결합을 사용할 수 있으며, 문자열로 결합한 결과는 문자열형이 된다.
(1) SQL Server : + 연산자
(2) Oracle, DB2, PostgreSQL : || 연산자
(3) MySQL : CONCAT 함수
SUBSTRING 함수
: 문자열의 일부분을 계산해서 반환하는 함수
: 문자열 데이터에서 원하는 부분을 각각 추출하고 싶을 때 사용
: DBMS에 따라 SUBSTR로 쓰는 경우도 있다
TRIM 함수
: 문자열의 앞뒤로 여분의 스페이스가 있을 때 제거
: 문자열 도중에 있는 스페이스에 적용 X
: 고정길이 문자열형에서 많이 사용하며, 인수를 지정하여 스페이스 이외의 문자도 제거 가능
CHARACTER_LENGTH 함수
: 문자열의 길이를 계산하여 반환하는 함수
: CHAR_LENGTH로 줄여서 사용 가능
문자세트
데이터베이스나 테이블을 정의할 때 사용하는 인코드 방식
- 반각문자 : 알파벳, 숫자, 기호 등 ASCII 문자
- 전각문자 : 한글 등. EUC-KR, UTF-8 등의 인코드 방식 사용
날짜 데이터의 연산 결과는 아래 두 가지 종류로 반환될 수 있다.
(1) 동일한 날짜시간 유형의 데이터
(2) 기간형(interval) 데이터
CURRENT_TIMESTAMP
: 인수가 없는 함수로, 함수 실행했을 때의 시간을 표시한다.
: 표준 SQL 함수
날짜 데이터의 서식
: DBMS마다 날짜 데이터의 서식을 지정 & 변경할 수 있는 다양한 함수가 있다.
: Oracle의 경우 TO_DATE, TO_CHAR 함수 등을 사용한다.
날짜 데이터의 연산
: 날짜시간형 데이터는 기간형 수치 데이터와 덧셈 및 뺄셈을 할 수 있다.
: MySQL의 경우, 기간 뺄셈은 DATEDIFF 함수를 이용할 수 있다.
임의의 조건에 따라 독자적으로 데이터를 변환하고 싶은 경우 CASE문을 사용한다.
CASE WHEN 조건식 1 THEN 식 1
[WHEN 조건식 2 THEN 식 2]
[ELSE 식3]
END
ELSE는 생략 가능 : 생략할 경우 ELSE NULL로 간주
만약 NULL값을 변환하고 싶다면, COALESCE 함수 사용이 간편
COALESCE(a, 0)
: (a == null) ? 0 : a
NULL 판정에서 = 연산자를 사용할 수 없기 때문에 단순 CASE문에서 NULL 값을 비교할 수 없다!
NULL값 비교는 검색 CASE문 사용하기
CASE 식1
WHEN 식2 THEN 식3
[WHEN 식4 THEN 식5]
[ELSE 식6]
END