常用的 SQL 语句
大部分语句都可以通过 phpMyAdmin 解决,但实际要写出可能还要再翻看,所以暂时记录下。
创建 UTF-8 格式的数据库
1 | CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
更新小技巧
1 | UPDATE train AS a, train AS b |
大小写问题
在工作中遇到了项目工程在 Windows 上启动没问题,在 Ubuntu 上启动报错的问题,经排查发现是 MySQL 大小写问题。
原因分析
原来是 Linux 下的 MySQL 默认是要区分表名大小写的,而在 Windows 下是不区分。从 Windows 下导出的数据脚本中数据表的名字使用的是小写,而 Hibernate 生成的 SQL 中表名是大写的,所以查不出数据。
解决方案
让 MySQL 不区分表名大小写的方法其实很简单:
- 用 ROOT 登录,修改 /etc/my.cnf
- 在 [mysqld] 下加入一行:
lower_case_table_names = 1
- 重新启动数据库即可
sudo /etc/init.d/mysql restart
注意事项
MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则如下:
- 数据库名与表名是严格区分大小写的
- 表的别名是严格区分大小写的
- 列名与列的别名在所有的情况下均是忽略大小写的
- 变量名也是严格区分大小写的
复制表
1 | CREATE TABLE newtable LIKE oldtable; |