gagamel 5 anni fa
parent
commit
7fac18531a
1 ha cambiato i file con 65 aggiunte e 19 eliminazioni
  1. 65 19
      산출물/3.설계/05.DB-Object/06.DDL/table.sql

+ 65 - 19
산출물/3.설계/05.DB-Object/06.DDL/table.sql

@@ -1,38 +1,84 @@
+/*데이터베이스 생성*/
+CREATE DATABASE style24 DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_0900_ai_ci;
+
+/*유저 생성*/
+create user 'style'@'%' identified by 'tmxkdlf24^@^'; /*스타일24^@^*/
+
+/*권한부여*/
+grant all privileges on style.* to 'style24'@'%';
+
 /**
-collation의 경우 utf8mb4_general_ci 이 기본값이다.
-이 설정을 사용할경우 정렬 속도가 utf8mb4_unicode_ci 설정에 비해 약간 빠르다고는 하는데 (거의 미미하다고 함)
-한글이나 일본어 같은 비 라틴계 언어들에 대해서 조금 어색한 정렬 순서들이 존재한다고 한다.
-때문에 utf8mb4_unicode_ci를 사용하는 것이 더 좋고, 이를 위해서 추가 설정을 해주어야 한다.
+기본 character_set과 collation이 mysql 버전별로 다음과 같다.
+mysql 5.7 > show session variables like '%char%';
++--------------------------+----------------------------------------+
+| Variable_name            | Value                                  |
++--------------------------+----------------------------------------+
+| character_set_client     | utf8                                   |
+| character_set_connection | utf8                                   |
+| character_set_database   | latin1                                 |
+| character_set_filesystem | binary                                 |
+| character_set_results    | utf8                                   |
+| character_set_server     | latin1                                 |
+| character_set_system     | utf8                                   |
+| character_sets_dir       | /MySQL/binaries/5.7.24/share/charsets/ |
++--------------------------+----------------------------------------+
+
+mysql 8.0 > show session variables like '%char%';
++--------------------------+----------------------------------------+
+| Variable_name            | Value                                  |
++--------------------------+----------------------------------------+
+| character_set_client     | utf8mb4                                |
+| character_set_connection | utf8mb4                                |
+| character_set_database   | utf8mb4                                |
+| character_set_filesystem | binary                                 |
+| character_set_results    | utf8mb4                                |
+| character_set_server     | utf8mb4                                |
+| character_set_system     | utf8                                   |
+| character_sets_dir       | /MySQL/binaries/8.0.13/share/charsets/ |
++--------------------------+----------------------------------------+
+
+드디어 기본 character_set과 collation이 지긋지긋한 latin1 (latin1_swedish_ci)에서
+utf8mb4 (utf8mb4_0900_ai_ci)로 변경이 되었고, 모든 작업이 utf8mb4 character_set을 기본으로 동작하게 되었다.
+
+MySQL 8.0의 default collation은 utf8mb4_0900_ai_ci 이고, 이는 다음과 같은 내용을 포함한다
+	* collation의 character set은 utf8mb4 이다. (utf8mb4)
+	* Unicod 9.0의 문자를 표현한다. (0900). emoji 검색 지원
+	* Accent Insensitive Mode로 동작한다. (ai)
+	* Case Insensitive Mode로 동작한다. (ci)
  */
-#캐릭터셋과 COLLATE 확인
+
+-- collation 확인
+show variables like 'c%';
+
+-- 캐릭터셋과 COLLATE 확인
 SELECT @@character_set_database, @@collation_database;
 
 ALTER DATABASE style24
     DEFAULT CHARACTER SET utf8mb4
-    DEFAULT COLLATE utf8mb4_unicode_ci
+    DEFAULT COLLATE utf8mb4_0900_ai_ci
 ;
 
-# 테이블 칼럼의 캐릭터셋과 COLLATE 확인
+-- 테이블 칼럼의 캐릭터셋과 COLLATE 확인
 SHOW FULL COLUMNS FROM tb_user;
 
 SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name,
-              "` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
+              "` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;") as _sql
 FROM   information_schema.TABLES a
 WHERE  table_schema = 'style24'
 AND    table_name like 'tb%'
 ;
 
-ALTER TABLE `style24`.`tb_af_link` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_common_code` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_menu` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_menu_access_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_menu_role` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_supply_company` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_user` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_user_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_user_login_fail` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_user_login_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-ALTER TABLE `style24`.`tb_user_menu` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+ALTER TABLE `style24`.`tb_af_link` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_common_code` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_menu` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_menu_access_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_menu_role` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_supply_company` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_user` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_user_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_user_login_fail` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_user_login_hst` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
+ALTER TABLE `style24`.`tb_user_menu` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
 
 ################################################################################
 #시퀀스