表名 改为 小写 SELECT CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME ‘, LOWER( table_name ), “;” ) AS statement...FROM information_schema.TABLES WHERE table_schema = ‘数据库’ AND table_name LIKE ‘表名%’;...列名 改为 小写 SELECT concat( ‘alter table ‘, TABLE_NAME, ‘ change column ‘, COLUMN_NAME, ‘ ‘, LOWER(
前言: 一般在数据库使用规范中,我们都会看到这么一条:库名及表名一律使用小写英文。你有没有思考过,为什么推荐使用小写呢?库表名是否应该区分大小写呢?带着这些疑问,我们一起来看下本篇文章。...除此之外,MySQL 还提供了 lower_case_table_names 系统变量,该参数会影响表和数据库名称在磁盘上的存储方式以及在 MySQL 中的使用方式,在 Linux 系统,该参数默认为...MySQL 在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。 2 库表名以创建语句中指定的字母大小写存储在磁盘上,但是 MySQL 在查找时将它们转换为小写。...这样会更易用些,程序里无论使用大写表名还是小写表名都可以查到这张表,而且不同系统间数据库迁移也更方便,这也是建议将 lower_case_table_names 参数设为 1 的原因。...库表大小写问题,相信你看了这篇文章后,应该明白为什么库表名建议使用小写英文了。
在linux环境下表名是区分大小写的 问题 执行SHOW VARIABLES LIKE '%lowercasetable_names%' 输出结果: ?...其中 0:区分大小写,1:不区分大小写 解决办法 在mysql的配置文件中添加 lowercasetable_names=1 实际解决方式 先查找mysql使用的配置文件 添加配置 重启mysql 查看是否生效...正常情况使用locate my.cnf命令可以列出所有的my.cnf文件 ps命令查看是否使用了指定目录的my.cnf 没有找到 [root@iZbts0ohz0hZ ~]# ps aux|grep...datadir=/work1/soft/mysql/data socket=/work1/soft/mysql/mysql.sock #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写..., 不区分大小写 lower_case_table_names=1 # 开启ip绑定 #bind-address = 0.0.0.0 [mysqld_safe] log-error=/var/log/mysqld.log
记录一下,根据工作中项目交付要求,要将MySQL数据库中的表名和字段名中做一个规范,其中就有将表名和字段名统一做小写处理。...废话不多说,直接上MySQL脚本: 批量修改数据库下的表名(大写改小写): SELECT concat( 'rename table ' , TABLE_NAME , ' to ' , LOWER...(TABLE_NAME) ,' ;' ) AS '修改脚本sql' FROM information_schema.TABLES t WHERE TABLE_SCHEMA = '数据库名'; 批量修改列名...COLUMN_DEFAULT ), '\'' )), ';' ) AS '修改脚本sql' FROM information_schema.COLUMNS t WHERE TABLE_SCHEMA = '数据库名...'; 如果是小写改大写,只需要将LOWER 修改为 UCASE即可。
这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查找表上。该行为也适合数据库名和表的别名。...也就是说,mysql设置为不分区大小写后,创建库或表时,不管创建时使用大写字母,创建成功后,都是强制以小写保存!...3)登陆mysql数据库,"alter table 旧表名 rename 新表名" 将带大写字母的旧表改为小写表名 4)最后再启动mysql即可!...下数据库名、表名、列名、别名大小写规则是这样的: 1)数据库名与表名是严格区分大小写的; 2)表的别名是严格区分大小写的; 3)列名与列的别名在所有的情况下均是忽略大小写的; 4)变量名也是严格区分大小写的...; b)使用alter修改 所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计表的时候都转为小写!!
最近公司项目的MySQL数据库要迁移到linux下,部署时日志总是显示报找不到一个表,用MYSQL查看明明有这个表。后来经百度,原来LINUX下的MYSQL默认是区分表名大小写的。...用命令查看当前是否区分大小写: *************************************** mysql> show variables like "%case%"; +-------...set (0.00 sec) ****************************************** lower_case_file_system | OFF 说明当前区分大小写...修改方法 1.ROOT登录,vi /etc/my.cnf 2.在[mysqld]下加入一行:lower_case_table_names=1 //(为0时区分) 3.保存退出,重启MySQL。
继续造轮子 mysql数据库改名,官方没有直接修改数据库名称的命令 只有通过修改表名方式实现 #!.../bin/bash mysqlconn="mysql -uroot -p123456" 需要修改的数据库名 olddb="test1" # 修改后的数据库名 newdb="test2" # 创建新数据库...$mysqlconn -e "drop database if exists ${newdb};create database ${newdb};" # 获取所有表名 tables=$($mysqlconn...-N -e "select table_name from information_schema.tables where table_schema='${olddb}'") # 修改表名 for
我们大家可能都碰到过这种情况:在Linux下,MySQL的表名区分大小写,而在Windows下是不区分,从Windows下导出的数据脚本中使用的是小写,而Hibernate生成的SQL中表名是大写的,所以查不出数据...这个时候怎么办呢,显然改程序是不行的,时间上也不允许,所以只能设置MySQL数据库不区分大小写了,大家看以下步骤: 1、查询MySQL是否设置了区分大小写 show variables like "%case...其中lower_case_table_names代表了:0是区分大小写; 1是不区分大小写。显然我这个MySQL是区分大小写的。...拓展知识 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的...; 4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。
MySQL中可以使用rename table这个SQL语句来修改表名。...rename table这个SQL语句来修改表名的基本语法是: RENAME TABLE TO ; 我们来把test表修改为test1表。...1、首先查看一下当前数据库中有哪些表。...mysql> rename table test to test1; Query OK, 0 rows affected (0.08 sec) 3、再次查看一下结果。...| | test2 | +-------------------+ 2 rows in set (0.00 sec) 关于MySQL使用SQL语句修改表名,本文就介绍这么多,希望对大家有所帮助
而Windows下的MySQL却是大小写不敏感的,所有表名和数据库名都会变成小写。...对于怎么启用或者停用MySQL数据库的大小写敏感,这个网上随便都能找到,就是改改参数lower_case_table_names,然后重启即可。...为此,我们需要将MySQL改为大小写敏感的模式,然后去重命名每个表名和数据库名。...test1数据库中,而且表名都变成了小写了。...一个一个的数据库去这么做,然后再把MySQL的参数改为大小写不敏感,这样才能正常使用。
问题场景 在使用mysql命令进行数据库创建时,发现“-”等特殊字符无法使用,提示sql语句语法错误。...mysql> CREATE DATABASE test-test; 解决方案 使用反引号“,即英文输入法下,数字1左边,和“~”同一个按键上的符号,可正常执行。...mysql> CREATE DATABASE `test-test`; Query OK, 1 row affected (0.00 sec)
在 Innodb 数据库引擎下修改数据库名的方式与 MyISAM 引擎下修改数据库的方式完全不一样,如果是 MyISAM 可以直接去数据库目录中 mv 就可以,Innodb 如果用同样的方法修改会提示相关表不存在...mysqldum 导出要改名的数据库 删除原来的旧库 这种方法是安全的,但是如果数据量大,会很耗时 第三种方法(推荐): 使用 shell 脚本创建新数据库,并快速将旧库的表变更到新库 #!.../bin/bash # 假设将 sakila 数据库名改为 new_sakila mysql -uroot -p123456 -e 'create database if not exists new_sakila...='sakila'") for table in $list_table do mysql -uroot -p123456 -e "rename table sakila....$table" done 这里用到了 rename table 更改表名的命令,但是如果新表名后面加数据库,将会将原来的数据库的表移动到新的数据库,所有这种方法既安全又快速,推荐!
1 之前写了docker-compose.yml安装mysql 但是发现其表名大小写敏感,也没指定配置文件,参考我之前写的: mysql大小写踩坑 mysql8卸载重新安装并配置lower_case_table_names...=1 mysql having报错this is incompatible with sql_mode=only_full_group_by 于是重新编写docker-compose.yml # Use...root/example as user/password credentials version: '3.1' services: db: image: mysql # NOTE...: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html...Untagged: mysql:latest Untagged: mysql@sha256:232936eb036d444045da2b87a90d48241c60b68b376caf509051cb6cffea6fdc
第二层是SQL语句的接口SQL interface,sql语句的解析器parser,以及sql语句的优化optimizer,因为MySQL的sql语句的标准格式是全大写的,而我们敲的sql语句一般是小写的...下面对比了utf8_general_ci和utf8_bin校验规则不同时,数据库查询时所造成的查询结果的不同,其实就是区不区分大小写,默认数据库是不区分大小写的,也就是utf8_general_ci校验规则...数据库的重命名MySQL是不支持的,并且这是非常合理的,因为数据库的名字是量级很重的,一旦数据库的名字发生改变,则上层所有使用数据库的代码都需要做出调整,代价特别大,所以一般在项目前期讨论协商的时候,一定要确定好数据库的命名等工作...除非万不得已,必须要对数据库重新命名的时候,一般会采用备份与恢复的方式来进行重命名,备份的指令:mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径...-u root -p -B 数据库名1 数据库名2 … > 数据库存放路径。
除此之外,实际公司使用的MySQL数据库,存储的数据最少也几百万条记录打底,一旦全列查询,则查询结果会疯狂刷屏到显示器上,看也没法看,而且还有可能导致mysqld服务卡死,所以平常我们自己敲一些简单的数据库...MySQL中判断是否相等一般用=,还有一个比较鸡肋的东西就是,=是NULL不安全的,是NULL安全的,其实这里的安全不安全指的就是NULL在作为判断条件时候的判断结果,一般判断是否等于null...删除孙悟空同学的考试成绩 删除总成绩倒数第一名的同学 limit配合order by子句便可筛选出倒数第一名的同学 4.2 truncate和delete from的区别 面试官灵魂一问: MySQL...一般来说group by通常配合聚合函数来使用,以便进行分组聚合统计。 下面是oracle 9i的经典测试表。...显示部门号为10的部门名,员工名和工资 显示各个员工的姓名,工资,及工资级别 显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno) 像上面这样的需求,其实就需要自连接,可以使用多表查询的方式
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 选择数据库为MySQL...# 主机地址 'PORT': 3306, # 数据库服务端口,MySQL是3306 'USER': 'root...} } 为了能够使用MySQL,你还需要在__init__.py文件中做如下修改。...import pymysql pymysql.install_as_MySQLdb() 然后在MySQL中创建名为login的数据库。 ? 最后,在数据库中加入两条数据。...(加入数据,你使用可视化工具也好,使用SQL语句也行,都没有任何问题) ? 做完这些以后,别忘了数据库迁移。
Django使用MySQL数据库 Django默认使用sqlite3作为数据库,web服务一般不会使用sqlite作为数据库,下面是在Django中使用mysql数据库的配置步骤。...在settings.py文件进行配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '...'root', # 用户名 'PASSWORD': '123456', # 密码 'NAME': 'book', # 数据库名
通过 vim /etc/my.cnf 修改配置文件, 在 mysqld 模块下面添加 lower-case-table-names=1, 参数 1 代表大小不敏感,0 代表大小写敏感。...再通过 service mysql restart 或 service mysqld restart 命令重启下服务就生效了。...效果演示: 下面是我修改配置文件之前,默认是大小写敏感的,我的表名本身是小写的。 这时通过大写表名查询可以看到查不到。 修改配置文件后,再查询一下就可以查到了。
浏览量 2 假设你已经在服务器上安装好了MySQL数据库了,这里以腾讯云服务器进行远程连接的操作。 下载sqldbx,这里可以去官方网站进行下载,个人可以免费使用。...打开服务器上的数据库端口,MySQL默认端口为3306。...下载完成之后,启动连接,输入对应的参数,提示odbc驱动相关错误,这里需要去下载mysql odbc的驱动程序进行安装,下载地址: https://dev.mysql.com/downloads/connector.../odbc/ 下载安装成功之后,我们这里使用root账户进行远程连接,发现提示拒绝连接的错误,此时,我们需要登录到服务器对root账户进行授权处理,让它能够进行远程登录,使用mysql -uroot -...p登录到数据库,然后执行下面的语句。
数据库大小写问题可以说让很多用数据库的人感受是:建表时,哇建出来了;使用时,我去,怎么找不到表,怎么找不到字段。没事,这是小场面。...先说为什么是坑及解决办法 说是坑的原因是:数据库在大小写敏感的配置下创建,如果修改为大小写不敏感后,原来创建的区分大小写的表名就不能访问。...如何避免:所有的库名,表名,字段名使用小写,单词用下划线"_"间隔,所有命名中,不允许使用 反引号,双引号包裹,ODS 层遇到特别骚的,需要提审批。这个规则保你在数据库使用达到 95% 以上的幸福。...到这里 MySQL 不跟了, MySQL 在字段上不区分大小写。MySQL 字段命名也可以用反引号包裹,但这块规则和表名库名不一致。...【强制】对象名(表名、列名、函数名、视图名、序列名、等对象名称)规范,对象名务必只使用小写字母,下划线,数字。不要以数字开头,不要使用保留字。
领取专属 10元无门槛券
手把手带您无忧上云