[13, 14, 15강] 문자열 연산, 날짜 연산, CASE문
문자열 데이터 연산
-
문자열 결합 : 2개의 열 데이터를 모아 1개의 열로 처리하는 등, 문자열 가공
수치형 데이터도 문자열 결합을 사용할 수 있으며, 문자열로 결합한 결과는 문자열형이 된다.
(1) SQL Server : + 연산자
(2) Oracle, DB2, PostgreSQL : || 연산자
(3) MySQL : CONCAT 함수
-
SUBSTRING 함수
: 문자열의 일부분을 계산해서 반환하는 함수
: 문자열 데이터에서 원하는 부분을 각각 추출하고 싶을 때 사용
: DBMS에 따라 SUBSTR로 쓰는 경우도 있다 -
TRIM 함수
: 문자열의 앞뒤로 여분의 스페이스가 있을 때 제거
: 문자열 도중에 있는 스페이스에 적용 X
: 고정길이 문자열형에서 많이 사용하며, 인수를 지정하여 스페이스 이외의 문자도 제거 가능 -
CHARACTER_LENGTH 함수
: 문자열의 길이를 계산하여 반환하는 함수
: CHAR_LENGTH로 줄여서 사용 가능- OCTET_LENGTH 함수
: 문자열의 길이를 바이트 단위로 계산하여 반환하는 함수
: 문자세트(인코드 방식)에 따라 결과 달라질 수 있다!
- OCTET_LENGTH 함수
문자세트
데이터베이스나 테이블을 정의할 때 사용하는 인코드 방식
- 반각문자 : 알파벳, 숫자, 기호 등 ASCII 문자
- 전각문자 : 한글 등. EUC-KR, UTF-8 등의 인코드 방식 사용
날짜 연산
날짜 데이터의 연산 결과는 아래 두 가지 종류로 반환될 수 있다.
(1) 동일한 날짜시간 유형의 데이터
(2) 기간형(interval) 데이터
-
CURRENT_TIMESTAMP
: 인수가 없는 함수로, 함수 실행했을 때의 시간을 표시한다.
: 표준 SQL 함수 -
날짜 데이터의 서식
: DBMS마다 날짜 데이터의 서식을 지정 & 변경할 수 있는 다양한 함수가 있다.
: Oracle의 경우 TO_DATE, TO_CHAR 함수 등을 사용한다. -
날짜 데이터의 연산
: 날짜시간형 데이터는 기간형 수치 데이터와 덧셈 및 뺄셈을 할 수 있다.
: MySQL의 경우, 기간 뺄셈은 DATEDIFF 함수를 이용할 수 있다.
CASE 문으로 데이터 변환하기
임의의 조건에 따라 독자적으로 데이터를 변환하고 싶은 경우 CASE문을 사용한다.
- CASE문은 SELECT, WHERE, ORDER BY 등 어디서든 사용될 수 있다
- ELSE를 생략하면 ELSE NULL이 되는 것에 주의한다 = 생략하지 말고 지정하는 것 권장
검색 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
단순 CASE문
NULL 판정에서 = 연산자를 사용할 수 없기 때문에 단순 CASE문에서 NULL 값을 비교할 수 없다!
NULL값 비교는 검색 CASE문 사용하기
CASE 식1
WHEN 식2 THEN 식3
[WHEN 식4 THEN 식5]
[ELSE 식6]
END
- 식1과 식4의 값을 비교하여 같다면 식5를 반환하는 형식
- 일치하는 WHEN절이 하나도 없다면 ELSE절 반환
Author And Source
이 문제에 관하여([13, 14, 15강] 문자열 연산, 날짜 연산, CASE문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ej_shin/13-14-15강-문자열-연산-날짜-연산-CASE문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)