[Data Base] MySQL 문자열 연산/함수, 날짜연산,NULL값연산

HOHO·2023년 3월 14일

#MYSQL

목록 보기
7/17

문자열 결합

||(파이프) -> Oracle,postgreSQL
CONCAT -> MYSQL

select name,age,concat(name,age) from sample31;

문자열 + 숫자타입 + 문자열


문자열관련 함수

substring

select substring(address,3,5)
from sample31;
  • '광역시 중' '광역시 연' '특별시 중'
    3~5까지 잘려서 나온다

trim

char타입의 문자열형은 지정한크기보다 글자수가 적으면 공백으로 채우기때문에
공백을 없애주는 trim함수가 유용할수있다

trim('ABC        ') -> 'ABC'

character_length

가변길이 문자열인 varchar형의 길이도 카운트 해준다

select address,character_length(address)
from sample31; -> 8,9,8 출력

날짜시간형

SQL표준 - select current_timestamp;
연,월,일 시:분:초 까지 다나온다

연-월-일 형식으로 날짜가 저장되었을때
연도만 추출하기

select * from EMP where DATE_FORMAT(hiredate, '%Y') = 1982;

연-월-일 표시방식을 연.월.일 방식으로 바꿔서 보여주기

select DATE_FORMAT(hiredate, '%Y.%m.%d') from EMP;

날짜 덧셈

select current_timestamp + interval 100 day;
#오늘로부터 100일을 더한날짜를 보여준다
select current_timestamp - interval 100 day;
#마찬가지로 오늘로부터 100일을 뺀날짜
select hiredate + interval 1300 day FROM EMP;
#날짜형 column의 데이터 전부 1300일 더하기

NULL값 연산하기

COALESCE

앞에서 null은 값 자체가 없으므로 계산이 안된다고 배웠다
이번에는 null을 0으로 처리해서 연산하는법을 배운다

select sal,comm ,sal+comm,sal+coalesce(comm,0)from EMP;
select sal,comm ,sal+comm,sal+ifnull(comm,0)from EMP;

  • SQL 표준인 COALESCE 함수는
    sal과 comm중에 null이 아닌값이 있으면 그대로 연산하고 null이 존재하면 0으로 반환한다

  • MYSQL은 IFNULL함수를 사용해서 NULL을 연산한다

COALESCE추가

SELECT COALESCE(컬럼1, 컬럼2, 컬럼3,.....컬럼N)
FROM Table

컬럼1이 NULL값이 아니면 컬럼1값을 출력
컬럼1이 NULL값이고 컬럼2가 NULL이 아니라면 컬럼2값을 출력
컬럼1,2 가 NULL값이고 컬럼3이 NULL이 아니라면 컬럼3값을 출력


profile
기계 그잡채가 되고싶다

0개의 댓글