MySQL实操技巧及注意事项
新工作上手第三天!发现SQL在实操中会遇到的问题确实比看书听课练习中遇到的问题多很多,所以整理一个文档方便以后再遇到同样问题时进行查阅,自留版,有可能会有纰漏,如果发现问题欢迎大家指正~
5.11Data truncated for column XXXXX
数据类型长度不一致,我是在将varchar转换为double型的时候出现的这个报错,将需要插入的表的对应列改为varchar就可以了
12.24透视表相关
想实现下图的汇总结果,显示方式选择父级汇总的百分比
12.21 查找某一字段是否包含中文
SELECT column FROM table WHERE length(column)!=char_length(column)
当字符集为UTF-8,并且字符为中文时,length() 和 char_length() 两个方法返回的结果是不相同的。
11.26 In aggregated query without GROUP BY
使用聚合函数的时候发现如下报错
因为MySQL的sql_mode的值设置的不同
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题。
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
一般是5.7以上版本出现的问题,在写代码之前把这段代码加上就可以
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
但是一般需要SUPER权限(SUPER privilege(s)),如果是远程连接公司数据库的话一般改不了,导出数据再导入本地连接中处理即可
odbc excel driver 常见错误 无法打开注册表项
暂时没有找到原因,有可能是和权限有关
不过把excel里的默认sheet名改一下就OK了
pycharm缺少包
报错如下
意思是缺少包,处理方式如下
file–settings–点下图的加号位置
搜索对应的包,直接下载即可
使用WPS导入数据时报错,找不到Microsoft office 元驱动程式
我安装的MySQL是8.0版本,64位,在第一次导入数据的时候出现了下面的错误
查阅发现WPS貌似只有32位版本?所以导致了上面的错误,需要下载相应驱动:https://www.microsoft.com/en-us/download/details.aspx?id=13255