统一性:
read_sql本质上是read_sql_table、read_sql_query的统一方式。三者都return返回DataFrame。
差异性:(有待总结)
根据目前的尝试,read_sql可能会查询数据在数据库中的存储过程等,需要给予的权限要高于两外两个函数。因此在遇到错误时不妨尝试使用另两个函数。
read_sql_query()不需要sql语句,直接传入表名和列名进行读取。
似乎,read_sql_table还具备对数据库直接进行增删改的功能。
官方说明:
read_sql
read_sql_query
read_sql_table
1.pandas.read_sql()
pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
- sql:SQL命令字符串
- con:连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
- index_col: 选择某一列作为index
- coerce_float:非常有用,将数字形式的字符串直接以float型读入
- parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。可以直接提供需要转换的列名以默认的日期形式转换,也可以用字典的格式提供列名和转换的日期格式,比如{column_name: format string}(format string:"%Y:%m:%H:%M:%S")。
- columns:要选取的列。一般没啥用,因为在sql命令里面一般就指定要选择的列了
- chunksize:如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就是提供的值的大小。
2.pandas.read_sql_query()
pandas.read_sql_query()(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, chunksize=None)
- sql:SQL命令字符串
- con:连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
- index_col: 选择某一列作为index
- coerce_float:非常有用,将数字形式的字符串直接以float型读入
- parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。可以直接提供需要转换的列名以默认的日期形式转换,也可以用字典的格式提供列名和转换的日期格式,比如{column_name: format string}(format string:"%Y:%m:%H:%M:%S")。
- chunksize:如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就是提供的值的大小。
3.pandas.read_sql_table()
pandas.read_sql_query()(table_name, con,schema='None,index_col=None, coerce_float=True, parse_dates=None, columns=None,chunksize=None)
- table_name:连接的数据库名字
- con:连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
- index_col: 选择某一列作为index
- coerce_float:非常有用,将数字形式的字符串直接以float型读入
- parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。可以直接提供需要转换的列名以默认的日期形式转换,也可以用字典的格式提供列名和转换的日期格式,比如{column_name: format string}(format string:"%Y:%m:%H:%M:%S")。
- columns:columns:要选取的列。
- chunksize:如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就是提供的值的大小。
网友评论