MySQL

MySQL 데이터 타입 알아보기

jiyoon12 2025. 5. 8. 17:22
  1. 숫자 타입 : INT, BIGINT(정수형),  FLOAT, DOUBLE(실수형) 등
  2. 문자열 타입 : VARCHAR(가변길이), CHAR(고정길이), TEXT, BLOB 등
  3. 날짜/시간 타입 : DATE(날짜), TIME(시간), DATETIME, TIMESTAMP(날짜와 시간) 등
  4. 불리언 타입 : BOOLEAN, BOOL 등  
  • 숫자 타입은 정수형과 실수형으로 구분되며, 정수형은 소수점 이하의 값을 저장하지 않고 실수형은 소수좀 이하의 값을 저장한다.
  • 문자열 타입은 고정길이와 가변길이로구분되며, 고정길이는 저장할 데이터의 길이가 일정하고 가변길이는 저장할 데이터의 길이가 가변적이다.
  • TEXT는 대부분의 문자열을 저장하는 데 사용하고 문자 집합과 관련된 처리를 한다.
  • BLOB은 이진 데이터를 저장하는 데 사용한다. 최대 크기는 TEXT와 동일하지만 문자 집합에 영향을 받지 않는다.
  • 날짜/시간 타입은 날짜, 시간, 날짜와 시간 등으로 구분된다.
  • 불리언 타입은 참(TRUE)과 거짓(FALSE) 두 가지 값을 저장할 수 있다.

  • 학생 테이블 설계하기
-- 대표적인 데이터 타입 사용해보기
-- 테이블 생성()
create database school;
use school;

CREATE TABLE student(
	student_id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    grade TINYINT NOT NULL,
    major VARCHAR(50),
    admission_date DATE NOT NULL,
    notes TEXT 
);

DESC student;

-- DML
SELECT * FROM student;

INSERT INTO student(student_id, name, grade, major, admission_date, notes)
	VALUES(1001,'김지영',1,'컴퓨터공학','2025-09-01','프로그로밍에 뛰어남');
    
INSERT INTO student(student_id, name, grade, major, admission_date, notes)
	VALUES(1002,'이민수',2,'수학','2025-12-05',NULL);

-- 테이블에 데이터 전체 삭제
-- DELETE FROM student;

INSERT INTO student(student_id, name, grade, major, admission_date, notes)
	VALUES(1001,'김지영',1,'컴퓨터공학','2025-09-01','프로그로밍에 뛰어남'),
		  (1002,'이민수',2,'수학','2024-12-05',NULL),
		  (1003,'박소연',3,'물리학','2023-09-01','양자역학에 관심이 많음');

  • 과목 테이블 설계하기
-- 과목 테이블 설계
create table subject(
	subject_id int primary key,
    subject_code char(4) not null,
    subject_name varchar(50) not null,
    professor varchar(20) not null,
    department_code char(2) not null,
	created_at datetime not null
);          

desc subject;
select * from subject;

insert into subject(subject_id,subject_code,subject_name,professor,department_code,created_at)
values(1,'CS01','데이터베이스','김영희','CS','2023-09-01 10:05:01');

insert into subject(subject_id,subject_code,subject_name,professor,department_code,created_at)
values(2,'MA01','미적분학','김철수','MA','2023-09-01 10:05:01');

  • 수강 기록 테이블 설계하기
-- 수강 기록 테이블 생성
create table enrollment(
enrollment_id int primary key,
student_id int not null,
subject_id int not null,
score decimal(5,2) not null,
enrolled_at datetime not null
);

select * from enrollment;

insert into enrollment(enrollment_id,student_id,subject_id,score,enrolled_at)
values(1,1001,1,85.50,'2023-09-01 12:00:00'),
	   (2,1002,1,100.00,'2023-09-02 11:00:00');
       
insert into enrollment(enrollment_id,student_id,subject_id,score,enrolled_at)
values(3,1001,2,75.50,'2023-09-10 12:00:00');

'MySQL' 카테고리의 다른 글

MySQL - WHERE 조건 절과 SELECT 구문  (0) 2025.05.09
MySQL - INSERT 구문과 제약 사항 백틱( `)  (0) 2025.05.08
MySQL 실습 해보기  (0) 2025.05.07
SQL (DCL 데이터 제어 언어)  (0) 2025.05.07
SQL(DML 데이터 조작언어)  (0) 2025.05.07