环境依赖:
MySQL 5.7.17
Python 2.7
Mysql-python 1.2.5
MySQLdb是基于MySQL C API(原生MySQL API)为核心的一个面向Python的接口,封装了许多MySQL C API的方法,简化Python使用MySQL。在原生的MySQL API中,万物皆String。(当然,可以通过自定义conv来实现数据类型转化)。官方解释如下图所示:
Eg:原始的数据源中,age列是int类型的,基于原生的API查询结构后,所有结果均为string类型;执行效果如下图所示:
可以通过自定义转换dict来实现查询结果的类型转换;具体实现也很简单,只需要在mysql初始化的时候,自定义conv参数即可(eg:将SQL中int转化为Long,将SQL中的float转化为Double),代码样例如下图所示:
由于原始API并不是那么的拿来主义,直接基于此操作时需要care的东西太多了,所以才有了MySQLdb这样简单易上手的依赖工具。MySQLdb带来的便捷主要体现在一下两点:a) 封装并提供很多API接口,便于使用;b) 自动识别并转化为原始SQL表的字段类型,从而保证你查询得到的结果类型与SQL表一致。
由于高级的API方法在实际工作时用到了很多,再次就不对此做过多描述;在这里想分享的是数据类型自动识别是所存在的一种情况:基于MySQLdb查询int字段时,实际默认的返回类型并非int类型,而是转化为L