본문 바로가기

DB/My SQL

정렬과연산-2

1. 문자열 연산

문자열 결합
제품마다 방언이 있기에 사용하는 연산자나 함수가 다르다.
MySQL의 경우 CONCAT 함수를 사용하여 연산

기본문법
SELECT CONCAT(열명, 열명) FROM 테이블명;

SUBSTRING 함수
제품에 따라 SUBSTR을 사용하는 경우도 있음.(MySQL은 둘다 사용 가능)
문자열의 일부분을 계산해 반환해주는 함수

기본문법
SELECT SUBSTRING(문자열/열명), 시작위치, 찾을 개수) FROM 테이블명;

예제문법
SELECT SUBSTRING(“SQL STUDY”, 5, 3) FROM study;
* 결과: STU(공백도 위치에 포함이 되므로 5번째 위치는 S부터 시작 함)

TRIM 함수
문자열의 앞뒤로 여분의 공백이나 지정한 특정 문자가 있을 경우 제거해주는 함수(중간은 안되요)
* CHAR 형의 문자열형에서는 문자열 길이가 고정되기에 남은 공간은 공백으로 채워짐. 이처럼 공백을 지우기위해 사용되는 함수

기본문법
SELECT TRIM(인수);

앞에 있는 공백만 제거하고 싶을 경우(LEADING)


뒤에 있는 공백만 제거하고 싶을 경우(TRAILING)

* 보이진 않지만 사실 지워진거임…

특정 문자열만 제거하고 싶을 경우(BOTH)


그럼 앞이나 뒤에 있는 특정 문자열만 제거하고 싶을 경우에는?








CHARACTER_LENGTH 함수
문자열의 길이를 구하는 함수

기본문법
SELECT CHARACTER_LENGTH(‘문자열’);


2. 날짜연산
SQL에서의 날짜 연산은 기간형으로 값을 반환 함.
기간형은 10일간, 2시간과 같은 시간의 간격을 표현할 수 있음.

CURRENT_TIMESTAMP
일시적으로 하드웨어 상의 시스템 날짜를 얻어 올 수 있는 함수

기본문법
SELECT CURRENT_TIMESTAMP;

TO_DATE
문자열 데이터를 날짜형 데이터로 변환 할 수 있는 함수

기본문법
TO_DATE(‘2018/10/25’, ‘YYYY/MM/DD’);

DATE_FORMAT
날짜형 데이터를 문자열 데이터로 변환 할 수 있는 함수

기본문법
DATE_FORMAT(‘2018/10/25’, ‘%Y%M%D’);

날짜형 간의 덧셈과 뺄셈
SELECT 날짜형 데이터 + or - 기간형 수치 데이터

예제 문법
SELECT CURRENT_DATE + INTERVAL 1 DAY;

DATEDIFF
날짜형 간의 뺄셈
두 날짜 사이에 차이가 얼마나 나는지 계산 할 수 있는 함수

기본문법
DATEDIFF(‘날짜형 데이터', ‘날짜형 데이터’);

3. CASE 문으로 데이터 변환
기본 문법
CASE WHEN 조건식1 THEN 식1
          WHEN 조건식2 THEN 식2
ELSE 식3
END

COALESCE
주어진 인수에서 첫번째가 NULL이 아닌 값을 반환합니다.

기본문법
SELECT COALESCE(인수1, 인수2, …);

예제문법
1. SELECT COALESCE(NULL, 1, 2, 3);
   -> 1
2. SELECT COALESCE(1, NULL, 2);
   -> 1
3. SELECT COALESCE(NULL, NULL);
   -> NULL

ELSE 생략 시, WHEN 조건문에 일치하는 값이 없을 경우 NULL로 반환.

IS NULL
조건식에 NULL을 사용하기 위해 사용

기본 문법
WHEN 조건 IS NULL THEN ‘식1’


관련글보기

2018/10/18 - [DB/My SQL] - My SQL 소개

2018/11/01 - [DB/My SQL] - 데이터 베이스와 SQL

2018/12/05 - [DB/My SQL] - 테이블에서 데이터 검색

2018/12/05 - [DB/My SQL] - 정렬과 연산-1



'DB > My SQL' 카테고리의 다른 글

정렬과 연산-1  (0) 2018.12.05
테이블에서 데이터 검색  (0) 2018.12.05
데이터 베이스와 SQL  (0) 2018.11.01
My SQL 소개  (0) 2018.10.18