MySQL大小写问题的简单说明(关键字/函数/表名)(转)

MySQL语句中字母大小写规则随着语句元素的不同而变化,同时还要取决于MySQL服务器主机上的操作系统。

SQL关键字与函数名

关键字和函数名不区分字母的大小写。如、abs、bin、now、version、floor等函数、SELECT、WHERE、ORDER、GROUP BY等关键字。

数据库、数据表和视图的名字

在服务器主机上,MySQL数据库和数据表用底层文件系统中的目录和文件表示。因此数据库和数据表名字的默认字母大小写情况取决于服务器主机上的操作系统在文件名方面的规定。Windows文件名不区分字母的大小写,所以运行在windows主机上的MySQL服务器就不区分数据库和数据表名字的字母大小写。运行在Unix\Linux主机上的MySQL服务器区分数据库和数据表名字的大小写。(但是Linux下可以通过配置来实现忽略大小写)

MySQL中使用一个文件来表示一个视图,所以视图也符合上述规则。

存储程序的名字

存储函数、存储过程、事件的名字不区分字母的大小写。触发器的名字要区分字母的大小写。

数据列和索引的名字

数据列和索引的名字在MySQL环境里不区分字母的大小写。实例如下:

字符串值

字符串值是否区分字母大小写,这取决于它是二进制还是非二进制,非二进制字符还要取决于字符集的排序方式。

参考:

http://blog.csdn.net/hsd2012/article/details/51436946(以上内容转自此篇文章)

http://blog.csdn.net/shuaijunlan/article/details/51505614

http://blog.csdn.net/msibigbang/article/details/8863048

http://blog.csdn.net/kai404/article/details/52169108

http://blog.csdn.net/bluishglc/article/details/7634969

http://blog.csdn.net/cnhk1225/article/details/56290005

http://blog.csdn.net/xinew/article/details/5856105

http://blog.csdn.net/mascf/article/details/53349831

http://blog.csdn.net/xinew/article/details/5856263

http://blog.csdn.net/t_332741160/article/details/54346428

http://blog.csdn.net/zzhongcy/article/details/41316289

http://blog.csdn.net/workaccumulate/article/details/42143963

http://blog.csdn.net/willpan1234/article/details/56015396

http://blog.csdn.net/boya734698063/article/details/38421419

http://blog.csdn.net/neutrojan/article/details/8147752

时间: 2024-07-30 10:19:30

MySQL大小写问题的简单说明(关键字/函数/表名)(转)的相关文章

用关键字做表名和字段时,如何删除

建表时千万要注意,避免使用关键字做表名和字段名. (1)在oracle中如果不小心用关键字做了字段名,在SQL中的使用方法:加上英文双引号,如下: 1 alter table RSFILEINFO drop column "DESC"; oracle中使用了关键字的字段常常不容易删除掉,要删除,使用上述语句.注意:删掉的字段名要大写. (2)在MySQL中如果使用了关键字,在SQL中的使用方法:加上符号·(倒符号,在数字键1的左边)如下: 1 select `desc` from ta

MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法

背景 在MySQL中,写SQL语句的时候 ,可能会遇到 You can't specify target table '表名' for update in FROM clause 这样的错误 错误含义 它的意思是说,不能先 select 出同一表中的某些值,再 update 这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值. 解决问题 将select出的结果再通过中间表select一遍,这样就可以解决错误了 MySQL 中 You can't specify target ta

MySQL 动态sql语句执行 用时间做表名

1. 描述 在使用数据的时候,我时候我们需要很多数据库,而且想用时间来做表名以区分.但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 比如,有一个表我们想以"2015-07-16 12:00:00"命名. 2. 解决方案 如果只是更换一个普通的表名的话,很简单,直接使用下面sql语句即可: alter table old_table_name rename new_table_name 但是要以时间为表名,动态命名的话就不可以了.首先我们可以用NOW()函数获取系统当前的时

MySQL 动态sql语句运行 用时间做表名

1. 描写叙述 在使用数据的时候,我时候我们须要非常多数据库,并且想用时间来做表名以区分.可是MySQL在存储过程中不支持使用变量名来做表名或者列名. 比方,有一个表我们想以"2015-07-16 12:00:00"命名. 2. 解决方式 假设仅仅是更换一个普通的表名的话,非常easy.直接使用以下sql语句就可以: alter table old_table_name rename new_table_name 可是要以时间为表名,动态命名的话就不能够了.首先我们能够用NOW()函数

PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)

关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datagrid,并加载数据 解决办法: 使用tree菜单的onClick事件: $('#tree').tree( { url:'tree_getData.php', onClick:function(node){ //判断点击的节点是否是子节点是子节点就创建datagrid,否则就return打开这个节点

mysql 通过事件定时为数据库创建动态表名

#检测事件是否开启 show variables like 'event_scheduler'; #开启事件(最好在my.init设置,因为重启后还会变回默认值OFF) set global event_scheduler = on; #创建事件(从11月24号开始每天执行一次) create EVENT eve_createTable ON SCHEDULE EVERY 1 DAY STARTS '2016-11-24 00:00:00' ON COMPLETION PRESERVE ENAB

shell 脚本连接mysql数据库查询database中表的数量和表名

#!/bin/bash MYSQLHOST="127.0.0.1" MYSQLUSER="root" MYSQLPWD="root" MYSQLPORT="3306" MYSQLDB="test" echo "health tables total:" > mysqlCount.txt; mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPWD -P$

linux下mysql表名大小写问题

近日,新mysql实例导入sql数据时,发现比老的mysql多了100+张表,最终发现是mysql表名大小写所致:很简单的问题却耽误很长时间,在此记录一下,以防再犯同样的错误: 1.Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写:2.用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:lower_case_table_names参数详解:l

mysql和Oracle的简单比较

ORA-27101: shared memory realm does not exist解决方法: 1.用CMD进入命令行2.sqlplus /nolog3.conn / as sysdba4.startup 首先介绍一下SQL92/99标准的四大分类 DML(数据操纵语言): select,insert,update,delete DDL(数据定义语言): create table,alert table,drop table,truncate table DCL(数据控制语言): gran