Post

[MySQL] 기본 조작하기 _ DB, TABLE, 데이터, 자료형

데이터베이스 생성 및 삭제

데이터 베이스 생성

1
2
3
4
$ CREATE DATABASE 'database_name';
-- 또는
$ CREATE SCHEMA 'database_name;'

‘CREATE SCHEMA’ 명령어와 ‘CREATE DATABASE’명령어는 ‘MySQL’에서 새로운 데이터베이스를 생성하는 기능을 수행한다. 그러나 ‘CREATE SCHEMA’ 명령어는 데이터베이스를 생성하는 것뿐만 아니라 데이터베이스 스키마(구조)를 정의하는 데 좀 더 널리 사용되는 SQL 표준 용어 이다.

‘CREATE DATABASE’ 명령어는 단순히 새로운 데이터베이스를 생성하는 데 사용되는 반면 ‘CREATE SCHEMA’ 명령어는 데이터베이스뿐만 아니라 해당 데이터베이스의 초기 구조(테이블, 뷰, 인덱스 등)를 정의하는 데 사용될 수 있다. 즉, 기능적으로는 동일하지만 ‘CREATE SCHEMA’는 좀 더 광범위한 사용이 가능하다.

문자셋과 정렬

1
$ CREATE SCHEMA `database_name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
항목설명
utf8mb4한글을 포함한 전세계의 문자와 이모티콘 사용이 가능하다.
utf8mb4_general_ci가장 정확하지는 않지만 정렬 속도가 빠르다.
utf8mb4_bin이진 비교를 수행하는 ‘utf8mb4’의 정렬 규칙이다. 문자열을 정확히 비교한다.

더많은 설정 알아보기

데이터베이스 삭제

1
$ DROP DATABASE 'database_name';

데이터베이스 사용하기

1
$ use 'database_name';

자료형

숫자 자료형

정수형

자료형ByteSIGNEDUNSIGNED
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT3-8,388,608 ~ 8,338,6070 ~ 16,777,215
INT4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
BIGINT8-2^63 ~ 2^63-10 ~ 2^64-1

고정 소수점 : 정확한 값 표현

  • DICIMAL(실수 부분 총 자릿수’최대 65’, 소수 부분 자릿수)

부동 소수점 : 넓은 범위의 수, 부정확하지만 일반적으로는 충분히 정확하다.

  • FLOAT
  • DOUBLE (더 넓은 범위)

문자 자료형

문자열

자료형설명최대 바이트
CHAR(s)고정 사이즈255
VARCHAR(s)가변 사이즈65,535

비교

ValueCHAR(4)StorageRequiredVARCHAR(4)StorageRequired
’’‘____’4bytes’’1byte
‘ab’‘ab__’4bytes‘ab’3byte

텍스트

자료형최대 바이트 크기
TINYTEXT255
TEXT65,535
MEDIUMTEXT16,777,215
LONGTEXT4,294,967,295

시간 자료형

자료형설명
DATEYYYY-MM-DD
TIMEHHH:MI:SS
DATETIMEYYYY-MM-DD HH:MI:SS
TIMESTAMPYYYY-MM-DD HH:MI:SS

테이블 생성 및 수정, 삭제하기

테이블 생성

1
2
3
4
5
CREATE TABLE tablename (
  id INT,
  p_name VARCHAR(10),
  p_age TINYINT
);

제약 조건

제약의미
AUTO_INCREMENT새 행 생성시 자동으로 1씩 증가
PRIMARY KEY중복 입력 불가, NULL 불가, 기본키 설정, 테이블당 하나만 가능
UNIQUE중복 입력 불가
NOT NULLNULL 입력 불가
UNSIGNED양수만 가능(숫자 타입)
DEFAULT값 입력이 없을시 기본값 설정

테이블 수정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- 테이블 명 변경
$ ALTER TABLE tablename RENAME TO tablename2;

-- 컬럼 자료형 변경
$ CHANGE COLUMN id id TINYINT;

-- 컬럼명 변경
$ CHANGE COLUMN p_name p_nickname VACHAR(10);

-- 컬럼 제거
$ DROP COLUMN age;

-- 컬럼 추가
$ ADD COLUMN birthday DATE AFTER p_name;

테이블 삭제

1
$ DROP TABLE tablename2;

데이터 추가 및 변경, 삭제

데이터 추가

1
$ INSET INTO tablename (id, p_name, p_age) VALUES (1, 'siru', 20);

데이터 변경

1
$ UPDATE tablename SET columnName = 'update' WHERE 조건

데이터 삭제

1
2
3
4
$ DELETE FROM tablename WHERE 조건;

-- 테이블 초기화
$ TRUNCATE tablename;

TRUNCATE

테이블의 모든 데이터를 빠르게 제거하는 데 사용된다. 해당 명령어는 ‘DELETE’보다 빠르지만, 조건을 지정할 수 없다. 테이블의 모든 레코드를 단순하고 빠르게 삭제한다. 하지만, 테이블의 구조와 속성들은 그대로 유지한다.

This post is licensed under CC BY 4.0 by the author.