#11 MySQL - CREATE TABLE
- CLI를 이용해 MySQL을 다룰것이다.
1. 데이터베이스 만들기
[데이터베이스 생성]
CREATE DATABASE LIBRARY;
[데이터베이스 삭제]
DROP DATABASE LIBRARY;
- 데이터베이스 목록을 확인한 후 생성한 LIBRARY 데이터베이스 안으로 들어가보자
- 데이터베이스 안으로 들어가야 거기에서 테이블을 만들 수 있다.
[데이터베이스 목록 확인]
SHOW DATABASES;
[데이터베이스 안으로 들어가기]
USE LIBRARY; -> USE [데이터베이스 이름];
2. 테이블 만들기
- LIBRARY 데이터베이스의 테이블 목록을 확인해보자(당연히 없을 것이다.)
SHOW TABLES;
- 본격적으로 TABLE을 만들어보자
CREATE TABLE [테이블 이름] (
[필드1 이름] [타입] [부가조건],
[필드2 이름] [타입] [부가조건],
...
primary key ([필드이름])
);
===================================================================
CREATE TABLE FRUIT (
ID BIGINT AUTO_INCREMENT,
NAME VARCHAR(20),
PRICE INT,
STOCKED_DATE DATE,
PRIMARY KEY (ID)
);
- BIGINT는 java의 Long 타입과 동일하다. / AUTO_INCREMENT는 부가조건이다.
- AUTO_INCREMENT가 설정되면 데이터를 명시적으로 넣지 않아도 1부터 +1씩 증가해 자동으로 INSERT 된다.
- PRIMARY KEY = 유일키
cf)
[테이블 삭제]
DROP TABLE [테이블명];
3. MySQL 데이터 타입
(1). 정수타입
- TINYINT : 1바이트 정수 = JAVA의 byte
- INT : 4바이트 정수 = JAVA의 int
- BIGINT : 8바이트 정수 = JAVA의 long
→ ID는 21억건을 넘을 가능성이 있으므로 가장 큰 BIGINT를 사용하는게 좋다.
(2). 실수타입
- DOUBLE : 8바이트 정수
- DECIMAL(A, B) : 소수점을 B개 가지고 있는 전체 A 자릿수 실수 ex) Decimal(4,2) = 12.23
cf) postgreSQL의 numeric(7,3)과 동일한 의미 = 전체 자리는 7자리, 그 중 소수점은 3자리를 의미
(3). 문자열 타입
- CHAR(n) : n자리 글자가 들어갈 수 있는 문자열 → 무조건 n자리의 글자가 고정되어 들어간다.
- VARCHAR(n) : 최대 n자리 글자가 들어갈 수 있는 문자열 → n자리 범위 내의 글자는 자유롭게 들어갈 수 있다.
(4). 날짜, 시간 타입
- DATE : 날짜, yyyy-MM-dd
- TIME : 시간, HH:mm:ss
- DATETIME : 날짜와 시간을 합친 타입, yyyy-MM-dd HH:mm:ss
4. DDL(데이터 정의어)
- 오늘 사용한 SQL을 Data Definition Language이라고 한다.