본 글은 Fastcampus의 MySQL Database 강의를 수강하며 정리한 내용입니다.
강의 링크
MySQL에서는 해당 저장 공간에서 미리 정해둔 데이터 타입이 아닐 경우, 데이터 저장이 불가능하다.
숫자형 데이터 타입
데이터 타입(정수형) | 바이트 수 | 표현 가능한 숫자 범위 |
---|---|---|
TINYINT | 1 | -128 ~ 127 |
SMALLINT | 2 | -32,768 ~ 32,767 |
MEDIUMINT | 3 | 약 -838백만 ~ 838백만 |
INT | 4 | 약 -21억 ~ 21억 |
BIGINT | 8 | 약 -900경 ~ 900경 |
데이터 타입(실수형) | 바이트 수 | 표현 가능한 숫자 범위 |
---|---|---|
FLOAT | 4 | 소수점 아래 7자리까지 표현 |
DOUBLE | 8 | 소수점 아래 15자리까지 표현 |
문자형 데이터 타입
데이터 타입 | 최대 바이트 수 | 범위 | 특징 |
---|---|---|---|
CHAR(n) | 255 | 1 ~ 255 | 지정 안하면 1 자동 입력 / 고정길이 문자열 저장 |
VARCHAR(n) | 65535 | 1 ~ 65535 | 지정 안하면 사용 불가 / 가변길이 문자열 저장 |
데이터 타입 | 고정 바이트 수 | 특징 |
---|---|---|
TINYTEXT | 255 | 255 바이트의 문자열까지 표현 가능 |
TEXT | 65535 | 65535 바이트의 문자열까지 표현 가능 |
MEDIUMTEXT | 약 천 6백만 | 약 천 6백만 바이트의 문자열까지 표현 가능 |
LONGTEXT | 약 42억 | 약 42억 바이트의 문자열까지 표현 가능 |
알파벳 1자는 1바이트
날짜형 데이터 타입
데이터 타입 | 바이트 수 | 표현 가능 범위 |
---|---|---|
DATE | 3 | 0000-00-00 ~ 9999-12-31 |
DATETIME | 3 | 0000-00-00 00:00:00 ~ 9999-12-31 23:59:59 |
TIME | 4 | -838:59:59 ~ 838:59:59 |
YEAR | 1 | 1901 ~ 2155 |
MySQL에서 데이터를 다루는 방법은 엑셀과 굉장히 유사하다.
숫자형 데이터 기본 특징
문자형 데이터 기본 특징
데이터 타입 간 타입 변환
SELECT CAST(123 AS CHAR(5));
SELECT CONVERT('1004', INT);
SELECT DATE_FORMAT('20211225', '%Y-%m-%d');
테이블이란?
컬럼1 | 컬럼2 | 컬럼3 |
---|---|---|
값 | 값 | 값 |
값 | 값 | 값 |
값 | 값 | 값 |
컬럼(열)
값
로우(행)
데이터베이스의 의미
넓은 의미 : 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터 저장소
좁은 의미 : 테이블을 저장해두는 저정소 (폴더와 비슷한 개념)
생성 순서는 보통의 경우, 데이터베이스를 생성한 후에 특정 데이터 베이스 내에 테이블을 생성한다.
데이터베이스 만들기
CREATE DATABASE [데이터베이스 이름];
데이터베이스 목록보기
SHOW DATABASES;
데이터베이스 사용하기
USE [데이터베이스 이름];
테이블 만들기
CREATE TABLE [테이블 이름] (
[컬럼 이름] [데이터 타입],
[컬럼 이름] [데이터 타입],
...
);
테이블 이름 변경하기
ALTER TABLE [테이블 이름] RENAME [새로운 테이블 이름];
새로운 컬럼 추가하기
ALTER TABLE [테이블 이름] ADD COLUMN [컬럼 이름] [데이터 타입];
기존 컬럼 타입 변경하기
ALTER TABLE [테이블 이름] MODIFY COLUMN [컬럼 이름] [데이터 타입];
기존 컬럼 이름과 타입 변경하기
ALTER TABLE [테이블 이름]
CHANGE COLUMN [컬럼 이름] [새로운 컬럼 이름] [새로운 데이터 타입];
컬럼 지우기
ALTER TABLE [테이블 이름] DROP COLUMN [컬럼 이름];
데이터베이스 지우기
DROP DATABASE [데이터베이스 이름];
테이블 지우기
DROP TABLE [테이블 이름];
테이블 값만 지우기
TRUNCATE TABLE [테이블 이름];
데이터베이스 / 테이블이 존재한다면 지우기
DROP DATABASE IF EXISTS [데이터베이스 이름];
DROP TABLE IF EXISTS [테이블 이름];
데이터 하나 삽입하기
INSERT INTO [테이블 이름] ([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ([컬럼1 값], [컬럼2 값], [컬럼3 값]);
데이터 여러 개 삽입하기
INSERT INTO [테이블 이름] ([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ([컬럼1 값], [컬럼2 값], [컬럼3 값]),
([컬럼1 값], [컬럼2 값], [컬럼3 값]),
...
([컬럼1 값], [컬럼2 값], [컬럼3 값]);
데이터 삭제하기
DELETE FROM [테이블 이름]
WHERE [조건 값];
데이터 수정하기
UPDATE [테이블 이름]
SET [컬럼 이름]=[새 값]
WHERE [조건 값];
CREATE DATABASE pokemon;
USE pokemon;
CREATE TABLE mypokemon (
number INT,
name VARCHAR(20),
type VARCHAR(10)
);
INSERT INTO mypokemon (number, name, type)
VALUES (10, "caterpie", "bug"),
(25, "pikachu", "electric"),
(133, "eevee", "normal");
SELECT *
FROM mypokemon;