home강의 홈으로
Section 3. 데이터 조작하기
Lesson 3. 자료형 (+ 예제 데이터)

📺 참고 영상 보기

02

1. 숫자 자료형

️🔗 정수

자료형 바이트 SIGNED UNSIGNED
TINYINT 1 -128 ~ 127 0 ~ 255
SMALLINT 2 -32,768 ~ 32,767 0 ~ 65,535
MEDIUMINT 3 -8,388,608 ~ 8,388,607 0 ~ 16,777,215
INT 4 -2,147,483,648 ~ 2,147,483,647 0 ~ 4,294,967,295
BIGINT 8 -2^63 ~ 2^63 - 1 0 ~ 2^64 - 1


️🔗 고정 소수점(Fixed Point) 수

  • 좁은 범위의 수 표현 가능, 정확한 값
자료형 설명 범위
DECIMAL( s, d ) 실수 부분 총 자릿수( s ) & 소수 부분 자릿수 ( d ) s 최대 65


️🔗 부동 소수점(Floating Point) 수

  • 넓은 범위의 수 표현 가능, 정확하지 않은 값 (일반적으로 충분히 정확)
자료형 표현 범위
FLOAT -3.402...E+38 ~ -1.175...E-38 , 0 , 1.175...E-38 ~ 3.402...E+38
DOUBLE -1.797...E+308 ~ -2.225E-308 , 0 , 2.225...E-308 ~ 1.797...E+308




2. 문자 자료형

️🔗 문자열

  • 위 링크에서 Storage Required 관련 표 비교
자료형 설명 차지하는 바이트 최대 바이트
CHAR( s ) 고정 사이즈 (남는 글자 스페이스로 채움) s (고정값) 255
VARCHAR ( s ) 가변 사이즈 실제 글자 수[최대 s] + 1 [글자수 정보] 65,535
  • 검색시 CHAR가 더 빠름
  • VARCHAR 컬럼 길이값이 4글자보다 적을 경우 CHAR로 자동 변환

️🔗 텍스트

자료형 최대 바이트 크기
TINYTEXT 255
TEXT 65,535
MEDIUMTEXT 16,777,215
LONGTEXT 4,294,967,295




3. 시간 자료형

️🔗 참고페이지

자료형 설명 비고
DATE YYYY-MM-DD
TIME HHH:MI:SS HHH: -838 ~ 838까지의 시간
DATETIME YYYY-MM-DD HH:MI:SS 입력된 시간을 그 값 자체로 저장
TIMESTAMP YYYY-MM-DD HH:MI:SS MySQL이 설치된 컴퓨터의 시간대를 기준으로 저장
  • 시간 데이터를 가감없이 기록할 때 DATETIME
  • 시간 자동기록, 국제적인 서비스를 할 경우 TIMESTAMP 사용







앞으로의 예제들에서 사용할 테이블


CREATE TABLE sections ( section_id INT AUTO_INCREMENT PRIMARY KEY, section_name CHAR(3) NOT NULL, floor TINYINT NOT NULL ); INSERT INTO sections (section_name, floor) VALUES ('한식', 2), ('분식', 2), ('중식', 3), ('일식', 3), ('양식', 3), ('카페', 1), ('디저트', 1); CREATE TABLE businesses ( business_id INT AUTO_INCREMENT PRIMARY KEY, fk_section_id INT NOT NULL, business_name VARCHAR(10) NOT NULL, status CHAR(3) DEFAULT 'OPN' NOT NULL, can_takeout TINYINT DEFAULT 1 NOT NULL ); INSERT INTO businesses (fk_section_id, business_name, status, can_takeout) VALUES (3, '화룡각', 'OPN', 1), (2, '철구분식', 'OPN', 1), (5, '얄코렐라', 'RMD', 1), (2, '바른떡볶이', 'OPN', 1), (1, '북극냉면', 'OPN', 0), (1, '보쌈마니아', 'OPN', 1), (5, '에그사라다', 'VCT', 1), (6, '달다방', 'OPN', 1), (7, '마카오마카롱', 'OPN', 1), (2, '김밥마라', 'OPN', 1), (7, '소소스윗', 'OPN', 1), (4, '사사서셔소쇼스시', 'VCT', 1), (3, '린민짬뽕', 'CLS', 1), (7, '파시조아', 'OPN', 1), (1, '할매장국', 'CLS', 0), (5, '노선이탈리아', 'OPN', 1), (6, '커피앤코드', 'OPN', 1), (2, '신림동백순대', 'VCT', 1); CREATE TABLE menus ( menu_id INT AUTO_INCREMENT PRIMARY KEY, fk_business_id INT NOT NULL, menu_name VARCHAR(20) NOT NULL, kilocalories DECIMAL(7,2) NOT NULL, price INT NOT NULL, likes INT DEFAULT 0 NOT NULL ); INSERT INTO menus (fk_business_id, menu_name, kilocalories, price, likes) VALUES (5, '물냉면', 480.23, 8000, 3), (8, '아메리카노', 16.44, 4500, 6), (17, '고르곤졸라피자', 1046.27, 12000, 12), (6, '보쌈', 1288.24, 14000, 2), (15, '장국', 387.36, 8500, -1), (17, '까르보나라', 619.11, 9000, 10), (9, '바닐라마카롱', 160.62, 1500, 4), (16, '백순대', 681.95, 11000, 24), (6, '마늘보쌈', 1320.49, 16000, 7), (16, '양념순대볶음', 729.17, 12000, 0), (14, '단팥빵', 225.88, 1500, 13), (1, '간짜장', 682.48, 7000, 3), (9, '뚱카롱', 247.62, 2000, 8), (5, '비빔냉면', 563.45, 8000, 4), (10, '참치김밥', 532.39, 3000, 0), (2, '치즈떡볶이', 638.42, 5000, 15), (11, '플레인와플', 299.31, 6500, 2), (2, '찹쌀순대', 312.76, 3000, -4), (15, '육개장', 423.18, 8500, 2), (4, '국물떡볶이', 483.29, 4500, 1), (10, '돈가스김밥', 562.72, 4000, 0), (1, '삼선짬뽕', 787.58, 8000, 32), (11, '수플레팬케익', 452.37, 9500, 5), (4, '라볶이', 423.16, 5500, 0), (8, '모카프라푸치노', 216.39, 6000, 8), (14, '옛날팥빙수', 382.35, 8000, 2); CREATE TABLE ratings ( rating_id INT AUTO_INCREMENT PRIMARY KEY, fk_business_id INT NOT NULL, stars TINYINT NOT NULL, comment VARCHAR(200) null, created timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ); INSERT INTO ratings (fk_business_id, stars, comment, created) VALUES (2, 4, '치떡이 진리. 순대는 별로', '2021-07-01 12:30:04'), (16, 3, '그냥저냥 먹을만해요', '2021-07-01 17:16:07'), (14, 5, '인생팥빵. 말이 필요없음', '2021-07-03 11:28:12'), (5, 3, '육수는 괜찮은데 면은 그냥 시판면 쓴 것 같네요.', '2021-07-04 19:03:50'), (11, 4, '나오는데 넘 오래걸림. 맛은 있어요', '2021-07-04 13:37:42'), (9, 2, '빵집에서 파는 마카롱이랑 비슷하거나 못합니다.', '2021-07-06 15:19:23'), (16, 5, '신림에서 먹던 맛 완벽재현', '2021-07-06 20:01:39');

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] MySQL 3-3

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?