SQL学习小记(三)

news2024/11/26 6:53:47

SQL学习小记(三)

  • 功能实现
    • 思路
    • 代码
    • 部分名词解释
  • 代码打包为可执行文件

功能说明:使用python代码,将数据库database1中的表格table1同步到数据库database2中

功能实现

思路

数据更新
数据库连接
数据库连接
成功
失败
成功
存在
不存在
不空
database2中表是否为空
打印信息,表已存在
建表,表头信息
清空表
向database2插入数据
返回数据库
数据库是否连接成功
表是否存在
程序启动
数据更新
关闭数据库

假设 database1database2的信息分别为:

IP地址端口号用户名密码数据库名
database110.10.0.07890root1123456database1
database210.10.0.17891root2123456database2

代码

import schedule
import time
from datetime import datetime, timedelta
import sqlite3
import pymysql
# 数据库连接
def mysql_link(host, port, user, password, db):
    try:
        db = pymysql.connect(host=host,  # IP地址
                             port=port,  # 端口号
                             user=user,  # 用户名
                             password=password,  # 密码
                             db=db,  # 数据库名
                             charset='utf8')# 文本数据编码方式
        return db		#返回数据库
    except:
        print("could not connect to mysql server") # 没有连接到数据库
# 数据库更新
def update_database():
    # 连接到数据库
    # 更新数据库table1
    # conn_a和cursor_b 为数据库对象
    conn_a = mysql_link("10.10.0.0", 7890, "root1", "123456", "database1")  # database1数据库
    cursor_a = conn_a.cursor()	# cursor_a的游标
    conn_b = mysql_link("10.10.0.1", 7891, "root2", "123456", "database2")  # database2数据库
    cursor_b = conn_b.cursor()  # cursor_b的游标
    # 判断表是否存在
    table_name = 'table1'
    conn_b_db = 'database2'
    query = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s"
    cursor_b.execute(query, (conn_b_db, table_name))	# 在数据库conn_b_db的表table_name中查询query
    existing_table = cursor_b.fetchone()	# 查询结果中提取下一行数据
    if existing_table:
        print(f"Table '{table_name}' already exists.")
    else:
        # 不存在时创建表结构
        cursor_b.execute("CREATE TABLE table1("
                         "id varchar(32) PRIMARY KEY, name longtext , old longtext, year longtext, "
                         "sex longtext, score longtext, score2 longtext, score3 longtext,total_points longtext)")
        # 提交更改
        conn_b.commit()
        print(f"Table '{table_name}' created.")
    cursor_a.execute("SELECT * FROM table1")
    cursor_b.execute("SELECT * FROM table1")
    result = cursor_b.fetchone()
    if result:
        cursor_b.execute("TRUNCATE TABLE table1")	# 清空表
    rows = cursor_a.fetchall()
    for row in rows:
        cursor_b.execute("INSERT INTO table1VALUES (%s, %s, %s,%s,%s,%s, %s,%s,%s) ", row)
    conn_b.commit() 	# 提交更改
    conn_b.close()		# 关闭数据库
    conn_a.close()
if __name__ == '__main__':
    update_database()	# 数据库更新

部分名词解释

数据库游标(cursor)是用来在数据库连接上执行SQL查询和操作的对象。当建立了数据库连接之后,可以使用游标来执行各种数据库操作,如查询数据、插入数据、更新数据和删除数据
游标本质上是一个指针,它指向数据库中的某个位置,可以遍历查询结果集中的各行数据。通过游标,可以执行SQL语句,检索并处理查询结果,以及提交更改到数据库中。

代码打包为可执行文件

pyinstaller 是一个流行的Python打包工具,它可以将Python代码打包成独立的可执行文件。

首先进行pyinstaller安装:win+R——>cmd——> 确定
在终端输入:

pip install pyinstaller

使用pyinstaller打包Python代码非常简单,只需要在命令行中输入以下命令:

pyinstaller test.py

压缩成功之后,在py文件所在文件夹里面会出现一些文件夹和文件,其中生成的exe可执行文件在dist中,exe的图表如下所示:
在这里插入图片描述
参考:6种将Python代码打包成exe应用的方式

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

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

相关文章

Redis 中 List 数据结构详解

目录 List 用法 1. 增 2. 删 3. 查 内部编码 应用场景 前言 Redis 中的 List 和 Set 数据结构各有特点,适用于不同的应用场景。List 提供了有序的列表结构,适合用于消息队列和任务列表等场景;Set 提供了无序且不重复的集合结构&#…

【全开源】旅游系统源码(Uniapp+FastAdmin+ThinkPHP)

一款基于UniappFastAdminThinkPHP开发的旅游系统,包含消费者端(手机端)、机构工作人员(手机端)、机构端(PC)、平台管理端(PC)。机构可以发布旅游线路、景点项目&#xff…

Wpf 使用 Prism 实战开发Day27

首页汇总和数据动态显示 一.创建首页数据汇总数据接口 汇总:待办事项的总数已完成:待办事项里面有多少条完成的待办完成比例:已完成和汇总之间的比例备忘录:显示备忘录的总数待办事项:显示待办事项未完成的集合备忘录&…

Java实现对PDF、纵向、横向页面添加自定义水印功能

Java实现对PDF、纵向、横向页面添加自定义水印 效果图 -- 纵向 页面PDF使用到JAR Maven依赖版本效果图 -- 横向页面PDF 效果图 – 纵向 页面PDF 代码如下&#xff1a; 使用到JAR Maven依赖版本 <dependency><groupId>org.apache.pdfbox</groupId><artifa…

视频监控平台AS-V1000 的场景管理,一键查看多画面视频的场景配置、调用、管理(一键浏览多路视频)

目录 一、场景管理的定义 二、场景管理的功能和特点 1、功能 &#xff08;1&#xff09;场景配置 &#xff08;2&#xff09;实时监控 &#xff08;3&#xff09;权限管理 2、特点 三、AS-V1000的场景配置和调用 1、场景配置 &#xff08;1&#xff09;实时视频预览 …

【Linux】Linux的权限_2 + Linux环境基础开发工具_1

文章目录 三、权限3. Linux权限管理修改文件的拥有者和所属组 4. 文件的类型5. 权限掩码 四、Linux环境基础开发工具1. yumyum 工具的使用 未完待续 三、权限 3. Linux权限管理 修改文件的拥有者和所属组 在上一节我们讲到如何更改文件的访问权限&#xff0c;那我们需要更改…

在VS Code中进行Java的单元测试

在VS Code中可以使用 Test Runner for Java扩展进行Java的测试执行和调试。 Test Runner for Java的功能 Test Runner for Java 结合 Language Support for Java by Red Hat 和 Debugger for Java这两个插件提供如下功能&#xff1a; 运行测试&#xff1a; Test Runner for …

算法打卡 Day13(栈与队列)-滑动窗口最大值 + 前 K 个高频元素 + 总结

文章目录 Leetcode 239-滑动窗口最大值题目描述解题思路 Leetcode 347-前 K 个高频元素题目描述解题思路 栈与队列总结 Leetcode 239-滑动窗口最大值 题目描述 https://leetcode.cn/problems/sliding-window-maximum/description/ 解题思路 在本题中我们使用自定义的单调队列…

②单细胞学习-组间及样本细胞比例分析

目录 数据读入 每个样本各细胞比例 两个组间细胞比例 亚组间细胞比例差异分析&#xff08;循环&#xff09; 单个细胞类型亚新间比例差异 ①单细胞学习-数据读取、降维和分群-CSDN博客 比较各个样本间的各类细胞比例或者亚组之间的细胞比例差异 ①数据读入 #各样本细胞…

ios 端如何免费使用Emby???(利用Quantumult X )

本文转自博主的个人博客&#xff1a;https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接&#xff1a;点我访问 注意&#xff1a;使用此激活方式&#xff0c;有唯一缺点&#xff0c;在观看Emby时需保持Quantumult X为开启状态&#xff01; 一、安装证书 开启 MitM 后…

android11禁止进入屏保和自动休眠

应某些客户要求&#xff0c;关闭了开机进入屏保&#xff0c;一段时间会休眠的问题。以下diff可供参考&#xff1a; diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/value…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十六)- JUC(2)

目录 同步 两阶段终止模式 守护线程 线程状态 五种(操作系统角度) 六种(Java API角度) 烧水案例 共享模型之管程 临界区 竞态条件 同步 Slf4j(topic "c.TestJoin")public class TestJoin {static int r 0;static int r1 0;static int r2 0;​public sta…

微软为团队推出了 Copilot

微软希望使其生成式人工智能品牌对团队更有用&#xff0c;特别是跨公司和大型企业组织的团队。 在年度 Build 开发者大会上&#xff0c;微软宣布推出 Team Copilot&#xff0c;这是其 Copilot 系列生成式 AI 技术的最新扩展。 与微软之前的 Copilot 品牌产品不同&#xff0c;…

[IMX6ULL驱动开发]-Linux对中断的处理(二)

上一篇文章中&#xff0c;引入了Linux对于中断的一些简略流程以及中断抽象为具体实际形象。此文章主要是继续加深对Linux对中断的处理流程以及一些相应的数据结构。 目录 Linux对中断的扩展&#xff1a;硬件中断、软件中断 多中断处理 中断上下部处理流程 发生中断A&#…

简单随机数据算法

文章目录 一&#xff0c;需求概述二&#xff0c;实现代码三、测试代码四、测试结果五、源码传送六、效果演示 一&#xff0c;需求概述 系统启动时&#xff0c;读取一组图片数据&#xff0c;通过接口返回给前台&#xff0c;要求&#xff1a; 图片随机相邻图片不重复 二&#…

blender复制uv贴图

1、新建两个猴头 2、点击其中一个进入uv编辑模式 3、在uv编辑中打开一个图像 4、新建一个材质球&#xff0c;将图像渲染到模型上 打开图像纹理 选择刚才打开的图像 切换到材质预览模式后&#xff0c;就可以看到贴图了 5、选择一个孤岛 6、然后选择拼排孤岛 可以看到该模型展开…

「报名中」5月31日,和PolarDB开源社区一起去娃哈哈!

5月31日&#xff08;周五&#xff09;&#xff0c;PolarDB开源社区将联合娃哈哈集团共同举办开源数据库技术沙龙&#xff01; 本次活动我们邀请到PolarDB产品研发、数据库工具、数据库管控平台、数据库人才教育等各领域专家和老师&#xff0c;参与分享和交流&#xff0c;共同推…

Windows UWP ContentDialog去掉阴影(全透明)的实现

一、前言 在WIndows开发中&#xff0c;使用UWP&#xff08;Universal WIndows&#xff09;项目开发过程中&#xff0c;使用ContentDialog 的过程中&#xff0c;我们可能并不满足现有的样式&#xff0c;这时就需要自定义样式。笔者在自定义样式过程中&#xff0c;遇到了一个难题…

算法002:复写零

力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/duplicate-zeros/ 使用 双指针 来解题&#xff1a; 具体思路 如果是和00…

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…