修改mysql数据的字符集校验规则使其区分大小写
mysql 使用utf8字符集默认的校验规则collate为utf8_general_ci,不区分数据的大小写
测试如下
- 13:50:04[test](;)> alter table test add col1 varchar(25) character set utf8 collate utf8_bin;
- Query OK, 0 rows affected (0.16 sec)
- Records: 0 Duplicates: 0 Warnings: 0
- 13:51:43[test](;)> update test set col1='BBc' where name='bbc';
- Query OK, 1 row affected (0.11 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
- 13:52:10[test](;)> select * from test;
- +------+------+
- | name | col1 |
- +------+------+
- | BBC | BBc |
- +------+------+
- 1 row in set (0.00 sec)
- 13:52:17[test](;)> select * from test where col1='bbc';
- Empty set (0.00 sec)
- 13:52:36[test](;)> alter table test modify name varchar(25) character set utf8 collate utf8_bin;
- Query OK, 1 row affected (0.14 sec)
- Records: 1 Duplicates: 0 Warnings: 0
- 13:53:26[test](;)> select * from test where name='bbc';
- Empty set (0.00 sec)
- 13:53:32[test](;)> alter table test modify name varchar(25) character set utf8 collate utf8_general_ci;
- Query OK, 1 row affected (0.14 sec)
- Records: 1 Duplicates: 0 Warnings: 0
- 14:06:26[test](;)> select * from test where name='bbc';
- +------+------+
- | name | col1 |
- +------+------+
- | BBC | BBc |
- +------+------+
- 1 row in set (0.00 sec)
修改数据库和表的字符集对已存入的和后来插入的数据都无影响,数据的collate依然是默认的
- alter table collate_ DEFAULT CHARSET=utf8 collate=utf8_bin;
- alter database test default COLLATE=utf8_bin;
修改相关变量不起效,变更字段的collate才奏效
- 14:09:00[(none)](;)> show variables like '%coll%';
- +----------------------+----------+
- | Variable_name | Value |
- +----------------------+----------+
- | collation_connection | utf8_bin |
- | collation_database | utf8_bin |
- | collation_server | utf8_bin |
- +----------------------+----------+
修改mysql数据的字符集校验规则使其区分大小写的更多相关文章
- 修改mysql数据存储的地址
修改mysql数据存储的地址 修改步骤如下 1,修改前为默认路径/var/lib/mysql/,计划修改为/data/mysql/data mysql> show variables like ...
- CentOS 7修改MySQL 5.6字符集为UTF-8
MySQL编码原因会导致数据库出现中文乱码 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 mys ...
- mac下修改mysql的默认字符集为utf8
1,检查默认安装的mysql的字符集 mysql> show variables like '%char%'; +--------------------------+------------- ...
- Ubuntu16.04下修改MySQL数据的默认存储位置
由于在Linux下MySQL默认是存储在/var/lib/mysql目录下,mysql的数据会非常大,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便 ...
- 修改mysql数据引擎的方法- 提高数据库性能
前言:同学告我说,他为了能使得数据查询变得快一点,修改的数据引擎,故查询一下,总结一下. 登录mysql后,查看当前数据库支持的引擎和默认的数据库引擎,使用下面命令: mysql>show en ...
- 修改mysql数据存储位置
停止mysql服务. 在mysql安装目录下找到mysql配置文件my.ini. 在my.ini中找到mysql数据存储位置配置datadir选项,比如我电脑上的配置如下: # Path to the ...
- 修改MySql 数据默认存储路径
1. cmd进入控制台 net stop mysql 2.复制原来数据库目录到新目录 复制C:\ProgramData\MySQL\MySQL Server 5.5\中的data目录到 D:\Prog ...
- linu下修改mysql数据库面
修改密码:1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是:mysqladmin -u root password 1234562.如果你的root现在有密码了(12 ...
- 修改mysql表的字符集
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 修改数据库字符集: 代码如下: ALTER DAT ...
随机推荐
- CentOS7.2上搭建httpbin环境
CentOS7上搭建httpbin环境 1.安装python31)安装python3.6可能使用的依赖yum -y install openssl-devel bzip2-devel expat-de ...
- 安装新版REDIS
http://redis.io/ # wget http://download.redis.io/redis-stable.tar.gz tar zxvf redis-stable.tar.gz -C ...
- POJ Charlie's Change 查理之转换(多重背包,变形)
题意: 给定身上的4种硬币,分别是1 ,5 ,10, 25面额各有多张,要求组成面额p的硬币尽可能多.输出组成p的4种硬币各自的数量. 思路: 多重背包,300+ms.用01背包+二进制的方法.记录下 ...
- miniLCD12864 16引脚
显示图片 main.c #include<reg51.h>#include"st7565.h"//---存一个图片--//unsigned char code pic[ ...
- uva 1601 poj 3523 Morning after holloween 万圣节后的早晨 (经典搜索,双向bfs+预处理优化+状态压缩位运算)
这题数据大容易TLE 优化:预处理, 可以先枚举出5^3的状态然后判断合不合法,但是由于题目说了有很多墙壁,实际上没有那么多要转移的状态那么可以把底图抽出来,然后3个ghost在上面跑到时候就不必判断 ...
- webpack-dev-server配置指南webpack3.0
最近正在研究webpack,听说webpack可以自己搭建一个小型的服务器(使用过vue-cli的朋友应该都见识到过),所以迫不及待的想要尝试一下.不过,在实际操作中发现,用webpack搭建服务器仍 ...
- Java执行系统命令工具类(JDK自带功能)
CommandUtil.java package utils; import java.io.ByteArrayOutputStream; import java.io.IOException; im ...
- java基础—基础语法1
一.标识符
- Bootstrap历练实例:面板的标题
面板标题 我们可以通过以下两种方式来添加面板标题: 使用 .panel-heading class 可以很简单地向面板添加标题容器.to easily add a heading container ...
- CPL学习笔记(一)
整型 计算机的内存的基本单位是位(bit),可以将其看作电子开关,可以开,表示1:也可以关表示0. 字节(byte)通常指八位的内存单元. 8bit=1byte=1B; 1KB=1024B; 1M=1 ...