DDL(Data Define Language)
CREATE / ALTER / DROP
1) 데이터 베이스 생성 구문
> CREATE DATABASE [database name] CHARACTER SET [character set];
> CREATE DATABASE mysql_test CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2) 테이블 작성/변경/삭제
Syntax
CREATE TABLE [table] (column1, column2 …)
ALTER TABLE [table] ADD [column][datatype]
DROP TABLE [table];
DML(Data Manipulation Language) : 데이터를 조작하는 명령
INSERT / DELETE / UPDATE
Syntax
INSERT INTO [table] VALUES (value1, value2, value3…)
SELECT * FROM [table];
DELETE FROM [table] WHERE [condition]
UPDATE [table] SET [column]=[value] WHERE [condition]
utf8mb4
Emoji같은 글자들은 utf-8 인코딩 되는 경우 글자당 4bytes까지 필요하다. 하지만 기존 MySQL의 utf-8 필드의 경우 글자당 최대 3bytes 까지만 지원하는 한계점이 있다. 때문에 MySQL database에서 utf8mb4 설정을 해두지 않으면 해당 글자들이 포함 된 텍스트가 입력되었을 때 제대로 저장을 하지 못하고 문자가 깨져버리는 사태가 발생한다. 따라서 utf8mb4를 쓰도록 하자.
collation
database에서 문자열을 정렬할 때 어떤 문자들이 먼저 올지를 결정하는 기준을 말한다.collation의 경우 utf8mb4_general_ci 가 기본값이다. 이 설정을 사용할 경우 정렬 속도가 utf8mb4_unicode_ci 설정에 비해 약간 빠르다고는 하지만 미미한 수준이라고 하며 한글이나 일본어같은 비라틴계 언어들에 대해서 조금 어색한 정렬 순서가 존재한다고 한다. 따라서 utf8mb4_unicode_ci를 사용하는것이 더 좋고, 이를 위해서 추가 설정을 해주어야 한다.
변경된 설정 확인하기
SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name
[MySql] Workbench Backup & Restore (0) | 2023.01.01 |
---|---|
[MySql] Workbench vs DataGrip - part 2 (0) | 2023.01.01 |
[MySql] Workbench vs DataGrip - part 1 (0) | 2023.01.01 |
[MySQL] User Account CRUD (0) | 2023.01.01 |
[Mac OS] MySQL Install & Setting (0) | 2022.12.31 |