MySQL
A piece of cake(讽刺下自己)
NNN年前记的潦草笔记,今天翻到,竟然不知道自己在写什么。查了一下,才知道个大概,好吧,就是常用于建表来指定字段/表/库排序的规则,用得少,不想看,丢了丢了,哈哈哈哈,第一天发奋好好好学习就想丢了,为了我的男神,还是捡起来吧捡起来吧,摘录几个运用做总结吧。
先申明参考链接为:https://www.jianshu.com/p/f8707b8461d3
运用:
1、库级别设置COLLATE的语句如下:
CREATE DATABASE <db_name> DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2、表级别的COLLATE设置,则是在CREATE TABLE的时候加上相关设置语句,例如:
CREATE TABLE (
……
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
3、列级别的设置,则在CREATE TABLE中声明列的时候指定,例如
CREATE TABLE (
‘field1’ VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘’,……
) ……
4、写SQL查询的时候显示声明COLLATE来覆盖任何库表列的COLLATE设置:
SELECT DISTINCT field1 COLLATE utf8mb4_general_ci FROM table1;
SELECT field1, field2 FROM table1 ORDER BY field1 COLLATE utf8mb4_unicode_ci;
- 如果表级别没有设置CHARSET和COLLATE,则表级别会继承库级别的CHARSET与COLLATE。
- 优先级顺序是 SQL语句 > 列级别设置 > 表级别设置 > 库级别设置 > 实例级别设置
- 哈哈哈哈,看下面大佬的吧