python连接mysql数据库把取数据存入数据库
- 安装pymysql库
1 | pip install pymysql |
- 建存储数据表
1 2 3 4 5 | <br> -- stock.stock_all_codes definition CREATE TABLE `stock_all_codes` ( `code` varchar (100) NOT NULL COMMENT '股票代码' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT= '股票代码表' ;<br> |
CREATE DATABASE `stock` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;
- 连接数据源
1 2 3 4 5 6 7 8 9 | import pymysql db = pymysql.connect(host = 'localhost' , user = 'root' , password = '123456' , port = 3306 , db = 'stock' ) cursor = db.cursor() sql = 'select * from stock_all_codes;' #查询sql print (sql) cursor.execute(sql) cursor.close() db.close() |
- 查询数据库
# -*- coding: UTF-8 -*-
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", passwd="123456", db="stock", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM stock_all_codes"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
print("代码")
for it in results:
for i in range(len(it)):
print(it[i]+"\n")
except:
print("Error: unable to fecth data")
# 关闭数据库连接
cursor.close()
db.close()
- 插入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import pymysql db = pymysql.connect(host = 'localhost' ,user = 'root' , password = '123456' , port = 3306 , db = 'stock' ) cursor = db.cursor() # 多字段动态插入mysql数据库中,data,添加字段 data = { 'code' : 'sh000001' } table = 'stock_all_codes' keys = ', ' .join(data.keys()) values = ', ' .join([ '%s' ] * len (data)) sql = 'INSERT INTO {table}({keys}) VALUES ({values})' . format (table = table, keys = keys, values = values) try : cursor.execute(sql, tuple (data.values())) print ( '入库成功!' ) db.commit() except : print ( '入库失败' ) db.rollback() cursor.close() db.close() |
- 更新数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import pymysql db = pymysql.connect(host = 'localhost' ,user = 'root' , password = '123456' , port = 3306 , db = 'stock' ) cursor = db.cursor(); data = { 'code' : 'sh00002' } table = 'stock_all_codes' keys = ', ' .join(data.keys()) values = ', ' .join([ '%s' ] * len (data)) sql = 'INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE' . format (table = table, keys = keys, values = values) update = ',' .join([ " {key} = %s" . format (key = key) for key in data]) sql + = update try : cursor.execute(sql, tuple (data.values()) * 2 ) print ( '更新成功' ) db.commit() except : print ( '更新失败' ) db.rollback() cursor.close() db.close() |
分类:
Apython量化交易
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~