mysql字符串默认长度(MySQL 字符类型大小写敏感)
类别:数据库 浏览量:975
时间:2022-01-22 01:42:27 mysql字符串默认长度
MySQL 字符类型大小写敏感mysql字符类型默认是不区分大小写的,即select * from t where name='AAA'与='aaa'没区别,以下是测试的例子
|
(root@localhost)[hello]> create table test1(id int , name varchar (10)); (root@localhost)[hello]> insert into test1 values (1, 'aaa' ),(2, 'AAA' ),(3, 'bbb' ),(4, 'BbB' ); (root@localhost)[hello]> select * from test1; + ------+------+ | id | name | + ------+------+ | 1 | aaa | | 2 | AAA | | 3 | bbb | | 4 | BbB | + ------+------+ (root@localhost)[hello]> select * from test1 where name = 'AAA' ; + ------+------+ | id | name | + ------+------+ | 1 | aaa | | 2 | AAA | + ------+------+ (root@localhost)[hello]> select * from test1 where name = 'aaa' ; + ------+------+ | id | name | + ------+------+ | 1 | aaa | | 2 | AAA | + ------+------+ |
可以看到此时where条件后面的'AAA'与'aaa',查出来的结果没啥区别。
如果只想找出'AAA'的可以有以下几种办法
1.在sql中加入binary关键字
|
(root@localhost)[hello]> select * from test1 where binary name = 'AAA' ; + ------+------+ | id | name | + ------+------+ | 2 | AAA | + ------+------+ |
2.修改列的定义
先查看原始表的定义
|
(root@localhost)[hello]> show create table test1\G *************************** 1. row *************************** Table : test1 Create Table : CREATE TABLE `test1` ( `id` int (11) DEFAULT NULL , ` name ` varchar (10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
修改表test1的name列
|
alter table test1 modify column name varchar (10) character set utf8mb4 collate utf8mb4_bin default null ; |
collate utf8mb4_bin表示where过滤或者order by排序区分大小写
此时查看test1的定义
|
(root@localhost)[hello]> show create table test1\G *************************** 1. row *************************** Table : test1 Create Table : CREATE TABLE `test1` ( `id` int (11) DEFAULT NULL , ` name ` varchar (10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
接着再执行查询语句
|
(root@localhost)[hello]> select * from test1 where name = 'AAA' ; + ------+------+ | id | name | + ------+------+ | 2 | AAA | + ------+------+ |
下面再创建一张test2表,就会发现上面修改列的语句其实相当于在创建表时varchar后面跟binary
|
(root@localhost)[hello]> create table test2(id int , name varchar (10) binary ); (root@localhost)[hello]> show create table test2\G *************************** 1. row *************************** Table : test2 Create Table : CREATE TABLE `test2` ( `id` int (11) DEFAULT NULL , ` name ` varchar (10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
下面介绍如何设置字符大小写敏感
- 数据库级别设置字符大小写敏感
创建
|
create database <db_name> default character set utf8mb4 collate utf8mb4_bin; |
修改
|
alter database <db_name> default character set utf8mb4 collate utf8mb4_bin; |
- 表级别设置字符大小写敏感
创建
|
create table <tb_name> ( ...... ) engine=innodb default charset=utf8mb4 collate =utf8mb4_bin; |
修改
|
alter table <tb_name> engine=innodb default charset=utf8mb4 collate =utf8mb4_bin; |
- 列级别设置字符大小写敏感
创建
|
create table <tb_name> ( `field1` varchar (10) character set utf8mb4 collate utf8mb4_bin, ...... ) |
修改
|
alter table <tb_name> modify column `field1` varchar (10) character set utf8mb4 collate utf8mb4_bin default null ; |
继承关系是列-->表-->库,优先级是列>表>库
以上就是MySQL 字符类型大小写敏感的详细内容,更多关于MySQL 字符类型大小写的资料请关注开心学习网其它相关文章!
原文链接:https://www.cnblogs.com/ddzj01/p/10736670.html
您可能感兴趣
- mysql锁技术(MySQL 加锁控制并发的方法)
- idea怎样连接mysql(IDEA配置连接MYSQL数据库遇到Failed这个问题解决)
- 常用的mysql查询语句(MySQL查询重写插件的使用)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- phpstudy的mysql无法启动(Windows系统下解决PhPStudy MySQL启动失败问题)
- mysqldata数据如何恢复(mysql5.7.33误删除ibdata文件找回数据的方法)
- 2021-10-04 01:06:07
- mysql8.0.20安装教程图解(mysql 8.0.24 安装配置方法图文教程)
- 阿里云mysql升级注意事项(阿里云mysql空间清理的方法)
- 查看mysql索引缓存(MySQL查询缓存的小知识)
- mysql 索引表空间(MySQL如何构建数据表索引)
- mysql怎么查看表的字段(Mysql 获取表的comment 字段操作)
- mysql的sql语句优化5种方式(MySQL:五个常见优化SQL的技巧)
- 使用mysqldump命令来备份(linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解)
- mysql常见错误分析(分析MySQL抛出异常的几种常见解决方式)
- mysql 高级查询语法(MySQL查询语句进阶知识集锦)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
热门推荐
- python为什么要用多进程(对Python的多进程锁的使用方法详解)
- jenkins回滚docker容器(关于docker部署的jenkins跑git上的程序的问题)
- SQL Server Check 约束
- mysql的复制原理(浅析MySQL的WriteSet并行复制)
- dede菜单激活状态(DEDE采集大师官方留后门的删除办法)
- dedecms更新后设置空白(织梦DedeCms上传的图片点击打开改为不新窗口打开)
- python爬虫面试经历(搞定这套Python爬虫面试题面试会so easy)
- canvas 中文字体(详解canvas绘制网络字体几种方法)
- SQL SERVER中与内存相关的计数器
- dedecms如何写接口(dede的sql语句调用方法使用示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9