Categories
Algorithm🧩
백준 📝
BookReview📕
CleanCode✨
Network 📨
Database 🗄
DevOps☁️
에러 일기📕
Etc💬
Fishy Fish 🎣
Spring🌱
[MySQL] SQL문 3. MySQL 데이터 형식
데이터 형식
MySQL 지원 데이터 형식
숫자 데이터 형식
- INT/INTEGER: 정수 (-21억~21억)
- BIGINT: 정수 (-900경~900경)
- FLOAT: 소숫점 아래 15자리까지
등등..
문자 데이터 형식
- CHAR: 고정길이 문자형 (1~255 바이트 사용)
- VARCHAR: 가변 길이 무자형 (1~65535 바이트 사용 가능)
- LONGTEXT: 최대 4GB까지 문자열 저장
- BLOB: 사진, 동영상, 문서파일 등의 대용량의 이진 데이터 저장에 사용
CHAR과 VARCHAR 차이
- CHAR(100)에 ‘ABC’ 사용: 3글자여도 100바이트 모두 사용. 97바이트 낭비
- VARCHAR(100)에 ‘ABC’ 사용: 3자리반 이용하므로 공간을 더 효율적으로 이용
- 하지만 CHAR 형식이 데이터를 삽입/수정할 경우 좋은 성능을 발휘한다!
날짜와 시간 데이터 형식
- DATE: YYYY-MM-DD 형식으로 사용
- DATETIME: YYYY-MM-DD HH:MM:SS 형식
- TIME: HH:MM:SS 형식
기타 데이터 형식
- GEOMETRY: 공간 데이터 형식으로 점, 선, 다각형같은 공간 데이터 개체를 저장하고 조작
- JSON: JSON 문서 저장
변수
형식
// 변수 설정
SET @변수이름 = 변수의 값;
데이터 형 변환
명시적 형 변환
형식
CAST (expression AS 데이터 형식 [(길이)])
CONVERT (expression, 데이터 형식 [(길이)])
- 형변환 가능한 데이터 형식: CHAR, DATE, DATETIME, JSON, INTEGER, TIME 등
예시
SELECT CAST(AVG(amount) AS signed integer) AS '평균 구매 개수' FROM buytbl;
- 평균낸 물건의 갯수를 정수로 반올림한 후 형변환하여 출력
암시적 형 변환
SELECT CONCAT(100, '200')
- CONCAT: 문자열을 합치는 함수
- 100을 문자열로 변환한 후 처리
MySQL 내장 함수
제어 흐름 함수
프로그램의 흐름 제어
- IF(수식, 참, 거짓)
- 수식의 참 거짓에 따라 2중 분기
SELECT IF (100>200, "참", "거짓")
- IFNULL(수식1, 수식2)
- 수식1이 NULL이 아니면 수식 1 반환, NULL이면 수식 2 반환
- NULLIF(수식1, 수식2)
- 수식1과 2가 같으면 NULL 반환, 다를 경우 수식 1 반환
문자열 함수
- ASCII(아스키 코드), CHAR(숫자)
- 아스키 코드 값 또는 숫자에 해당하는 아키코드 값의 문자를 반환
- CONCAT(문자열1, 문자열2), CONCAT_WS(구분자, 문자열1, 문자열2, …)
- 문자열 연결
수학 함수
- ABS(숫자): 절댓값 계산
- CEILING, FLOOR, ROUND: 올림, 내림, 반올림 계산
- POW(숫자1, 숫자2), SQRT(숫자): rjemqwprhq, wprhqrms rPtks
날짜 및 시간 함수
- ADDDATE(날짜, 차이), SUBDATE(날짜, 차이)
- 날짜를 기준으로차이를 더하거나 뺀 날짜 계산
- DATE(), TIME(): DATETIME 형식에서
연-월-알 시:분:초추출