首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 的字符集与排序规则

字符集 uft8 与 utf8mb4 其实指的是 MySQL 中的字符集,那到底什么是字符集呢? 概念 很多人常常会把字符、字符集、字符编码的概念混为一谈,今天我们仔细来看看。 何为字符?...准确概述来说,字符编码方式是用一个多个字节的二进制形式表示字符集中的一个字符。每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,可能会产生不同的二进制形式。...既然我们经知道了 utf8 与 utf8mb4 都是一种字符集,那两种到底有什么区别呢? utf8 MySQL 在创立时使用的字符集就是 utf8。...; o 存在校对规则命名约定:以其相关的字符集名开始,中间包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)_bin(二元)结束。...有兴趣的话可以访问我的博客或者关注我的公众号、头条号,说不定会有意外的惊喜。 https://death00.github.io/

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    又谈mysql,面试官问表结构设计要注意啥?

    超出 65536 个字符时,可以使用更大的字符类型 TEXT BLOB,两者最大存储长度为 4G,其区别是 BLOB 没有字符集属性,纯属二进制存储。...字符集 常见的字符集有 GBK、UTF8,一般我们会把默认字符集设置为 UTF8。...但是某些 emoji 表情字符无法在 UTF8 字符集下存储,所以推荐把 MySQL 的默认字符集设置为 UTF8MB4。 修改列字符集的命令应该使用 ALTER TABLE ......才能将已经存在的列的字符集进行修改。...所以,当大规模并发访问时,由于热点资源竞争。导致性能不如 DATETIME。 三范式与反三范式 第一范式(1NF) 概念:数据表的每一列都要保持它的原子特性,也就是列不能再被分割。

    74820

    Mysql常见错误提示及解决方法

    1115:设置的字符集在 MySQL 并没有支持。 1116:打开的数据表太多。 1129:数据库出现异常,请重启数据库。 1130:连接数据库失败,没有连接数据库的权限。...1141:当前用户无权访问数据库。 1142:当前用户无权访问数据表。 1143:当前用户无权访问数据表中的字段。...1146:数据表缺失,请恢复备份数据 1147:未定义用户对数据表的访问权限。 1149:SQL 语句语法错误。 1158:网络错误,出现读错误,请检查网络连接状况。...1193:不支持字符集限定(SET NAMES)。 1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数重启数据库。 1205:加锁超时。...1217:外键约束检查失败,删除修改主表记录失败。 1226:当前用户使用的资源已超过所允许的资源,请重启数据库重启服务器。 1227:权限不足,您无权进行此操作。

    2K20

    windows微信公众号采集系统

    mitmdump 启动成功后,下载mitm证书:访问 http://mitm.it/ 点击windows,下载安装。...2. windows本地代理: windows10本地: 设置 ==> 网络 ==> 代理 ==> 手动设置代理 中打开使用代理并将IP地址修改为127.0.0.1 端口修改为默认8080修改后的端口...数据库 mysql: 下载完成之后启动服务,修改项目settings配置文件,创建数据库weixin_spider,字符集utf8mb4。...本地模块 参照 requirements文件安装 python库,如有遗漏,根据提示自行安装 准备工作 首先确定使用环境安装完毕,然后请确保端口(5000、8080)不冲突。.../addons.py --ssl-insecure 启动测试 准备工作完成之后,访问 http://127.0.0.1:5000/ 。 添加公众号,该公众号需要微信已经关注过。

    1.3K20

    MySQL中的12个SQL编写规范

    保持SQL编写的一致性,有助于团队成员之间的有效协作,并支持数据库系统扩展,以应对日益增长的数据量和用户访问。1. 始终使用EXPLAIN语句开发SQL查询时,养成使用EXPLAIN的习惯至关重要。...外键可以帮助维护表与表之间的关系,并防止不一致无效的数据关联。并发控制:InnoDB使用多版本并发控制(MVCC)来处理并发访问。...这意味着它可以在不同的事务之间提供高度的隔离性,避免数据的冲突和锁竞争。崩溃恢复:InnoDB提供了崩溃恢复机制,可以在数据库发生故障断电后自动进行恢复。...将UTF8作为数据库和表的字符集设计数据库中的库和表时选择UTF8(更准确地说是UTF8MB4)作为字符集,主要原因如下:国际化支持:UTF8MB4字符集能够支持全球大多数语言的文字,包括各种特殊字符、...兼容性:UTF8MB4是UTF8的超集,它向下兼容UTF8,意味着使用UTF8MB4不会影响原有的UTF8数据,同时还能支持4字节的Unicode字符,确保了数据的完整性和广泛适用性。

    13710

    MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)

    3、选择数据库 创建数据库后,您可以使用以下命令来选择切换到该数据库: USE mydatabase; 4、设置数据库字符集 在创建数据库时,您还可以为其设置字符集。...例如,如果要使用UTF-8字符集,可以使用以下命令: CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci...例如,要更改数据库的字符集,可以使用以下命令: ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 这将更改现有数据库的字符集和排序规则...使用此语句,您可以添加、删除修改列,更改表的字符集排序规则,重命名表,以及进行其他结构更改。...例如: ALTER TABLE students CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 这将更改表的字符集utf8mb4

    41410

    MySQL中一定要遵守的12个SQL规范

    外键可以帮助维护表与表之间的关系,并防止不一致无效的数据关联。 并发控制:InnoDB 使用多版本并发控制(MVCC)来处理并发访问。...这意味着它可以在不同的事务之间提供高度的隔离性,避免数据的冲突和锁竞争。 崩溃恢复:InnoDB 提供了崩溃恢复机制,可以在数据库发生故障断电后自动进行恢复。...将 UTF8 作为数据库和表的字符集设计数据库中的库和表时选择 UTF8(更准确地说是 UTF8MB4)作为字符集,主要原因如下: 国际化支持:UTF8MB4 字符集能够支持全球大多数语言的文字,包括各种特殊字符...兼容性:UTF8MB4 是 UTF8 的超集,它向下兼容 UTF8,意味着使用 UTF8MB4 不会影响原有的 UTF8 数据,同时还能支持 4 字节的 Unicode 字符,确保了数据的完整性和广泛适用性...未来扩展性:UTF8 是一种可扩展的字符集,它支持 Unicode 编码,并具备适应未来字符需求的能力。 12.

    8910

    【笔记】Mysql 数据库操作规范

    [FAQ-2-01] 库表字符集默认使⽤ UTF8MB4,特殊情况可以使用 UTF8 等其他字符集。[FAQ-2-02] 所有表都需要添加注释,除主键外的其他字段都需要增加注释。...业务部⻔推⼴活动上线新功能,必须提前通知 DBA 进行服务和访问量评估,并留出必要时间以便 DBA 完成扩容。...【FAQ-2-02】 库表字符集使用 UTF8MB4,特殊情况可以使用 UTF8 等其他字符集。...a)UTF8 字符集存储汉字占用 3 个字节,UTF8MB4 字符集存储汉子占用 4 个字节,存储英⽂字符均只占⽤一个字节。...b)UTF8 和 UTF8MB4 统一而且通用,不会出现转码出现乱码风险。 c)EMOJ 等表情符号的存储需求,只能使用 UTF8MB4 字符集。 d) 不同字符集的字段关联时无法使用索引。

    1.4K20

    Docker安装solo博客部署到云服务器教程

    使用 MySQL 手动建库(库名 solo ,字符集使用 utf8mb4 ,排序规则 utf8mb4_general_ci ): create database solo default character...set utf8mb4 collate utf8mb4_general_ci; create user 'root'@'127.0.0.1' identified by '123456'; grant...,如果反代服务启用了 HTTPS 这里也需要改为 https –server_host:最终访问域名公网 IP,不要带端口 –server_port:最终访问端口,使用浏览器默认的 80 或者 443...listen_port,我这边设置监听的端口号是6000,官方给的是8080端口,因为我这边服务器上的8080端口已经被Tomcat占用了,所以放行 6000 端口的防火墙,也可以自定义其他端口号(在不冲突的情况下...可以看到,主题还是比较多的,也可以在设置移动端的皮肤,添加看板娘之类的。 ? 有关更细致的对solo博客的了解请访问官网。

    1.5K20

    12种mysql常见错误总结 +分析示例

    核心原则:① select、havingorder by后面存在的非聚合列必须全部在group by中存在; ② order by后面的列必须是在select后面存在的 问题解决方案: ### 第一种方案...② character_set_connection -- 用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置 ③ character_set_database...### 修改配置文件 [mysql] default-character-set=utf8mb4 [mysqld] character_set_server=utf8mb4 #设置字符集 ###...修改数据库字符集 ALTER database 数据库名 CHARACTER SET utf8mb4; 修改完数据库字符集,需要重启mysql数据库;且只对新表有作用 ### 修改表的字符集 ALTER..., 2 rows affected (0.00 sec) 注意:对业务需求没有影响可以使用,假如存在对数据的统计等等有负面影响则推荐使用第一种方案,程序做兼容判断处理 (可以推荐使用) 12、未知的字段名

    1.9K21

    MySQL行格式原理深度解析

    这是因为不同的字符集可能需要不同数量的字节来表示一个字符。例如,在utf8mb4字符集中,一个字符可能需要最多4个字节。...一个字符可能由多个字节组成,这取决于使用的字符集utf8mb4字符集:在utf8mb4字符集中,一个字符最多可以占用4个字节。...在utf8mb4字符集中,一个字符最多可以占用4个字节。 因此,如果我们想要存储尽可能多的字符,我们需要将65535个字节除以4,得到的结果是16383.75。...多字节字符集:使用多字节字符集(如 utf8mb4)时,每个字符可能需要多达 4 个字节的存储空间。...避免歧义:NULL在SQL中是一个特殊的值,表示“未知“不存在”。它不同于空字符串0,而且在进行比较和计算时,NULL会导致一些意想不到的结果。避免使用NULL可以减少这种歧义。

    50910

    MySQL数据库基础练习系列7、日志记录系统

    数据库环境 MySQL版本:5.7.31-log 数据库字符集,所有数据库通用字符集与排序规则,支持中文数据。...字符集:utf8 排序规则:utf8_general_ci 使用工具:Navicat Premium 15,可以在下面的连接中下载 https://download.csdn.net/download...日志分类管理:定义不同的日志类型,如系统日志、错误日志、访问日志等,方便后续查询和筛选。 日志记录:允许用户系统自动记录日志信息,包括日志内容、时间戳、所属分类等。...日志分析:对日志数据进行统计分析,生成报表图表,帮助用户更好地理解系统行为和性能。...如果存在传递依赖,那么应该考虑将这个非主键列分离出去,形成新的表,并通过主键外键与原表进行关联。

    5810

    MySQL 学习经验、学习资源的分享

    字符集介绍 在新建数据库时,我们需要选择字符集以及排序规则,在视频教程中选用的是 utf8 字符集,而村民在选用的是 utf8mb4 字符集。那么这两者这么像,又有什么区别呢?...在一般情况下,使用 utf8 字符集基本足够且更加节省空间,那么为什么还要选用 utf8mb4 字符集呢?...utf8mb4 字符集相较于 utf8 字符集来说可以另外支持一些特殊的字符,比如说 emoji 表情。...当你的数据库需要存储用户评论这种可能会包含 emoji 表情的数据时,我们就需要选用 utf8mb4 字符集。...在实际中,我们可以将数据库的字符集设置为 utf8,而只将需要保存 emoji 表情的数据表甚至某些字段设置为 utf8mb4 字符集即可,这样在一定程度上可以节省空间。

    83610

    ①【数据库操作】 MySQL数据库的查询、创建、删除、使用。

    SQL通用语法 : ①SQL语句可以单行多行书写,以分号;结尾。 ②SQL语句可以使用空格 或者缩进 来增强语句的可读性。 ③MySQL数据库的SQL语句不区分大小写,关键字建议大写。...用来定义数据库对象(数据库,表,字段) ②DML:数据操作语言,用来对数据库表中字段进行增删改 ③DQL:数据查询语言,用来查询数据库中表的记录 ④DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限...DATABASES; ②查询当前数据库 SELECT DATABASE(); 创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集...utf8mb4 CREATE DATABASE `SQLstudy1` DEFAULT CHARSET utf8mb4; 删除数据库 DROP DATABASE [IF EXISTS] 数据库名; --...演示: -- 删除数据库SQLstudy1 -- 若数据库SQLstudy1已经被删除不存在,执行下述语句会报错: -- 错误代码: 1008 Can't drop database 'sqlstudy1

    33720

    01 . Mysql简介及部署

    数据库访问技术:不同的程度设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行sql语句,进行数据库管理,主要的数据库访问技术有: # ODBC:(open database connectivity...# DCL语句 数据库控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) # 用来设置更改数据库角色权限的语句,只有sysadmin,dbcreator,db_owner...# DQL语句 数据库查询语言(select) 字符集 查看目前mysql所支持的所有字符集 SHOW CHARACTER SET; SHOW CHARACTER SET LIKE '...大多数字符集都有几个排序规则。...用户拥有所有数据库所有权限 grant all on *.* to 'test'@'%' identified by 'ZHOUjian.22'; flush privileges; Mysql源码部署 卸载Mysql冲突包并安装依赖包

    62950

    MySQL开发规范与使用技巧总结

    ENUM类型在需要修改增加枚举值时,需要在线DDL,成本较高;ENUM列值如果含有数字类型,可能会引起默认值混淆。 9.使用VARBINARY存储大小写敏感的变长字符串二进制内容。...c)建议用0、特殊值空串代替NULL值。 MySQL使用技巧 1.将大字段、访问频率低的字段拆分到单独的表中存储,分离冷热数据。...9.表字符集使用UTF8,必要时可申请使用UTF8MB4字符集。 a)UTF8字符集存储汉字占用3个字节,存储英文字符占用一个字节。 b)UTF8统一而且通用,不会出现转码出现乱码风险。...c)如果遇到EMOJ等表情符号的存储需求,可申请使用UTF8MB4字符集。 10.用UNION ALL代替UNION。 UNION ALL不需要对结果集再进行排序。...这些高级特性有性能问题,以及未知BUG较多。业务逻辑放到数据库会造成数据库的DDL、SCALE OUT、 SHARDING等变得更加困难。 20.禁止有super权限的应用程序账号存在。

    63531
    领券