期货日数据维护与使用_日数据维护_sqlite3数据库创建

目录

写在前面:

初始准备

开始编写数据库代码

t_product 

t_symbol_basemsg

t_main_symbol

t_online_symbol

t_last30_daily

小贴士


写在前面:

本文默认已经创建了项目,如果不知道如何创建一个空项目的,请参看以下两篇博文

PyQt5将项目搬到一个新的虚拟环境中
https://blog.csdn.net/m0_37967652/article/details/122625280
python_PyQt5开发工具结构基础
https://blog.csdn.net/m0_37967652/article/details/131969032

初始准备

python自带有sqlite3的包,如果没有的话,自己安装下

pip install sqlite3 -i https://pypi.tuna.tsinghua.edu.cn/simple

创建一个py文件,命名为 sqlite_tool.py(文件名大家自行定义,只要后面使用能找到就行)

将数据库路径定义为一个常量

YOUKUANG_DB_NAME = 【项目路径】+‘youkuang_db.db’

开始编写数据库代码

t_product 

def create_product_table():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()c.execute('''create table if not exists t_product (code text, name text,exchange_name text)''')conn.commit()conn.close()passdef batch_insert_product(pre_list: List):''':param pre_list: [(code,name),(code,name)]:return:'''conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_product values (?,?)'''c.executemany(sql_str,pre_list)# econn.commit()conn.close()passdef one_insert_product(pre_one:List):''':param pre_one: [code,name]:return:'''conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_product values (?,?)'''c.execute(sql_str,pre_one)# econn.commit()conn.close()passdef query_products_of_exchange_name(exchange_name:str):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# sexchange_name = '\'' + exchange_name + '\''sql_str = '''select code,name from t_product where exchange_name={exchange_name}'''.format(exchange_name=exchange_name)c.execute(sql_str)res_list = c.fetchall()# econn.commit()conn.close()return res_listdef query_all_product_codes_of_product():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''select code from t_product'''c.execute(sql_str)res_list = c.fetchall()# econn.commit()conn.close()res_list00 = []for item in res_list:res_list00.append(item[0])return res_list00

create_product_table  创建表

batch_insert_product 批量插入数据

one_insert_product 单条数据插入

query_products_of_exchange_name 查询某个交易所下的品种信息

query_all_product_codes_of_product 查询所有品种代码

t_symbol_basemsg

def create_symbol_basemsg_table():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()c.execute('''create table if not exists t_symbol_basemsg(ticker text, listDate text,product_code text,minChgPriceNum float,minChgPriceUnit text,limitUpNum float,limitUpUnit text,limitDownNum float,limitDownUnit text,contMultNum float,contMultUnit text,tradeMarginRatio float,deliYear integer,deliMonth integer,lastTradeDate text,firstDeliDate text,lastDeliDate text,tradeCommiNum float,tradeCommiUnit text)''')conn.commit()conn.close()passdef batch_insert_symbol_basemsg(pre_list:List):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_symbol_basemsg values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''c.executemany(sql_str, pre_list)# econn.commit()conn.close()pass

create_symbol_basemsg_table 创建表

batch_insert_symbol_basemsg 批量插入数据

t_main_symbol

def create_main_symbol_table():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()c.execute('''create table if not exists t_main_symbol (product_code text, ticker text,deliYear integer,start_date text)''')conn.commit()conn.close()passdef one_insert_main_symbol(pre_one:List):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_main_symbol values (?,?,?,?)'''c.execute(sql_str, pre_one)# econn.commit()conn.close()passdef update_main_symbol(product_code:str,ticker:str,deliYear:int,start_date_str:str):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# sticker = '\''+ticker+'\''start_date_str = '\'' + start_date_str + '\''product_code = '\'' + product_code + '\''sql_str = '''update t_main_symbol set ticker={ticker},deliYear={deliYear},start_date={start_date} where product_code={product_code}'''.format(ticker=ticker,deliYear=deliYear,start_date=start_date_str,product_code=product_code)c.execute(sql_str)# econn.commit()conn.close()pass

create_main_symbol_table 创建表

one_insert_main_symbol 单条数据插入

update_main_symbol 更新数据

t_online_symbol

def create_online_symbol_table():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()c.execute('''create table if not exists t_online_symbol (product_code text, ticker text, deliYear integer, newest_date text)''')conn.commit()conn.close()passdef one_insert_online_symbol(pre_one:List):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_online_symbol values (?,?,?,?)'''c.execute(sql_str, pre_one)# econn.commit()conn.close()passdef batch_insert_online_symbol(pre_list:List):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_online_symbol values (?,?,?,?)'''c.executemany(sql_str, pre_list)# econn.commit()conn.close()pass

create_online_symbol_table 创建表

one_insert_online_symbol 单条数据插入

batch_insert_online_symbol 批量数据插入

t_last30_daily

def create_last30_daily_table():conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()c.execute('''create table if not exists t_last30_daily (product_code text,ticker text,deliYear integer,tradeDate text,openPrice float,highestPrice float,lowestPrice float,closePrice float,settlePrice float,turnoverVol integer,turnoverValue integer,openInt integer)''')conn.commit()conn.close()passdef batch_insert_last30_daily(pre_list: List):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# ssql_str = '''insert into t_last30_daily values (?,?,?,?,?,?,?,?,?,?,?,?)'''c.executemany(sql_str,pre_list)# econn.commit()conn.close()passdef query_daily_by_pro_in_last30_daily(product_code:str):conn = sqlite3.connect(YOUKUANG_DB_NAME)c = conn.cursor()# sproduct_code_str = '\'' + product_code + '\''sql_str = '''select product_code,ticker,deliYear,tradeDate,openPrice,highestPrice,lowestPrice,closePrice,settlePrice,turnoverVol,turnoverValue,openInt from t_last30_daily where product_code={product_code}'''.format(product_code=product_code_str)c.execute(sql_str)res_list = c.fetchall()# econn.commit()conn.close()return res_list

create_last30_daily_table 创建表

batch_insert_last30_daily 批量插入数据

query_daily_by_pro_in_last30_daily 查询某品种的最近日数据

小贴士

sqlite3查看工具,SQLiteStudio,网上可以免费下载安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亲测表白网制作源码,在线制作表白,无数据库上传就能用

在线制作表白网源码 没有数据库上传就能用 后台/admin 账号密码都是admin

Vue2 - 生命周期

目录 1,介绍1,初次渲染2,数据改变后的重渲染 2,生成周期钩子执行顺序 1,介绍 创建 vue 实例和创建组件的流程基本一样。 1,初次渲染 做一些初始化操作,主要设置一些私有属性到实例中。 运行 b…

Springboot整合Flowable Modeler(flowable6.4.0)

文章目录 Springboot整合Flowable Modeler1 项目准备1.1 新建一个Springboot项目1.2 项目的pom文件1.3 Flowable Modeler UI下载2 后端代码2.1 复制代码2.2 代码修改2.3 新增代码3 启动项目Springboot整合Flowable Modeler 1 项目准备 1.1 新建一个Springboot项目 ​ Spring…

vue实现项目部署成功之后提示用户刷新页面

vue实现项目部署成功之后提示用户刷新页面 1. 项目根目录新建 version.js require("fs").writeFileSync("./public/version.txt", new Date().getTime().toString()) 2. 改写package.json中打包命令 "scripts": {"dev": "vue-cl…

微信小程序 分享按钮 监听用户分享成功

代码 <view><button class"btnLq ed flex justify-center" open-type"share" click"getAward">点击分享</button> </view>export default {data(){return{shareMd:false,//分享埋点}},onShow(){//if(this.shareMd){uni.…

【Java集合篇】接上篇博文--为什么在JDK8中HashMap要转成红黑树

为什么在JDK8中HashMap要转成红黑树 ✔️为什么不继续使用链表✔️为什么是红黑树✔️红黑树的性能优势 ✔️ 拓展知识仓✔️为什么是链表长度达到8的时候转✔️为什么不在冲突的时候立刻转✔️关于为什么长度为8的时候转(源码注释解读)✔️为什么长度为6的时候转回来?✔️双向…

leetcode:136只出现一次的数字(详解),又名找到单身狗

期末考试临近&#xff0c;每天复习一点知识&#xff0c;还是可以复习完的&#xff0c;加油 前言 我后来才知道这是力扣上的一道题&#xff0c;我当时写他的时候名字叫找到单身狗&#xff0c;即使那个只出现了一次的数字 题目 136. 只出现一次的数字 给你一个 非空 整数数组…

每日一题——LeetCode1021删除最外层括号1047消除字符串相邻重复字符串

这两道题基本上来说是差不多的&#xff0c;一个匹配并删除字符串中的( ) 一个匹配并删除字符串中相邻重复的元素&#xff0c;其实都是用到栈这种数据结构&#xff0c;通过匹配不同的条件使用入栈出栈操作保存或删除目标元素来实现。 1021.删除最外层括号 var removeOuterParent…

ChatGPT实战手册

ChatGPT是 OpenAI 的一个强大的自然语言处理模型&#xff0c;它可以生成人类般的文本。在这篇文章中&#xff0c;我们将通过一个实战示例来展示如何安装、配置和使用 ChatGPT。 安装 首先&#xff0c;你需要安装 OpenAI 的 Python 客户端库。你可以使用 pip 来安装&#xff1…

图像分割实战-系列教程12:deeplab系列算法概述

&#x1f341;&#x1f341;&#x1f341;图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 1、deeplab概述 图像分割中的传统做法&#xff1a;为了增大感受野&#xff0c;通常都会选择pooling…

基于SpringBoot的物流管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的物流管理系统,java项目…

DevOps搭建(十五)-kubernetes部署项目详细步骤

1、k8s简介 k8s官网地址 https://kubernetes.io/zh-cn/docs/home/ 2、安装kuboard 详细步骤可参考官网 https://kuboard.cn/install/install-k8s.html 2.1、环境准备 至少 2 台 2核4G 的服务器。 选择v1.19&#xff0c;因为高版本的已经把docker给舍弃掉了。 https://k…

C语言编译器(C语言编程软件)完全攻略(第二十二部分:Code::Blocks使用教程(使用Code::Blocks编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 二十二、Code::Blocks使用教程&#xff08;使用Code::Blocks编写C语言程序&#xff09; 前面我们给出了一段完整的 C 语言代码&#xff0c;就是在显示器上输出 “C语言中文网”&#xff0c;如下所示&#xff1a; #include <stdio…

04set注入专题/简单类型/数组/List/Set/Map/空字符串/null/特殊符号

1.1注入外部Bean 在之前使用的案例就是注入外部Bean的方式。 <!-- class属性声明要管理哪个类中的对象 property标签的name是提示set方法名ref标签指明注入的bean的id--><bean id"userServiceBean" class"com.powernode.spring6.service.UserService…

【信息论与编码】习题-单选题

目录 单选题1.下列说法正确的是&#xff08;B&#xff09;2.在信息论中&#xff0c;若用对数底2为&#xff0c;则信息量的单位为&#xff08;C&#xff09;3.率失真函数的下限为&#xff08;A&#xff09;4.给定xi条件下随机事件yj所包含的不确定度和条件自信息量p(yj /xi)。&a…

举例说明计算机视觉(CV)技术的优势和挑战。

计算机视觉&#xff08;Computer Vision&#xff0c;CV&#xff09;技术是指使计算机能够理解和解释视觉数据的能力。CV技术在很多领域都有广泛的应用&#xff0c;包括图像处理、目标检测、人脸识别、自动驾驶等。以下是CV技术的一些优势和挑战的例子&#xff1a; 优势&#x…

大数据平台数据治理与建设方案:PPT全文90页,附下载

关键词&#xff1a;数据治理&#xff0c;大数据&#xff0c;数据治理平台&#xff0c;数据治理顶层设计&#xff0c;大数据治理&#xff0c;数据治理建设 一、数据治理建设需求分析 1、业务需求和目标&#xff1a;首先&#xff0c;明确业务需求和目标是非常重要的。数据治理项…

VMware Tools 启动脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义启动脚本,请确保该脚本没有错误。您也可以提交支持请求,报告此问题。

问题描述&#xff1a;今天打开centos7虚拟机就是直接打不开了报了下面的错误&#xff0c;也没有动任何东西&#xff0c;点确定后&#xff0c;也是依然没有反应 问题原因&#xff1a;可能是虚拟机中的内存满了&#xff0c;需要清理内存 解决方法如下 首先cmd打开终端敲入如下命…

Weblogic安全漫谈(四)

黑名单机制必然会推动两种研究方向的发展&#xff1a;一是挖掘不在黑名单的新组件&#xff0c;是为绕过规则&#xff1b;二是发掘检查的盲区&#xff0c;是为绕过逻辑。 CVE-2020-14756 二次反序列化具有对抗检查逻辑的天生丽质&#xff0c;在CVE-2018-2893中就有利用字节数组…

创新性文生视频模型,南洋理工开源FreeInit

文本领域的ChatGPT&#xff0c;画图领域的Midjourney都展现出了大模型强大的一面&#xff0c;虽然视频领域有Gen-2这样的领导者&#xff0c;但现有的视频扩散模型在生成的效果中仍然存在时间一致性不足和不自然的动态效果。 南洋理工大学S实验室的研究人员发现&#xff0c;扩散…