|
基于游标得操作
游标是数据库操作的相对底层的能力。简单的操作如下:- import mysql.connector
- import random
- host = 'localhost'
- user = 'root'
- password = '8848is8848'
- dbname = 'demodb'
- def fakedata(maxtimes):
- # 连接数据库
- demodb = mysql.connector.connect(
- host=host, user=user, password=password, database=dbname)
- democur = demodb.cursor()
- # 插入模拟出来的数据。
- for _ in range(maxtimes):
- pm25 = random.uniform(0, 300)
- insertsql = f'insert into demotb(pm25) values({pm25})'
- democur.execute(insertsql)
- demodb.commit()
- democur.close()
- demodb.close()
- def querydata():
- # 连接数据库
- demodb = mysql.connector.connect(
- host=host, user=user, password=password, database=dbname)
- democur = demodb.cursor()
- # 进行一个简单的查询,返回多个值
- selsql = 'select pm25 from demotb where pm25 >50.0'
- democur.execute(selsql)
- for i in democur:
- print(i)
- demodb.commit()
- democur.close()
- demodb.close()
- def queryresult():
- # 连接数据库
- demodb = mysql.connector.connect(
- host=host, user=user, password=password, database=dbname)
- democur = demodb.cursor()
- # 进行一个简单的查询,返回多个值
- selsql = 'select max(pm25) from demotb'
- democur.execute(selsql)
- result = democur.fetchone()
- print(result)
- demodb.commit()
- democur.close()
- demodb.close()
- fakedata(10)
- querydata()
- queryresult()
复制代码 上述操作是比较底层的,尤其是使用游标操作,只能够是遍历操作,然后依次处理数据。为此,需要引入更加抽象与高层的工具。
基于pandas的操作
pandas虽然字面意思是熊猫,但实际上它是一个强力的数据分析工具框架。网上对于pandas的介绍非常多,但笔者还是推荐直接看官方文档更好。使用pandas访问数据库的代码如下:
- import mysql.connector
- import pandas as pd
- host = 'localhost'
- user = 'root'
- password = '8848is8848'
- dbname = 'demodb'
- def querydata():
- # 连接数据库
- demodb = mysql.connector.connect(
- host=host, user=user, password=password, database=dbname)
- # 进行一个简单的查询,返回多个值
- selsql = 'select pm25 from demotb where pm25 >50.0'
- listpd = pd.read_sql(selsql, demodb)
- demodb.close()
- print(listpd)
- querydata()
复制代码
此时返回的输出结果如下所示:- pm25
- 0 80.6221
- 1 192.4580
- 2 291.4450
- 3 279.8550
- 4 92.3528
- 5 107.4040
- 6 144.2040
- 7 213.5120
- 8 226.6060
复制代码 如下所示,pandas使用DataFrame来管理记录,其输出本身就具有表格的特性,与数据库表也很相似,理解与操作起来非常方便。
在新版本的pandas中,上述代码会引起警告,建议改成SQLAlchemy connectable(engine/connection),后续代码将引入这种升级的连接方式。
来源:https://www.cnblogs.com/shanxihualu/p/17072217.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|