phpMyAdmin中mysql的创建数据库时的编码的问题

转载自新浪博客    Sean

一、

mysql中utf8编码的utf8_bin,utf8_general_cs,utf8_general_ci的区别

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin: compare strings by the binary value of each character in
the string 将字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

举例说明:

如果你的Sql查询语句: where first_name="Bob"
下面哪些字段内容会返回匹配:
‘Bob‘ : utf8_bin, utf8_general_ci and utf8_general_cs
‘B?b‘ : utf8_general_ci and utf8_general_cs 将?转为o
‘B?B‘ : utf8_general_ci 不区分大小写

二、

MysQL数据库utf8_unicode_ci与utf8_general_ci的区别

初学PHP时,在新建MysQL数据库的时候,你很可能会为设置“字符集”为utf8 -- UTF-8
Unicode时,“整理”是用utf8_general_ci还是用utf8_unicode_ci而烦恼。在我初学PHP时也为此困惑过,来看看下面这篇文章吧。

当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt
、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。

utf8_general_ci是一个遗留的
校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的校对规则相比,比较正确性较差)。

例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:
Ä = A
Ö = O
ü = U
两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:
ß = s
但是,对于utf8_unicode_ci下面等式成立:
ß = ss
对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集
校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。

utf8_general_ci也适用与德语和法语,除了‘ß’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。

用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下
utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据
库时一般选用utf8_general_ci就可以了。

phpMyAdmin中mysql的创建数据库时的编码的问题

时间: 2024-10-27 00:22:17

phpMyAdmin中mysql的创建数据库时的编码的问题的相关文章

创建数据库时指定编码方式

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE 的语法: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name[create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charse

MySQL之创建数据库

1.创建数据库create database或CREATE DATABASE   //数据库无大小写之分 create database <basename>                 或   CREATE DATABASE <BASENAME>        或create database if not exists <basename> [[default] character set <字符集名> ]                     

phpmyadmin创建数据库设置默认编码

php做项目的时候要用到数据库.创建数据库,难免就会输入中文字符.但在sql命令控制台中,sql语句插入中文,最后查询出来,结果都是以?代替的.看着非常头疼.我刚开始都是在phpmyadmin中 设置默认编码,先改数据库编码方式,再改表的编码方式,在该字段的编码方式.非常的烦人啊.放在脚下的西瓜刀都拿出来了.原谅的我的不淡定,那么如何在phpmyadmin创建数据库设置默认编码为utf-8呢? 下面我介绍这种方法,一劳永逸. phpmyadmin 创建数据库的默认编码是:latin1_swedi

关于创建数据库时的一些操作

1.创建数据库时,选项中的恢复模式 完整:允许发生错误时恢复数据库.在发生错误时,可以及时的使用事务日志恢复数据库. 大容量日志:当执行操作的数据量比较大时,只记录该操作事件,并不记录插入的细节.例如,向数据库中插入上万条记录数据,此时只记录了该插入操作,而对于每一个插入的内容并不记录.这种操作可以在执行某些操作时提高系统性能,但是当服务器出现问题的时候,只能恢复到最后一次备份的日志中的内容. 简单:每次备份数据库的时候清除事务日志,该选项表示根据最后一次对数据库的备份进行恢复. 2.常用系统存

MySQL 创建数据库并且指定编码

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci MySQL 创建数据库并且指定编码,布布扣,bubuko.com

ORACLE创建数据库时无法创建目录

ORACLE创建数据库时无法创建目录,如图所示信息 原因:没有创建写入的权限 解决:修改文件夹权限即可 F:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca 增加验证用户的写入.修改权限即可 备注:在win7.win8系统上,相关oracle的软件(PL/SQL)都最好以"以管理员的身份运行",否则会产生一些莫名其名的错误,比如创建失败,创建时闪退,提示为空等

数据库入门(mySQL):创建数据库

基于JetBrains DataGrip创建数据库.SQL语句创建数据库 MySQL数据库存储引擎和数据类型 创建数据库表及基本操作 导出数据库.删除数据库.导入数据库 一.基于JetBrains DataGrip创建数据库.SQL语句创建数据库 1.1 首先确定mySql服务处于开启状态(win10):右击“我的电脑”-“属性”-“系统和安全”-“管理工具”-“服务”: 如果没有显式正在运行:双击-"启动类型:手动"-“服务状态:启动”-“确定”.(IOS系统每次开机都是关闭状态的,

mysql之创建数据库,创建数据表

写在前面 项目中用到mysql数据库,之前也没用过mysql,今天就学下mysql的常用的语法,发现跟sql server的语法极其相似.用起来还是蛮简单的. 一个例子 1.创建一个名为School的数据库. 1.创建一个学生信息表:学生id(自增,主键),姓名,年龄,性别,电话,籍贯,入学时间,所属班级id(外键). 2.创建一个学生成绩表:成绩id(自增,主键),科目,成绩,学生id(外键),创建时间. 3.创建一个学生班级表:班级id(主键,自增),班级名称. 创建表和数据库 #如果存在数

MySQL基础-创建数据库和表

显示数据库一览 show databases; (SQL命令本身不区分大小写) mysql> show databases; Database information_schema mysql test 小结:information_schema数据库又称信息架构,管理从表开始的数据库组成信息,以及用户管理信息的检索专用的数据库.确认这些数据库内容就可以掌握现在数据库的状态.不可在mysql和information_shema数据库中保存用户经常使用的数据.最后的test数据库是测试用的数据库,