关键词1
关键词101
关键词201
关键词301
关键词401
关键词501
关键词601
关键词701
关键词801
关键词901
关键词1001
关键词1101
关键词1201
关键词1301
关键词1401
关键词1501
关键词1601
关键词1701
关键词1801
关键词1901
问答1
问答101
问答201
问答301
问答401
问答501
问答601
问答701
问答801
问答901
问答1001
问答1101
问答1201
问答1301
问答1401
问答1501
问答1601
问答1701
问答1801
问答1901
懂视1
懂视101
懂视201
懂视301
懂视401
懂视501
懂视601
懂视701
懂视801
懂视901
懂视1001
懂视1101
懂视1201
懂视1301
懂视1401
懂视1501
懂视1601
懂视1701
懂视1801
懂视1901
文库1
文库101
文库201
文库301
文库401
文库501
文库601
文库701
文库801
文库901
文库1001
文库1101
文库1201
文库1301
文库1401
文库1501
文库1601
文库1701
文库1801
文库1901
分类文章1
分类文章101
分类文章201
分类文章301
分类文章401
分类文章501
分类文章601
分类文章701
分类文章801
分类文章901
分类文章1001
分类文章1101
分类文章1201
分类文章1301
分类文章1401
分类文章1501
分类文章1601
分类文章1701
分类文章1801
分类文章1901
个人技术集锦
全部栏目
返回首页
操作系统
后端开发
数据库
前端开发
移动端开发
首页
操作系统
后端开发
数据库
前端开发
移动端开发
您的当前位置:
首页
正文
mysql语句:SETNAMESUTF8_MySQL
2020-11-09
来源:个人技术集锦
bitsCN.com
mysql语句:SET NAMES UTF8 一直以来只知道mysql_query("SET NAMES UTF8");是设定数据库编码的,但是一直不清楚“SET NAMES UTF8”是什么。 直到今天才知道 SET NAMES ...是mysql语句。 真的感觉到自己的功课还没做到家,现有知识储备比较匮乏。现将所查相关资料记下: 1、SET NAMES ‘charset_name’ SET NAMES显示客户端发送的SQL语句中使用什么字符集。因此,SET NAMES 'cp1251'语句告诉服务器将来从这个客户端传来的信息采用字符集cp1251”。它还为服务器发送回客户端的结果指定了字符集。(例如,如果你使用一个SELECT语句,它表示列值使用了什么字符集。) 2、连接字符集和校对 (1) 一些字符集和校对规则系统变量与客户端和服务器的交互有关。 · 服务器字符集和校对规则可以用作character_set_server和collation_server变量的值。 · 默认数据库的字符集和校对规则可以用作character_set_database和collation_database变量的值。 在客户端和服务器的连接处理中也涉及了字符集和校对规则变量。 每一个客户端有一个连接相关的字符集和校对规则变量。 (2)考虑什么是一个“连接”:它是连接服务器时所作的事情。 客户端发送SQL语句,例如查询,通过连接发送到服务器。 服务器通过连接发送响应给客户端,例如结果集。 对于客户端连接,这样会导致一些关于连接的字符集和 校对规则的问题,这些问题均能够通过系统变量来解决: (3) 当查询离开客户端后,在查询中使用哪种字符集? 服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。 (4) 服务器接收到查询后应该转换为哪种字符集? 转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介词)。collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,因为列具有更高的 校对规则优先级。 (5)服务器发送结果集或返回错误信息到客户端之前应该转换为哪种字符集? character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。 示例: mysql_query("set names 'utf8'"); //使用utf8编码; bitsCN.com
显示全文