home
데이터 생성, 조작과 변환
문자열 조작
concat()으로 문자열을 붙이고,char()을 통해서 ASCHII 문자열을 생성한다.length()로 문자열의 개수를 반환- char 자료형의 경우, 빈 칸은 더 없앤 채로 반환된다.
position(str IN fld)로 부분 문자열의 위치를 찾을 수 있다.SUBSTRING(str, 시작위치, 몇개)로 문자열을 추출할 수 있다.SELECT name, name LIKE '%y' ends in y FROM category;- 여기에서 y로 끝나는 카테고리인지 아닌지 0 아니면 1로 나타낸다.
INSERT(원래 문자열, 시작위치, 대체할 문자 개수, 대체 문자열)로 중간을 바꿀 수 있다.
숫자 데이터 처리
- 나머지는
MOD(int, int)로 POW(int, int)거듭 제곱- 올림:
CEIL(), 내림FLOOR()
ROUND
ROUND()기본은 반올림ROUND(72.090, 1)을 하면72.1반환, 즉 소수점 ~ 번재까지 나타내는데 뒷자리 보고 반올림 함ROUND(17, -1)음수와TRUNCATE(17, -1)음수의 차이점- ROUND(17, -1)는 17을 가장 가까운 10의 배수로 반올림하여 20을 반환합니다.
- TRUNCATE(17, -1)은 십의 자리에서 숫자를 잘라내어 10을 반환합니다.
- 결국, 두 함수의 주요 차이점은 ROUND()가 반올림을 하여 가장 가까운 값으로 변경하는 반면, TRUNCATE()는 지정된 자릿수 이후의 숫자를 단순히 잘라내어 버림
SIGN()으로 양수면 1, 음수면, -1, 0이면 0
시간 데이터 처리
SELECT @@global.time_zone, @@session.time_zone으로 시간대 확인 가능SET time_zone = 'Asia/Seoul'로 바꿀 수 있음
- date, datetime, timestamp, time 형식의 문자열을 해당 열에 채우려고 하면 서버가 알아서 변환한다.
CAST()를 사용해서 서버가 판단 할 수 없을 때나 기본 형식이 아닐 때 변환이 가능하다.SELECT CAST('2019-09-17 15:30:00' AS DATETIME)STR_TO_DATE()를 사용해서 문자열에서 시간 데이터를 생성하는 것도 가능STR_TO_DATE('September 17, 2019', '%M %d %Y')- M은 영어 월명, m은 숫자 월명, d는 일, W는 요일 명, Y는 4자리 연도, y는 두 자리 연도, H는 24시간, h는 12시간, i는 분, p는 오후, 오전 …
CURRENT_DATE(),CURRENT_TIME(),CURRENT_TIMESTAMP()로 현재 시간 반환 가능DATE_ADD(INTERVAL int SECOND)식으로 시간 계산도 가능minute_second,hour_second,year_second로 00:00, 00:00:00 식으로 시간 계산도 가능하다.SET return_data = DATE_ADD(return_data, INTERVAL '3:27:11' HOUR_SECOND)식으로 가능
LATE_DAY로 해당 월의 마지막 날짜를 알 수 있다.DAY_NAME('2019-08-18')을 통해서 요일을 알 수 있다.EXTRACT(YEAR FROM '')을 통해서 특정 기간 자료형을 추출 할 수 있다.DATEDIFF( , )를 사용해서 두 날짜의 일 차이를 알 수 있다.