IT评测·应用市场-qidao123.com

标题: [MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb231 [打印本页]

作者: 用多少眼泪才能让你相信    时间: 2024-9-10 09:58
标题: [MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb231

   盼望你开心,盼望你健康,盼望你幸福,盼望你点赞!
  最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多风趣的博客哦!!!
  喵喵喵,你对我真的很告急!
  目次
媒介
熟悉字符集和校对原则
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

   
  修改保存后,可用语句检察。

  1.    mysql> SHOW VARIABLES LIKE ‘character%
复制代码

修改默认字符集

      利用   MySQL   的下令修改字符集。     
  1. mysql> SET character_set_client = utf8 ;
  2.   mysql> SET character_set_connection = utf8;
  3.   mysql> SET character_set_database = utf8 ;
  4.   mysql> SET character_set_results = utf8 ;
  5.   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数据库
  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3.   host="localhost",
  4.   user="yourusername",
  5.   password="yourpassword"
  6. )
  7. print(mydb)
复制代码
创建数据库
  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3.   host="localhost",
  4.   user="yourusername",
  5.   password="yourpassword"
  6. )
  7. mycursor = mydb.cursor()
  8. mycursor.execute("CREATE DATABASE mydatabase")
复制代码
创建表
  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3.   host="localhost",
  4.   user="yourusername",
  5.   password="yourpassword",
  6.   database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
复制代码
插入数据
  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3.   host="localhost",
  4.   user="yourusername",
  5.   password="yourpassword",
  6.   database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
  10. val = ("John", "Highway 21")
  11. mycursor.execute(sql, val)
  12. mydb.commit()
  13. print(mycursor.rowcount, "record inserted.")
复制代码

总结

      MySQL   能够支持   39   种字符集和   127   个校对原则。       细化为   4   个条理:   服务器   (Server)   、数据库   (   DataBase   )   、数据表   (Table)   和连接层   (Connection)   。        MySQL   服务器   默认的字符集是   latin1   ,如果不进行设置,那么连接层级、客户端级和效果返回级、数据库级、表级、字段级都默认利用   latin1   字符集。       在向表录入中文数据、查询包括中笔墨符的数据时,会出现类似“   ?   ”这样的   乱码   现象。       在创建存储过程或存储函数时,也经常由于字符集的不统一出现错误。           本任务从熟悉字符集和校对原则着手,学习    MySQL    支持的字符集和校对原则。             偏重先容    latin1    、    UTF-8    和    gb2312    字符集。             通过熟悉形貌字符集的体系变量,学习掌握修改默认字符集的方法。             先容在实际应用中,如何选择合适的字符集。      
   盼望你开心,盼望你健康,盼望你幸福,盼望你点赞!
  最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多风趣的博客哦!!!
  喵喵喵,你对我真的很告急!
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4