[MySQL] SQL문 3. MySQL 데이터 형식

데이터 형식

MySQL 지원 데이터 형식

숫자 데이터 형식

  1. INT/INTEGER: 정수 (-21억~21억)
  2. BIGINT: 정수 (-900경~900경)
  3. FLOAT: 소숫점 아래 15자리까지

등등..

문자 데이터 형식

  1. CHAR: 고정길이 문자형 (1~255 바이트 사용)
  2. VARCHAR: 가변 길이 무자형 (1~65535 바이트 사용 가능)
  3. LONGTEXT: 최대 4GB까지 문자열 저장
  4. BLOB: 사진, 동영상, 문서파일 등의 대용량의 이진 데이터 저장에 사용

CHAR과 VARCHAR 차이

  • CHAR(100)에 ‘ABC’ 사용: 3글자여도 100바이트 모두 사용. 97바이트 낭비
  • VARCHAR(100)에 ‘ABC’ 사용: 3자리반 이용하므로 공간을 더 효율적으로 이용
  • 하지만 CHAR 형식이 데이터를 삽입/수정할 경우 좋은 성능을 발휘한다!

날짜와 시간 데이터 형식

  1. DATE: YYYY-MM-DD 형식으로 사용
  2. DATETIME: YYYY-MM-DD HH:MM:SS 형식
  3. TIME: HH:MM:SS 형식

기타 데이터 형식

  1. GEOMETRY: 공간 데이터 형식으로 점, 선, 다각형같은 공간 데이터 개체를 저장하고 조작
  2. 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 내장 함수

제어 흐름 함수

프로그램의 흐름 제어

  1. IF(수식, 참, 거짓)
    • 수식의 참 거짓에 따라 2중 분기
    • SELECT IF (100>200, "참", "거짓")
  2. IFNULL(수식1, 수식2)
    • 수식1이 NULL이 아니면 수식 1 반환, NULL이면 수식 2 반환
  3. NULLIF(수식1, 수식2)
    • 수식1과 2가 같으면 NULL 반환, 다를 경우 수식 1 반환

문자열 함수

  1. ASCII(아스키 코드), CHAR(숫자)
    • 아스키 코드 값 또는 숫자에 해당하는 아키코드 값의 문자를 반환
  2. CONCAT(문자열1, 문자열2), CONCAT_WS(구분자, 문자열1, 문자열2, …)
    • 문자열 연결

수학 함수

  1. ABS(숫자): 절댓값 계산
  2. CEILING, FLOOR, ROUND: 올림, 내림, 반올림 계산
  3. POW(숫자1, 숫자2), SQRT(숫자): rjemqwprhq, wprhqrms rPtks

날짜 및 시간 함수

  1. ADDDATE(날짜, 차이), SUBDATE(날짜, 차이)
    • 날짜를 기준으로차이를 더하거나 뺀 날짜 계산
  2. DATE(), TIME(): DATETIME 형식에서 연-월-알 시:분:초 추출

homebdy
homebdy 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람.
comments powered by Disqus