做数据新闻的网站/国产长尾关键词拘挖掘
希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
目录
前言
认识字符集和校对原则
MySQL 5.5支持的字符集和校对原则
常用字符集和校对原则
确定字符集和校对原则
描述字符集的系统变量
MySQL用下列的系统变量描述字符集。
字符集的依存关系
修改默认字符集
修改默认字符集
使用MySQL字符集时的建议
预习建立数据库和表
配套练习
总结
前言
MySQL 能够支持 39 种字符集和 127 个校对原则。细化为 4 个层次: 服务器 (Server) 、数据库 ( DataBase ) 、数据表 (Table) 和连接层 (Connection) 。MySQL 服务器 默认的字符集是 latin1 ,如果不进行设置,那么连接层级、客户端级和结果返回级、数据库级、表级、字段级都默认使用 latin1 字符集。在向表录入中文数据、查询包括中文字符的数据时,会出现类似“ ? ”这样的 乱码 现象。在创建存储过程或存储函数时,也经常由于字符集的不统一出现错误。本任务从认识字符集和校对原则着手,学习 MySQL 支持的字符集和校对原则。着重介绍 latin1 、 UTF-8 和 gb2312 字符集。通过认识描述字符集的系统变量,学习掌握修改默认字符集的方法。介绍在实际应用中,如何选择合适的字符集。
认识字符集和校对原则
字符 (Character) 是指人类语言中最小的表义符号。例如 ‘A’ 、 ‘B’ 等。给定一系列字符,并给每个字符指定一个数值来进行表示,这个数值就是 对应字符的编码( Encoding ) 。给定一系列字符,并给每个字符进行编码后,所有字符和编码对组成的集合就是字符集( Character set )。比如: ASSII 码。字符校对原则 (Collation) 是指在 同一字符集内字符之间的 比较规则。
确定字符序后,才能在一个字符集上定义什么是等价的字符( a 是否等价 A ),以及字符之间的大小关系。每个字符序唯一对应一种字符集,但 一个字符集可以对应多种字符校对原则 ,其中有一个是默认字符校对原则 (Default Collation) 。MySQL 中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以 _ci( 表示大小写不敏感 ) 、 _cs( 表示大小写敏感 ) 或 _bin( 表示按编码值比较 ) 结尾。例如,在字符序“ utf8_general_ci “下,字符 'a' 和 'A' 是等价的。
MySQL 5.5支持的字符集和校对原则
MySQL 5.5 服务器能够支持 39 种字符集和 127 个校对原则。任何一个给定的字符集至少有一个校对原则,也可能有几个校对原则。可以使用 SHOW 命令列出可用的字符集及对应校对原则。如:mysql >SHOW CHARACTER SET;
mysql> SHOW COLLATION LIKE ‘latin1%’;
常用字符集和校对原则
Latin1系统启动时默认的字符集,是一个8位字符集,字符集名称为ISO 8859-1Latin 1,也简称为ISO Latin-1。
它把位于128~255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。
UTF-8 ( 8-bit Unicode Transformation Format )被称为通用转换格式,是针对Unicode字符的一种变长字符编码,又称万国码。
对英文使用8位(即1个字节),中文使用24位(3个字节)来编码。
UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。
UTF-8编码的文字可以在各国支持UTF-8字符集的浏览器上显示。
gb 2312是简体中文字符集,GBK是对GB 2312的扩展,其校对原则是分别为gb2312_chinese_ci、gbk_chinese_ci。
GBK的文字编码不论中、英文字符均使用双字节表示。GBK通用性比UTF-8差,占用的数据库较小。
GBK、GB 2312与UTF-8之间都必须通过Unicode编码才能相互转换。
对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。
确定字符集和校对原则
描述字符集的系统变量
MySQL 对于字符集的支持细化到 4 个层次 : 服务器 (Server) 、数据库 ( DataBase ) 、数据表 (Table) 和连接 (Connection) 。MySQL 对于字符集的指定 可以细化 到一个数据库、一张表和一列。
MySQL用下列的系统变量描述字符集。
character_set_ server 和 collation_ server :这两个变量是 服务器 的字符集,默认的 内部 操作字符集。character_set_ client :客户端来源数据使用的字符集,这个变量用来决定 MySQL 怎么 解释 客户端发到服务器的 SQL 命令文字。character_set_connection和collation_connection :连接层字符集。这两个变量用来决定MySQL怎么处理客户端发来的SQL命令。
character_set_results:查询结果字符集,当SQL有结果返回的时候,这个变量用来决定发给客户端的结果中文字量的编码。
character_set_database和collation_database :当前选中数据库的默认字符集,create database命令有两个参数可以用来设置数据库的字符集和比较规则。character_set_system:系统元数据的字符集,数据库、表和列的定义都是用的这个字符集。它有一个定值,是UTF-8 。
以“collation_”开头的同上面对应的变量,用来描述字符集校对原则。
有的字符集概念并没有一个系统变量表示,如:
表所使用的字符集,在创建表的语句中指定,作为该表中列字体集的默认值。
列所使用的字符集,决定本列的文字数据的存储编码。列的比较规则比collation_connection高。也就是说,MySQL会把SQL中的文字直接量转成列的字符集后再与列的文字数据比较。
字符集的依存关系
MySQL 默认的服务器级的字符集,决定客户端、连接级和结果级的字符集。服务器级的字符集决定数据库的字符集。数据库的字符集决定表的字符集。表的字符集决定字段的字符集。
MySQL默认字符集
编译 MySQL 时,指定了一个默认的字符集,这个字符集是“ latin1 ”。安装 MySQL 时,可以在 配置文件 ( my.ini )中重新指定默认字符集。启动 MySQL 时,也可在命令行参数中重新指定默认字符集。默认字符集最终被 应用于 character_set_server ,再被应用于其下级字符集。
修改默认字符集
修改 MySQL 的 my.ini ( C:\Program Files \MySQL\MySQL Server 5.5 )文件中的字符集查找[mysql]键值,在下面加上一行: default-character-set=utf8
修改保存后,可用语句查看。
mysql> SHOW VARIABLES LIKE ‘character%
修改默认字符集
使用 MySQL 的命令修改字符集。
mysql> SET character_set_client = utf8 ;mysql> SET character_set_connection = utf8;mysql> SET character_set_database = utf8 ;mysql> SET character_set_results = utf8 ;mysql> SET character_set_server = utf8 ;
使用MySQL字符集时的建议
建立数据库、表和进行数据库操作时,尽量 显式指出 使用的字符集,而不是依赖于默认设置。数据库和连接字符集都使用 latin1 时,大部分情况下都可以解决乱码问题,但无法以字符为单位来进行 SQL 操作,因此 使用 UTF-8 更好 。注意服务器级、结果级、客户端级、连接级、数据库级、表级的字符集的统一,当数据库级的字符集设置为 UTF-8 时,表级与字段级的字符集也是 UTF-8 。
预习建立数据库和表
建立数据库和表是指在计算机系统中创建一个存储数据的地方,并在其中创建表格来组织和管理数据。数据库是一个可以被多个用户同时访问和操作的数据存储系统,而表则是数据库中的一个结构化数据容器。下面将介绍如何建立数据库和表。
首先,选择一个适合的数据库管理系统(DBMS),如MySQL、Oracle或SQL Server等。这些DBMS提供了丰富的功能和工具来管理和操作数据库。
接下来,通过运行DBMS提供的命令或工具来创建数据库。一般情况下,可以使用CREATE DATABASE语句来创建数据库,并指定数据库的名称。例如,CREATE DATABASE mydatabase;创建一个名为mydatabase的数据库。
创建数据库之后,就可以在其中创建表格了。表格用于存储数据,并且有一定的结构和规则。使用CREATE TABLE语句可以创建一个新的表格。在CREATE TABLE语句中,需要指定表格的名称和列的信息。每个列都有一个名称和数据类型。例如,CREATE TABLE customers (id INT, name VARCHAR(50), email VARCHAR(100));将创建一个名为customers的表格,并包含id、name和email三列,分别是整数和两个字符串。
在创建表格之后,可以使用INSERT语句来向表格中插入数据。INSERT语句可以插入一条或多条数据。例如,INSERT INTO customers (id, name, email) VALUES (1, 'John', 'john@example.com');将向customers表格中插入一条数据。
创建数据库和表格后,就可以使用SELECT语句来查询数据,使用UPDATE语句来更新数据,使用DELETE语句来删除数据等。这些语句可以通过DBMS提供的命令行界面或图形化界面来执行。
总之,建立数据库和表是管理和组织数据的重要步骤。通过选择合适的DBMS,并使用相应的命令和工具,可以轻松地创建数据库和表格,并对其中的数据进行管理和操作。
配套练习
一、mysql注释:
mysql注释符有三种:1、#...2、-- ...3、/*...*/
二、启动mysql服务器(startup)à打开命令窗口clientà输入:
2.1 mysql >SHOW CHARACTER SET;//显示所有字符集
mysql> SHOW COLLATION LIKE ‘latin1%’;//显示以latin1开头的校对(Collation)规则:
2.2. 修改MySQL的配置文件my.ini(自己安装的mysql路径)文件中的字符集
查找[mysql]键值,在下面加上一行: default-character-set=utf8
修改保存后,可用语句查看。
mysql> SHOW VARIABLES LIKE 'character%';
重新启动服务器后再次查看字符集(先shutdown再startup)
2.3使用MySQL的命令修改字符集,修改后可用show variables like ‘character%’;查看。
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
三、解决发送前的乱码
MySQL> SET NAMES ‘UTF8 ’;
与这3个语句等价:
mysql> SET character_set_client =UTF8;
mysql> SET character_set_results = UTF8;
mysql> SET character_set_connection =UTF8;
四、修改MySQL的my.ini文件中,将默认字符集修改为gb2312。
提前预热
以下是MySQL的简单代码示例:
先看看,喵~
连接到MySQL数据库
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword"
)print(mydb)
创建数据库
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword"
)mycursor = mydb.cursor()mycursor.execute("CREATE DATABASE mydatabase")
创建表
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",database="mydatabase"
)mycursor = mydb.cursor()mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
插入数据
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",database="mydatabase"
)mycursor = mydb.cursor()sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")mycursor.execute(sql, val)mydb.commit()print(mycursor.rowcount, "record inserted.")
总结
MySQL 能够支持 39 种字符集和 127 个校对原则。细化为 4 个层次: 服务器 (Server) 、数据库 ( DataBase ) 、数据表 (Table) 和连接层 (Connection) 。MySQL 服务器 默认的字符集是 latin1 ,如果不进行设置,那么连接层级、客户端级和结果返回级、数据库级、表级、字段级都默认使用 latin1 字符集。在向表录入中文数据、查询包括中文字符的数据时,会出现类似“ ? ”这样的 乱码 现象。在创建存储过程或存储函数时,也经常由于字符集的不统一出现错误。本任务从认识字符集和校对原则着手,学习 MySQL 支持的字符集和校对原则。着重介绍 latin1 、 UTF-8 和 gb2312 字符集。通过认识描述字符集的系统变量,学习掌握修改默认字符集的方法。介绍在实际应用中,如何选择合适的字符集。
希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
相关文章:

[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科
希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...

【算法集训】基础数据结构:十、矩阵
矩阵其实就是二维数组,这些题目在9日集训中已经做过,这里做的方法大致相同。 第一题 1351. 统计有序矩阵中的负数 int countNegatives(int** grid, int gridSize, int* gridColSize) {int r gridSize;int c gridColSize[0];int ret 0;for(int i 0;…...

python排序算法 直接插入排序法和折半插入排序法
最近需要使用到一些排序算法,今天主要使针对直接插入排序和折半插入排序进行讲解。 首先是直接插入排序,其排序过程主要是,针对A[a1,a2,a3,a4,a5....an],从排序的序列头部起始位置开始,将其也就是a1视为只有一个元素的…...

【flutter对抗】blutter使用+ACTF习题
最新的能很好反编译flutter程序的项目 1、安装 git clone https://github.com/worawit/blutter --depth1 然后我直接将对应的两个压缩包下载下来(通过浏览器手动下载) 不再通过python的代码来下载,之前一直卡在这个地方。 如果读者可以正…...

OpenHarmony 如何去除系统锁屏应用
前言 OpenHarmony源码版本:4.0release / 3.2 release 开发板:DAYU / rk3568 一、3.2版本去除锁屏应用 在源码根目录下:productdefine/common/inherit/rich.json 中删除screenlock_mgr组件的编译配置,在rich.json文件中搜索th…...

Python - 搭建 Flask 服务实现图像、视频修复需求
目录 一.引言 二.服务构建 1.主函数 upload_gif 2.文件接收 3.专属目录 4.图像修复 5.gif2mp4 6.mp42gif 7.图像返回 三.服务测试 1.服务启动 2.服务调用 四.总结 一.引言 前面我们介绍了如何使用 Real-ESRGAN 进行图像增强并在原始格式 jpeg、jpg、mp4 的基础上…...

C#基础——构造函数、析构函数
C#基础——构造函数、析构函数 1、构造函数 构造函数是一种特殊的方法,用于在创建类的实例时进行初始化操作。构造函数与类同名,并且没有返回类型。 构造函数在对象创建时自动调用,可以用来设置对象的初始状态、分配内存、初始化字段等操作…...

jmeter 如何循环使用接口返回的多值?
有同学在用jmeter做接口测试的时候,经常会遇到这样一种情况: 就是一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值。 这种要怎么做呢? 有一定基础的人,可能第一反应就是先提取前一个接口返回…...

VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则) 在早期的交换网络中,网络中只有 PC、终端和交换机,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域。而广播域越大ÿ…...

Android - 分区存储 MediaStore、SAF
官方页面 参考文章 一、概念 分区存储(Scoped Storage)的推出是针对 APP 访问外部存储的行为(乱建乱获取文件和文件夹)进行规范和限制,以减少混乱使得用户能更好的控制自己的文件。 公有目录被分为两大类:…...

Shiro框架权限控制
首先去通过配置类的用户认证,在用户认证完成后,进行用户授权,用户通过授权之后再跳转其他的界面时,会进行一个验证,当前账号是否有权限。 前端权限控制显示的原理 在前端中,通常使用用户的角色或权限信息来…...

centOS7 安装tailscale并启用子网路由
1、在centOS7上安装Tailscale客户端 #安装命令所在官网位置:https://tailscale.com/download/linux #具体命令为: curl -fsSL https://tailscale.com/install.sh | sh #命令执行后如下图所示2、设置允许IP转发和IP伪装。 安装后,您可以启动…...

spring 项目中如何处理跨越cors问题
1.使用 CrossOrigin 注解 作用于controller 方法上 示例如下 RestController RequestMapping("/account") public class AccountController {CrossOriginGetMapping("/{id}")public Account retrieve(PathVariable Long id) {// ...}DeleteMapping(&quo…...

importlib --- import 的实现
3.1 新版功能. 源代码 Lib/importlib/__init__.py 概述 importlib 包具有三重目标。 一是在 Python 源代码中提供 import 语句的实现(并且因此而扩展 __import__() 函数)。 这提供了一个可移植到任何 Python 解释器的 import 实现。 与使用 Python 以…...

【PyTorch】现代卷积神经网络
文章目录 1. 理论介绍1.1. 深度卷积神经网络(AlexNet)1.1.1. 概述1.1.2. 模型设计 1.2. 使用块的网络(VGG)1.3. 网络中的网络(NiN)1.4. 含并行连结的网络(GoogLeNet)1.5. 批量规范化…...

用python编写九九乘法表
1 问题 我们在学习一门语言的过程中,都会练习到编写九九乘法表这个代码,下面介绍如何编写九九乘法表的流程。 2 方法 (1)打开pycharm集成开发环境,创建一个python文件,并编写第一行代码,主要构建…...

Google Gemini 模型本地可视化
Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用! Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。 Gemini Pro的表现超越了其他同类模型,当前版…...

数据修复:.BlackBit勒索病毒来袭,安全应对方法解析
导言: 黑色数字罪犯的新玩具——.BlackBit勒索病毒,近来成为网络安全领域的头号威胁。这种恶意软件以其高度隐秘性和毁灭性而引起广泛关注。下面是关于.BlackBit勒索病毒的详细介绍,如不幸感染这个勒索病毒,您可添加我们的技术服…...

拓扑排序实现循环依赖判断 | 京东云技术团队
本文记录如何通过拓扑排序,实现循环依赖判断 前言 一般提到循环依赖,首先想到的就是Spring框架提供的Bean的循环依赖检测,相关文档可参考: https://blog.csdn.net/cristianoxm/article/details/113246104 本文方案脱离Spring Be…...

Java的NIO工作机制
文章目录 1. 问题引入2. NIO的工作方式3. Buffer的工作方式4. NIO数据访问方式 1. 问题引入 在网络通信中,当连接已经建立成功,服务端和客户端都会拥有一个Socket实例,每个Socket实例都有一个InputStream和OutputStream,并通过这…...

一个简单的光线追踪渲染器
前言 本文参照自raytracing in one weekend教程,地址为:https://raytracing.github.io/books/RayTracingInOneWeekend.html 什么是光线追踪? 光线追踪模拟现实中的成像原理,通过模拟一条条直线在场景内反射折射,最终…...

C++学习笔记(十二)------is_a关系(继承关系)
你好,这里是争做图书馆扫地僧的小白。 个人主页:争做图书馆扫地僧的小白_-CSDN博客 目标:希望通过学习技术,期待着改变世界。 提示:以下是本篇文章正文内容,下面案例可供参考 文章目录 前言 一、继承关系…...

DC电源模块的设计与制造技术创新
BOSHIDA DC电源模块的设计与制造技术创新 DC电源模块的设计与制造技术创新主要涉及以下几个方面: 1. 高效率设计:传统的DC电源模块存在能量转换损耗较大的问题,技术创新可通过采用高效率的电路拓扑结构、使用高性能的功率开关器件和优化控制…...

Sketch for Mac:实现你的创意绘图梦想的矢量绘图软件
随着数字时代的到来,矢量绘图软件成为了广告设计、插画创作和UI设计等领域中必不可少的工具。在众多矢量绘图软件中,Sketch for Mac(矢量绘图软件)以其强大的功能和简洁的界面脱颖而出,成为了众多设计师的首选。 Sket…...

ReactNative0.73发布,架构升级与更好的调试体验
这次更新包含了多种提升开发体验的改进,包括: 更流畅的调试体验: 通过 Hermes 引擎调试支持、控制台日志历史记录和实验性调试器,让调试过程更加高效顺畅。稳定的符号链接支持: 简化您的开发工作流程,轻松将文件或目录链接到其他…...

SVN忽略文件的两种方式
当使用版本管理工具时,提交到代码库的文档我们不希望存在把一些临时文件也推送到仓库中,这样就需要用到忽略文件。SVN的忽略相比于GIT稍显麻烦,GIT只需要在.gitignore添加忽略规则即可。而SVN有两种忽略方式,一个是全局设置&#…...

手写VUE后台管理系统10 - 封装Axios实现异常统一处理
目录 前后端交互约定安装创建Axios实例拦截器封装请求方法业务异常处理 axios 是一个易用、简洁且高效的http库 axios 中文文档:http://www.axios-js.com/zh-cn/docs/ 前后端交互约定 在本项目中,前后端交互统一使用 application/json;charsetUTF-8 的请…...

JavaScript装饰者模式
JavaScript装饰者模式 1 什么是装饰者模式2 模拟装饰者模式3 JavaScript的装饰者4 装饰函数5 AOP装饰函数6 示例:数据统计上报 1 什么是装饰者模式 在程序开发中,许多时候都我们并不希望某个类天生就非常庞大,一次性包含许多职责。那么我们就…...

C++学习笔记01
01.C概述(了解) c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。 02.第一个程序helloworld(掌握) #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;//标准命名空间int main() {//co…...

【UE5】初识MetaHuman 创建虚拟角色
步骤 在UE5工程中启用“Quixel Bridge”插件 打开“Quixel Bridge” 点击“MetaHumans-》MetaHuman Presets UE5” 点击“START MHC” 在弹出的网页中选择一个虚幻引擎版本,然后点击“启动 MetaHuman Creator” 等待一段时间后,在如下页面点击选择一个人…...