mysql大小寫
在實際的項目中,大家或多或少都會遇到過mysql數據庫大小寫的問題。下面,博主將簡單的介紹一下mysql數據庫的大小寫問題。
sql關鍵字和函數名
在mysql數據庫中,sql關鍵字和大小寫 是不區分大小寫的。下面語句的倆種寫法,mysql都能夠正常的執行。
/*全小寫*/
select now();
/*全大寫*/
SELECT NOW():
數據庫名和表名
博主在一次數據庫的遷移時,就碰到了數據庫表名大小寫的問題。在windows服務器上運行好好的應用,在mysql數據庫遷移到linux服務器上后,就出現了表不存在的異常。后面經過排查得知,mysql數據庫名和表名與操作系統是否區分大小寫有關系
windows系統
在windows系統下,mysql數據庫不區分大小寫。也就是說你的select語句中的表名是全大寫的,而實際數據庫的表名是全小寫的,也能夠查詢到數據。
查詢大寫的名稱ROLE表,能夠查詢到表數據。
查詢小寫的名稱ROLE表,能夠查詢到表數據。
linux系統
在linux系統下,mysql數據庫區分大小寫。如下圖所示,查詢大寫的名稱ROLE表,datagrip返回了 表不存在的錯誤提示。
而使用全小寫的名稱role,則能夠查詢到表數據。
博主這里使用是docker運行的mysql鏡像,配置文件的路徑為/etc/mysql/mysql.conf.d/mysqld.cnf,添加如下所示的配置,使的mysql不區分大小寫。
low_case_table_names=1
配置完后,重啟mysql服務,這時候再次查看執行結果。
列名和索引名
在mysql數據庫中,不區分列名和索引名的大小寫。如下圖所示,使用大寫和小寫的id字段都能夠查詢到數據。
如下圖所示,使用大寫和小寫的索引名稱都能夠正常的查詢數據。
博主微信公眾號
