【2024】新建mysql数据库,如何选择字符集和排序规则

如何使用 Navicat 新建 MySQL 数据库,并选择字符集与排序规则

  • 如何使用 Navicat 新建 MySQL 数据库并选择字符集与排序规则
    • 1. 开始之前
    • 2. 新建数据库
      • 步骤 1: 打开 Navicat
      • 步骤 2: 创建新数据库
      • 步骤 3: 填写数据库名称
    • 常见的字符集和排序规则及其选择场景
      • 1. 字符集(Character Sets)
        • UTF-8 / UTF8MB4
        • Latin1
        • ASCII
      • 2. 排序规则(Collations)
      • utf8_bin
      • utf8_general_ci
      • 其他相关排序规则
        • utf8mb4_unicode_ci / utf8mb4_general_ci
        • utf8_general_cs
        • utf8_unicode_ci
        • latin1_swedish_ci
        • binary
      • 小结
    • 3. 选择字符集和排序规则
      • 字符集(Character Set)
      • 排序规则(Collation)
      • 步骤 4: 选择字符集和排序规则
    • 4. 完成创建
    • 5. 验证数据库
    • 结论

请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

如何使用 Navicat 新建 MySQL 数据库并选择字符集与排序规则

在数据库管理和开发中,Navicat 是一个强大且用户友好的图形界面工具,它支持多种数据库系统,包括 MySQL。本文将指导您如何使用 Navicat 新建 MySQL 数据库,并着重介绍如何选择合适的字符集和排序规则。

1. 开始之前

确保您已经安装了 Navicat 和 MySQL 服务器,并且能够在 Navicat 中成功连接到您的 MySQL 服务器。如果您是第一次使用 Navicat,您需要创建一个新的数据库连接,输入数据库的地址、端口、用户名和密码。

2. 新建数据库

步骤 1: 打开 Navicat

启动 Navicat 并连接到您的 MySQL 服务器。

步骤 2: 创建新数据库

在 Navicat 的界面中,右击 MySQL 连接,选择“新建数据库”。这时会弹出一个对话框,让您输入数据库的名称。

步骤 3: 填写数据库名称

在对话框中输入您希望创建的数据库的名称。

常见的字符集和排序规则及其选择场景

在数据库设计中,选择合适的字符集(Character Set)和排序规则(Collation)是至关重要的。这些选择会影响数据的存储、检索以及比较。以下是一些常见的字符集和排序规则,以及它们的适用场景。

1. 字符集(Character Sets)

UTF-8 / UTF8MB4
  • 描述: UTF-8 是一种针对 Unicode 的可变长度字符编码,而 UTF8MB4 是 UTF-8 的超集,支持更多的字符,包括表情符号。
  • 适用场景: 当您的应用需要支持多种语言或特殊字符(如表情符号)时,UTF8MB4 是最佳选择。它是MySQL推荐的字符集。
Latin1
  • 描述: Latin1(或称为 ISO 8859-1)是一种单字节字符集,支持西欧语言。
  • 适用场景: 如果您的数据主要是英文或西欧语言,并且不包含特殊字符或表情符号,Latin1 是一个轻量且高效的选择。
ASCII
  • 描述: ASCII 是最基本的字符编码,只支持英文字符和一些基本符号。
  • 适用场景: 当您的数据仅包含基本的英文字符和符号时,ASCII 是足够的。这通常适用于一些非常特定和受限的应用场景。

2. 排序规则(Collations)

例如,当你运行:

 SELECT * FROM table WHERE txt = 'a' 

在讨论数据库字符集和排序规则时,理解不同类型的排序规则及其适用场景是非常重要的。以下是针对 MySQL 的 UTF-8 字符集的两种常见排序规则的优化格式说明:

utf8_bin

  • 特性: 在 utf8_bin 排序规则中,字符串是通过二进制数据进行编译和存储的。
  • 大小写区分: 是。在这种排序规则下,aA 被视为不同的字符。
  • 适用场景: 当您需要严格区分大小写或者需要存储二进制内容时。例如,如果您有一个字段需要确切地区分大小写,如密码字段,使用 utf8_bin 是一个合适的选择。

utf8_general_ci

  • 特性: utf8_general_ci 是一种不区分大小写的排序规则。它在比较字符串时,不会区分字符的大小写。
  • 大小写区分: 否。在这种排序规则下,aA 被视为相同的字符。
  • 适用场景: 这个排序规则适用于那些不需要区分大小写的场景,如用户登录时的用户名或邮箱地址。使用 utf8_general_ci 可以确保即使用户在输入时改变了字母的大小写,仍然能够被正确地识别。

其他相关排序规则

utf8mb4_unicode_ci / utf8mb4_general_ci
  • 描述: 这些排序规则用于 UTF8MB4 字符集。ci 表示不区分大小写(case-insensitive)。
  • 区别: utf8mb4_unicode_ci 基于标准的 Unicode 来排序,而 utf8mb4_general_ci 是一种性能更优的简化排序算法。
  • 适用场景: 当您需要确保在多种语言环境下的文本比较和排序的准确性时,utf8mb4_unicode_ci 是更好的选择。如果性能是主要考虑因素,且可以接受稍微粗糙的排序,则可以选择 utf8mb4_general_ci
utf8_general_cs
  • 区分大小写: 是。这个规则在处理字符串时会区分大小写,这在某些场景下可能导致问题,尤其是在不应区分大小写的字段(如邮箱地址)中使用时。
utf8_unicode_ci
  • 特性: utf8_unicode_ci 在校对时的准确度更高,但速度稍慢。
  • 中英文处理: 对中文和英文来说,与 utf8_general_ci 没有实质性的差别。
  • 选择建议: 如果对准确性有较高要求,可以考虑使用 utf8_unicode_ci
latin1_swedish_ci
  • 描述: 这是 Latin1 字符集的默认排序规则,不区分大小写。
  • 适用场景: 主要用于处理西欧语言数据,当使用 Latin1 字符集时,默认会采用此排序规则。
binary
  • 描述: 这是一种区分大小写的排序规则,按照字节值进行比较。
  • 适用场景: 当您需要严格区分大小写和特殊字符,或者对数据进行精确的字节级比较时,适合选择 binary 排序规则。

小结

在选择字符集和排序规则时,需要考虑数据的类型、语言和特殊需求。通常,UTF8MB4 是现代应用程序的安全选择,因为它支持广泛的字符并提供灵活的排序选项。然而,对于更特定的需求和优化,其他字符集和排序规则可能更为适宜。始终确保您的选择能够支持您的应用现在和未来的需求。

在选择排序规则时,需要考虑应用的具体需求,特别是对大小写的处理以及性能与准确度之间的权衡。通常,utf8_general_ci 因其较快的校对速度和足够的准确度,被广泛用于一般场景。而在需要严格的大小写区分或特殊的数据存储需求时,utf8_binutf8_unicode_ci 可能是更好的选择。

3. 选择字符集和排序规则

创建数据库的关键部分是选择正确的字符集和排序规则,这将影响数据的存储和检索方式。

字符集(Character Set)

字符集决定了数据库可以存储哪些字符。例如,utf8mb4 是一个流行的选择,它支持包括表情符号在内的几乎所有Unicode字符。

在这里插入图片描述

排序规则(Collation)

排序规则定义了字符的比较和排序方式。例如,utf8mb4_unicode_ci 是一种常用的排序规则,它以不区分大小写的方式进行排序。

在这里插入图片描述

步骤 4: 选择字符集和排序规则

在新建数据库的对话框中,您会看到字符集和排序规则的选项。从下拉列表中选择最适合您需求的字符集和排序规则。

4. 完成创建

确认无误后,点击“确定”按钮,Navicat 将创建新的数据库,并根据您的选择应用字符集和排序规则。

5. 验证数据库

创建完成后,您可以在 Navicat 的左侧面板中找到新创建的数据库。点击它,您可以查看数据库的属性,确认字符集和排序规则是否正确设置。

结论

使用 Navicat 创建 MySQL 数据库是一个简单直观的过程。选择合适的字符集和排序规则对于确保数据库能够正确处理和存储数据至关重要。通过以上步骤,即使是初学者也可以轻松完成这一过程。记住,根据您的具体需求选择字符集和排序规则,可以避免未来可能遇到的许多问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.前端--CSS-复合选择器

1.什么是复合选择器 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确、更高效的选择目标元素(标签) 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等 2.后代选择器 …

flink基础概念之什么是时间语义

什么是时间语义 Flink支持三种不同的时间语义,以便处理流式数据中的事件时间、处理时间和摄入时间。 1. 处理时间(Processing Time) 处理时间的概念非常简单,就是指执行处理操作的机器的系统时间。 在这种时间语义下处理窗口非…

接口自动化测试实践

众所周知,接口自动化测试有着如下特点: 低投入,高产出。 比较容易实现自动化。 和UI自动化测试相比更加稳定。 如何做好一个接口自动化测试项目呢? 我认为,一个“好的”自动化测试项目,需要从“时间”…

05-Seata下SQL使用限制

不支持 SQL 嵌套不支持多表复杂 SQL(自1.6.0版本,MySQL支持UPDATE JOIN语句,详情请看不支持存储过程、触发器部分数据库不支持批量更新,在使用 MySQL、Mariadb、PostgreSQL9.6作为数据库时支持批量,批量更新方式如下以 Java 为例 …

掌握大语言模型技术: 推理优化

掌握大语言模型技术_推理优化 堆叠 Transformer 层来创建大型模型可以带来更好的准确性、少样本学习能力,甚至在各种语言任务上具有接近人类的涌现能力。 这些基础模型的训练成本很高,并且在推理过程中可能会占用大量内存和计算资源(经常性成…

C++:反向迭代器-reverse_iterator

目录 1.关于反向迭代器 2.反向迭代器的成员函数 1.构造 2.base 3.operator* 4.operator 5.operator-- 6.operator-> 7.operator[] 3.反向迭代器的模拟实现 小结 1.关于反向迭代器 在C中,可以使用反向迭代器来逆序遍历容器中的元素。反向迭代器是通过…

链表的中间结点,简单的快慢指针问题

总结 struct ListNode* middleNode(struct ListNode* head) {struct ListNode*fasthead;struct ListNode*slowhead;while( fast && fast->next)//结束条件{slowslow->next;fastfast->next->next;}return slow; }

组件冲突、data函数、组件通信

文章目录 1.组件的三大组成部分 - 注意点说明2.组件的样式冲突(用 scoped 解决)3.data是一个函数4.组件通信1.什么是组件通信?2.不同的组件关系 和 组件通信方案分类 5.prop详解prop 校验①类型校验②完整写法(类型,非…

REVIT二次开发设置门垛高度

步骤1 步骤2 步骤3 using System; using System.Collections.Generic; using System.Linq; using System

Redis 持久化详解:RDB 与 AOF 的配置、触发机制和实际测试

什么是持久化? 就是 Redis 将内存数据持久化到硬盘,避免从数据库恢复数据。之所以避免从数据库恢复数据是因为后端数据通常有性能瓶颈,大量数据从数据库恢复可能会给数据库造成巨大压力。 Redis 持久化通常有 RDB 和 AOF 两种方式&#xff…

计算机网络 第5章(运输层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 计算机网络 第4章(网络层) 计算机网络 第5章(运输层) 计算机…

vue3之 websoket发送消息

1.封装websoket var ws null; //建立的连接 var lockReconnect false;//是否真正建立连接 var timeout 6 * 1000 * 5;//30秒一次心跳 var timeoutObj null;//心跳心跳倒计时 var serverTimeoutObj null;//心跳倒计时 var timeoutnum null;//断开 重连倒计时 var global_…

DA14531平台secondary_bootloade工程修改笔记

DA14531平台secondary_bootloade工程修改笔记 1.支持在线仿真 初始时加入syscntl_load_debugger_cfg(); 表示可以重复Jlink连接调试仿真 2.支持串口烧录,和支持单线线写 utilities\secondary_bootloader\includes\bootloader.h /************** 2-wire UART supp…

Siamese network 孪生神经网络--一个简单神奇的结构

1.名字的由来 Siamese和Chinese有点像。Siam是古时候泰国的称呼,中文译作暹罗。Siamese也就是“暹罗”人或“泰国”人。Siamese在英语中是“孪生”、“连体”的意思,这是为什么呢? 十九世纪泰国出生了一对连体婴儿,当时的医学技术…

点赞!HashData连续三年获评数据猿“最具投资价值企业奖”

近日,由上海市经济和信息化委员会、上海市科学技术委员会指导,数据猿和上海大数据联盟共同主办的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海举行。本次活动以“小趋势大未来”为主题,展示了大数据与人工智能、云计算、5G等新…

仰暮计划|“她已跨过了八旬的门槛,一个人见证了时光洪流的智慧年代”

倾听与关爱 2023年7月4日中午,我跟随“羽翼”社会实践服务队、党员服务小组一起到柏桥村完成我们本次三下乡的调研任务,通过走访当地居民并与当地党群服务中心干部进行交谈了解当地乡村振兴落实情况。 在走往柏桥村的路上,我有幸遇到了教师…

【操作系统】实验六 分析源代码

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

Vulnhub-FUNBOX: GAOKAO渗透

文章目录 前言1、靶机ip配置2、渗透目标3、渗透概括 开始实战一、信息获取二、爆破FTP服务三、GetShell四、提权 前言 由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的…

仰暮计划|“他说,他是出生于两个时代的人”

凌保庆老爷爷,1942年10月4日出生,今年82岁,家住在河南省登封市唐庄乡磨沟村。7月28日,我作为仰暮计划小队的一员去拜访了这位老人,听凌爷爷讲述了他的故事。 走进这户人家的时候,凌爷爷正在书房里。虽然家…

Spring第三天

今日目标 能够理解AOP的作用 能够完成AOP的入门案例 能够理解AOP的工作流程 能够说出AOP的五种通知类型 能够完成"测量业务层接口万次执行效率"案例 能够掌握Spring事务配置 一、AOP 1 AOP简介 问题导入 问题1:AOP的作用是什么? 问题2&am…