[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科

这篇具有很好参考价值的文章主要介绍了[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科,喵喵期末不挂科——数据库MySQL,数据库,mysql,oracle,学习,后端

希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

目录

前言

认识字符集和校对原则

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) 是指在 同一字符集内字符之间的 比较规则。
[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科,喵喵期末不挂科——数据库MySQL,数据库,mysql,oracle,学习,后端
确定字符序后,才能在一个字符集上定义什么是等价的字符( 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

  它把位于128255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。

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_cigbk_chinese_ci

   GBK的文字编码不论中、英文字符均使用双字节表示。GBK通用性比UTF-8差,占用的数据库较小。

  GBKGB 2312UTF-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]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科,喵喵期末不挂科——数据库MySQL,数据库,mysql,oracle,学习,后端

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%';

重新启动服务器后再次查看字符集(shutdownstartup

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.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword"
)

print(mydb)

创建数据库

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE mydatabase")

创建表

import mysql.connector

mydb = 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.connector

mydb = 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——喵喵期末不挂科,喵喵期末不挂科——数据库MySQL,数据库,mysql,oracle,学习,后端文章来源地址https://www.toymoban.com/news/detail-763088.html

到了这里,关于[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [MySQL]数据库原理1,三大范式,E-R图,DataBase,数据库管理系统(DBMS),Relationship,实体、属性、联系 映射基数,关系型数据库,联系的度数等——喵喵期末不挂科

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 认识数据库 常见的数据库管理系统应用案例。       1.数据(Data)       2.数据库(DataBase ,简

    2024年02月04日
    浏览(47)
  • MySQL数据库(database)相关操作

    修改my.ini配置文件,可修改MySQL默认的字符集. 修改[mysql]选项组下的default_character_set的值可以同时改变character_set_client, character_set_connection, character_set_database的值 修改[mysql]选项组下的character_set_server的值可同时改变character_set_database, character_set_server的值 在MySQL命令行通过以下命令

    2024年02月05日
    浏览(52)
  • MySQL创建数据库(CREATE DATABASE语句)

     在 MySQL 中,可以使用  CREATE DATABASE  语句创建数据库,语法格式如下: [ ] 中的内容是可选的。语法说明如下: 数据库名: 创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量

    2024年02月04日
    浏览(53)
  • 已解决mysql报错ERROR 1049 (42000): Unknown database ‘数据库‘

    已解决mysql报错ERROR 1049 (42000): Unknown database ‘数据库‘ 对于错误代码1049(42000):Unknown database ‘数据库‘,这个错误通常表示您正在尝试访问一个不存在的数据库。 下滑查看解决方法 要解决这个问题,您可以按照以下步骤进行操作: 确认数据库名称:首先,请确保您正在

    2024年02月16日
    浏览(44)
  • MySQL的数据结构:数据库(Database)、表(Table)、记录(Record)和字段(Field)

    MySQL的数据结构可以看作是一个层次化的组织方式,从最高的层次到最低的层次分别是:数据库(Database)、表(Table)、记录(Record,也就是数据行)和字段(Field,也就是数据列)。 数据库(Database) : 数据库是最高层次的存储结构,它可以包含多个表、视图、存储过程、

    2024年02月21日
    浏览(59)
  • 【数据库原理】MyShop 商城数据库设计(SQL server)

    声明:未经允许,请勿转载 MyShop商城是一个在线购物平台,致力于提供便捷的购物体验。为了满足用户需求,商城需要一个可靠、高效的数据库系统来管理商品、用户和订单信息。数据库系统应具备性能、可靠性和扩展性,并通过合理的设计和优化提高系统的响应速度和数据

    2024年02月11日
    浏览(61)
  • 连接数据库时出现WARN: Establishing SSL connection without server‘s identity verification is not recommended.

    这个错误是--不建议在没有服务器身份验证的情况下建立SSL连接。 根据MySQL 5.5.45 +,5.6.26 +和5.7.6+的要求,如果未设置显式选项,则默认情况下必须建立SSL连接。默认为建立链接true,我们只需要让他不建立,设置为false 即可。 所以解决办法就是在url的最后添加“useSSL=false”

    2024年02月08日
    浏览(42)
  • Data source rejected establishment of connection message from server:“Too many connections“; 数据库报错解决

    报错时的情况: 报错时我使用了微服务项目中使用Dubbo来进行管理, 然后同时启动了几个项目来进行数据库操作就会发生报错, 但是执行单个项目模块时是可以进行数据库操作的 ,具体报错信息忘记截图了, 可以看下面这个链接中的报错信息描述MYSQL Too many connections错误的解决办

    2024年02月06日
    浏览(46)
  • Navicat远程连接,Docker中的mysql,新建数据库时报错:1044 -Access denied for user ‘root‘@‘%‘ to database

     该错误表示root用户没有访问指定数据库的权限  解决办法就是重新赋权 1.访问 Docker 容器内的 MySQL 命令行界面 2.输入 root 用户的密码 注 : 密码是不会显示的,输入完后Enter即可 3.切换数据库 4.更新表host中的列,将根用户的mysql.user值设置为。\\\'%\\\' 注 :         默认情况

    2024年02月16日
    浏览(54)
  • 学生信息管理系统 Java+SQL Server 数据库原理课程

    该项目实现了图形化界面的数据库的登录,以及对数据库中表的增删查改。 正好老师布置了相关作业,通过Java 连接 SQL Server 数据库,就写一个学生管理系统。 jdk8 数据库连接通过sqljdbc6.0 图形化界面用swing 目录 1、Java 连接SQL Server数据库 2、准备数据库 3、登录界面 要求:

    2024年02月09日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包