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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MCU常用外设总线

目录 前言一、时钟与中断二、GPIO三、ADC四、定时器4.1 基本定时器4.2 通用定时器4.2.1 输入捕获4.2.2 输出比较 五、UART5.1 通讯的基本概念5.1.1 串行通讯与并行通讯5.1.2 全双工、半双工及单工通讯5.1.3 同步通讯与异步通讯5.1.4 通信速率 5.2 异步串口UART5.2.1 物理层5.2.…

谷达冠楠:现在开网店到底靠谱吗

在互联网高速发展的当下,开网店已成为众多创业者的选择。然而,面对激烈的市场竞争和不断变化的网络环境,人们不禁要问:现在开网店到底靠谱吗? 我们必须认识到,任何商业行为都存在风险,开网店也不例外。但是…

Python + Selenium —— 网页元素定位之标签名和链接文本定位

tag name tag name 为标签名定位,使用网页元素的标签名如a, div, input, span 等。 但是有一个问题,常见的标签名比如 在同一个页面上有非常多。会不会觉得 tag name 没什么用呢? 当然普通的模拟操作是不大有用,这个重复性实在…

Spring如何使用自定义注解来实现自动管理事务?

人可以做他(她)想做的,但不能要他(她)想要的 一个目录 前言业务代码展示手动挡自动挡事务失效的问题代码地址 前言 在两年半以前,我写了一篇博客:框架的灵魂之注解基础篇: 在那篇博客的结尾,我埋了一个坑&#xff1a…

mac安装部署gitbook教程

mac安装部署gitbook教程 前言一、安装准备二、GitBook安装三、项目初始化 前言 一些自己实际操作的记录。 一、安装准备 Node.js gitbook基于Node.js,所以需要提前安装。 下载地址:https://nodejs.org/en/,可以下载比较新的版本。(但我的建议…

深入到 TLP:PCI Express 设备如何通信

前言 当我为PCI express编写Xillybus IP核时,我很快发现很难开始:在线资源和官方规格用关于螺母和螺栓的血腥细节轰炸你,但对机器应该做什么却很少说。因此,一旦我努力自己弄清楚这一点,我就决定写这个小指南&#xf…

源码篇--Redis 五种数据类型

文章目录 前言一、 字符串类型:1.1 字符串的编码格式:1.1.1 raw 编码格式:1.1.2 empstr编码格式:1.1.3 int 编码格式:1.1.4 字符串存储结构展示: 二、 list类型:2.1 List 底层数据支持:2.2 List 源码实现:2.3 List 结构…

【C++】反向迭代器模拟实现

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.利用适配器的思想…

【产品设计】B端导航菜单的三大模式

导航是每一个网站的灵魂所在,用户依赖导航进行不同页面的切换,找到自己所需的。那么该如何将庞大的B端系统中的导航菜单做好呢? 导航菜单是一个网站的灵魂,用户依赖导航在各个页面中进行跳转。 导航菜单一般分为顶部导航和侧边导…

成本更低、更可控,云原生可观测新计费模式正式上线

云布道师 在上云开始使用云产品过程中,企业一定遇见过两件“讨厌”事: 难以理解的复杂计费逻辑,时常冒出“这也能收费”的感叹; 某个配置参数调节之后,云产品使用成本不可预估的暴涨。 可观测作为企业 IT 运维必须品…

Python工具:pathlib

文件的路径实际上是一件很困扰的时间(各种平台有时候规则不一样,有时候还需要考虑字符转义的问题),因此我直接推荐使用模块 pathlib,当然,如果您不介意的话,可以使用 os.path 做较为低级的路径操…

SpringCloudAlibaba系列之Nacos实战

目录 注意事项 参考资源 Nacos配置中心 初始化项目 进行Nacos相关配置 运行 Nacos注册中心 dubbo方式 对外暴露接口dubbo-api 服务提供者dubbo-provider 服务消费者dubbo-consumer 负载均衡客户端方法 服务提供者 服务消费者 注意事项 不管是使用Nacos配置中心&…

程序员手把手教你参与开源!拿捏!

一、前言 有一些同学提问,希望在自己的简历上增加一些有含金量的项目经历,最好能够去参与一些开源项目的开发,但由于对一个庞大的开源项目缺乏认知,难以着手。同时也担心自己能力不足,不知道自己写的代码是否会被接纳。…

MATLAB环境下一种音频降噪优化方法—基于时频正则化重叠群收缩

语音增强是语音信号处理领域中的一个重大分支,这一分支已经得到国内外学者的广泛研究。当今时代,随着近六十年来的不断发展,己经产生了许多有效的语音增强算法。根据语音增强过程中是否利用语音和噪声的先验信息,语音增强算法一般…

文件备份管理软件系统

1、我解决的问题 避免因为硬盘故障,导致数据丢失; 避免因为中了病毒,文件被加密,无法取回; 避免了员工恶意删除文件; 规范企业内部的文件管理,使它井井有条; 防范于未然,不必再为可能的风险担忧; 2、我的优点 我支持定…

语义分割 | 基于 VGG16 预训练网络和 Segnet 架构实现迁移学习

Hi,大家好,我是源于花海。本文主要使用数据标注工具 Labelme 对猫(cat)和狗(dog)这两种训练样本进行标注,使用预训练模型 VGG16 作为卷积基,并在其之上添加了全连接层。基于标注样本…

什么是调频直放站,调频直放站的功能和作用是什么?

调频直放站,顾名思义是一种对调频广播信号进行放大处理的通信设备,将调频广播信号引入到地下空间或隧道内,实现调频广播信号覆盖,扩大调频广播信号的覆盖范围。 1、调频直放站的组成 调频直放站从结构上来讲,一般由远…

线性代数:矩阵的定义

目录 一、定义 二、方阵 三、对角阵 四、单位阵 五、数量阵 六、行(列)矩阵 七、同型矩阵 八、矩阵相等 九、零矩阵 十、方阵的行列式 一、定义 二、方阵 三、对角阵 四、单位阵 五、数量阵 六、行(列)矩阵 七、同型矩…

python数据和分析——pandas基础内容

Pandas 的两个主要的数据结构是 Series 和 DataFrame: Series 是一维标记数组,类似于带有标签的列表。它可以包含不同类型的数据,并且可以通过索引进行访问和操作。DataFrame 是二维表格型数据结构,类似于 SQL 表或 Excel 电子表…

jQuery遍历(树遍历)

1、.children&#xff08;&#xff09;: 获得匹配元素集合中每个元素的直接子元素&#xff0c;选择器选择性筛选。 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script src"jQuery.js"&g…