데이터베이스 생성 및 삭제
데이터 베이스 생성
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';
  | 
데이터베이스 사용하기
자료형
숫자 자료형
정수형
| 자료형 | Byte | SIGNED | UNSIGNED | 
|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 | 
| SMALLINT | 2 | -32,768 ~ 32,767 | 0 ~ 65,535 | 
| MEDIUMINT | 3 | -8,388,608 ~ 8,338,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 | 
고정 소수점 : 정확한 값 표현
- DICIMAL(실수 부분 총 자릿수’최대 65’, 소수 부분 자릿수)
 
부동 소수점 : 넓은 범위의 수, 부정확하지만 일반적으로는 충분히 정확하다.
문자 자료형
문자열
| 자료형 | 설명 | 최대 바이트 | 
|---|
| CHAR(s) | 고정 사이즈 | 255 | 
| VARCHAR(s) | 가변 사이즈 | 65,535 | 
비교
| Value | CHAR(4) | StorageRequired | VARCHAR(4) | StorageRequired | 
| ’’ | ‘____’ | 4bytes | ’’ | 1byte | 
| ‘ab’ | ‘ab__’ | 4bytes | ‘ab’ | 3byte | 
텍스트
| 자료형 | 최대 바이트 크기 | 
|---|
| TINYTEXT | 255 | 
| TEXT | 65,535 | 
| MEDIUMTEXT | 16,777,215 | 
| LONGTEXT | 4,294,967,295 | 
시간 자료형
| 자료형 | 설명 | 
| DATE | YYYY-MM-DD | 
| TIME | HHH:MI:SS | 
| DATETIME | YYYY-MM-DD HH:MI:SS | 
| TIMESTAMP | YYYY-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 NULL | NULL 입력 불가 | 
| 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’보다 빠르지만, 조건을 지정할 수 없다. 테이블의 모든 레코드를 단순하고 빠르게 삭제한다. 하지만, 테이블의 구조와 속성들은 그대로 유지한다.