【Python快速上手(二十一)】

目录

  • Python快速上手(二十一)
    • Python3 使用数据库-mysql-connector
      • 1. 创建数据库连接
      • 2. 创建数据表
      • 3. 插入数据
      • 4. 查询数据
      • 5. 使用 WHERE 条件语句
      • 6. 排序
      • 7. 删除记录
      • 8. 更新表数据
      • 9. 删除表
      • 10.异常处理
      • 总结

Python快速上手(二十一)

Python3 使用数据库-mysql-connector

在Python中使用mysql-connector库连接MySQL数据库是一种简单而强大的方式。mysql-connector库提供了一系列方法来连接数据库、执行SQL语句以及处理数据。

1. 创建数据库连接

首先,我们需要安装mysql-connector库。可以使用以下命令来安装:

pip install mysql-connector-python

接下来,我们可以使用以下代码来创建数据库连接:

import mysql.connector# 创建数据库连接
conn = mysql.connector.connect(host="localhost",user="root",password="password",database="mydatabase"
)# 创建游标对象
cursor = conn.cursor()

在这段代码中,我们使用mysql.connector.connect()方法来创建数据库连接,并传入主机名、用户名、密码和数据库名称。然后,我们创建了一个游标对象cursor,用于执行SQL语句。

2. 创建数据表

接下来,我们可以使用CREATE TABLE语句来创建数据表。以下是一个示例代码:

# 创建数据表
cursor.execute("CREATE TABLE mytable (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
在这个示例中,我们使用execute()方法执行CREATE TABLE语句来创建一个名为mytable的数据表,包含id、name和age三个字段。

3. 插入数据

现在,让我们向数据表中插入一些数据。以下是一个示例代码:

# 插入数据
sql = "INSERT INTO mytable (name, age) VALUES (%s, %s)"
val = ("Alice", 25)
cursor.execute(sql, val)# 提交更改
conn.commit()

在这个示例中,我们使用INSERT INTO语句向mytable表中插入一条数据,然后使用commit()方法提交更改。

4. 查询数据

我们可以使用SELECT语句来查询数据。以下是一个示例代码:

# 查询数据
cursor.execute("SELECT * FROM mytable")
result = cursor.fetchall()for row in result:print(row)

这段代码执行了一个简单的SELECT * FROM mytable查询,并打印了查询结果。

5. 使用 WHERE 条件语句

如果我们想要根据特定条件过滤数据,可以使用WHERE条件语句。以下是一个示例代码:

# 使用 WHERE 条件语句
sql = "SELECT * FROM mytable WHERE age > 20"
cursor.execute(sql)
result = cursor.fetchall()for row in result:print(row)

这段代码查询age大于20的数据,并打印结果。

6. 排序

我们也可以对查询结果进行排序。以下是一个示例代码:

# 排序
sql = "SELECT * FROM mytable ORDER BY age DESC"
cursor.execute(sql)
result = cursor.fetchall()for row in result:print(row)

这段代码按照age字段降序排列查询结果。

7. 删除记录

如果我们想要删除数据表中的记录,可以使用DELETE语句。以下是一个示例代码:

# 删除记录
sql = "DELETE FROM mytable WHERE name = 'Alice'"
cursor.execute(sql)# 提交更改
conn.commit()

这段代码删除了name为Alice的记录。

8. 更新表数据

如果我们需要更新数据表中的数据,可以使用UPDATE语句。以下是一个示例代码:

# 更新表数据
sql = "UPDATE mytable SET age = 30 WHERE name = 'Alice'"
cursor.execute(sql)# 提交更改
conn.commit()

这段代码将name为Alice的记录的age字段更新为30。

9. 删除表

最后,如果我们想要删除数据表,可以使用DROP TABLE语句。以下是一个示例代码:

# 删除表
cursor.execute("DROP TABLE mytable")

这段代码删除了名为mytable的数据表。

10.异常处理

在实际应用中,我们应该添加异常处理来处理可能出现的错误。下面是一个使用try…except语句来处理异常的示例代码:

import mysql.connectortry:conn = mysql.connector.connect(host="localhost",user="root",password="password",database="mydatabase")cursor = conn.cursor()cursor.execute("SELECT * FROM mytable")results = cursor.fetchall()for row in results:print(row)except mysql.connector.Error as e:print(f"Error: {e}")finally:cursor.close()conn.close()

在这个示例中,我们使用try…except语句来捕获可能出现的pymysql.Error异常。如果出现异常,我们打印错误信息。无论是否出现异常,最后都会关闭游标和连接。

总结

在本文中,我们详细讲解了如何使用mysql-connector库在Python中连接MySQL数据库,并进行一系列操作,包括创建数据库连接、创建数据表、插入数据、查询数据、使用WHERE条件语句、排序、删除记录、更新表数据以及删除表。通过这些操作,我们可以轻松地对MySQL数据库进行管理和操作。

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

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

相关文章

【荣耀笔试题汇总】2024-05-11-荣耀春招笔试题-三语言题解(CPP/Python/Java)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新小米近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢&#x1f49…

wifi无线使用adb

要通过Wi-Fi使用ADB连接安卓设备,可以遵循以下步骤进行操作: 通过USB连接设备: 首先,确保你的安卓设备通过USB数据线连接到电脑,并开启USB调试模式。你可以通过进入手机的设置 -> 开发者选项来启用USB调试。 切换…

【漏洞复现】泛微OA E-Cology portalTsLogin文件读取漏洞

漏洞描述: 泛微E-Cology是一款面向中大型组织的数字化办公产品,它基于全新的设计理念和管理思想,旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology portalTsLogin存在任意文件读取漏洞,允许未经授权的用户读取服…

了解当前经济,VBA一键获取不同货币实时汇率

了解当前经济数据,VBA一键获取不同货币间实时汇率 当下较火的经济新闻:黄金价格、日元贬值、美元加息等,咱们不去分析了解这些经济变动背后的动机及原因,做一点本份的事,如何用VBA获取不同货币之间的实时汇率。这肯定是需要联网的,现从“外汇查询” 网站(https://www.wa…

UnitTest / pytest 框架

文章目录 一、UnitTest框架1. TestCase使用2. TestSuite 和 TestRunner3. TestLoader4. Fixture装置5. UnitTest断言1. 登录案例 6. 参数化1. parameterized插件 7. unitTest 跳过 二、pytest 框架1. 运行方式3.读取配置文件(常用方式) 2. pytest执行用例的顺序1. 分组执行(冒烟…

重学JavaScript核心知识点(二)—— 详解Js中的模块化

详解Js中的模块化 1. 模块化的背景2. 来看一个例子3. 优雅的做法 —— 创建模块对象4. 模块与类(class)5. 合并模块6. 动态加载模块 1. 模块化的背景 JavaScript 在诞生之初是体积很小的,早期,它们大多被用来执行独立的脚本任务&…

考研数学|强化阶段怎么刷《660》《880》《1000》?

强化阶段想要刷好题,首先要选一本适合自己的题集! 一般在强化阶段,大家用多个最多的题集就是660题,880题还有1000题 660题的特点是只训练客观题,虽然题目的质量很高,但是训练面还是比较窄 880题是综合训…

【java】java面试题与题解

1.下列代码的输出是什么 public static void main(String[] args) {int a;a 6;System.out.print(a);System.out.print(a);System.out.print(a); } 答案:667 解析:a运算首先将a进行对应操作(即输出),然后将a的值1。所以输出仍为6&#xff…

云器Lakehouse:Multi-Cluster弹性架构如何实现湖上高并发低延迟分析

导读 在当今快速发展的大数据时代,数据平台的性能和效率对于企业来说至关重要。云器Lakehouse的Multi-Cluster弹性架构为我们提供了一种全新的视角,以应对数据湖上高并发和低延迟分析的挑战。本文将深入探讨云器Lakehouse如何通过其独特的技术理念和架构…

鸿蒙开发学习:初探【ArkUI-X】

ArkTS 是华为自研的开发语言。它在TypeScript(简称TS)的基础上,匹配 ArkUI 框架,扩展了声明式 UI 、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。 ArkUI-X 进一步将 ArkUI 扩展到了多个 OS 平台…

线程同步--条件变量,信号量

生产者和消费者模型 案例 /*生产者消费者模型&#xff08;粗略的版本&#xff09; */ #include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <unistd.h>// 创建一个互斥量 pthread_mutex_t mutex;struct Node{int num;struct Node …

js的桶排序

桶排序&#xff08;Bucket Sort&#xff09;是一种分布式排序算法&#xff0c;它将元素分散到一系列桶中&#xff0c;然后对每个桶中的元素进行排序&#xff0c;并将所有的桶合并起来得到最终的排序结果。桶排序适用于输入的元素均匀分布在一个范围内的情况&#xff0c;它的时间…

DELL T630服务器iDRAC分辨率调整办法

对于Dell T630服务器的iDRAC分辨率调整&#xff0c;您需要登录到iDRAC的Web界面。以下是详细的步骤&#xff1a; 登录iDRAC&#xff1a;在浏览器中输入iDRAC的IP地址&#xff0c;然后使用用户名&#xff08;通常是“root”&#xff09;和密码登录。 导航到虚拟控制台&#xff…

Java中数组的特点、弊端与集合框架的使用

Java中数组的特点、弊端与集合框架的使用 在Java编程中&#xff0c;数组和集合框架&#xff08;Collections Framework&#xff09;都是用于存储数据的重要工具。然而&#xff0c;它们各自有其特点和适用场景。对于初学者来说&#xff0c;理解它们之间的区别和如何正确使用它们…

【C++】手搓读写ini文件源码

【C】手搓读写ini文件源码 思路需求&#xff1a;ini.hini.cppconfig.confmian.cpp 思路 ini文件是一种系统配置文件&#xff0c;它有特定的格式组成。通常做法&#xff0c;我们读取ini文件并按照ini格式进行解析即可。在c语言中&#xff0c;提供了模板类的功能&#xff0c;所以…

C++组合类

类的数据成员不但可以是基本类型&#xff0c;也可以是其它类的对象。 组合类就是指一个类包含其他类的对象作为该类的数据成员。 当组合类创建对象时&#xff0c;其中包含的各个数据成员对象应首先被创建。因此&#xff0c;在创建类的对象时&#xff0c;既要对本类的基本…

NumPy库与PyTorch库的异同点

目录 1.单位的创建和操作 1.创建 2.形状变换 2.数学和统计操作 1.矩阵乘法 2.广播 3.统计计算 3.GPU支持 4.在深度学习中的作用 5.应用范围 NumPy库为数组服务&#xff0c;PyTorch库为张量服务&#xff0c;这是最本质的区别。 1.单位的创建和操作 1.创建 NumPy:使…

三位球形模型应用

计算机图形学&#xff1a;三维球体模型可以用于建立真实感的三维场景&#xff0c;如游戏场景、建筑模型等。 工业设计&#xff1a;三维球体模型可以用于工业设计中的产品造型设计、表面细节设计等。 地球科学&#xff1a;三维球体模型可以用于地球科学领域中的地球内部结构建…

长安汽车:基于云器 Lakehouse 的车联网大数据平台建设

近年来随着智能汽车行业的迅速发展&#xff0c;数据也在呈爆炸式增长。长安大数据平台承接了长安在生产上大部分流量应用及日常生产业务应用。本文将分享长安汽车在车联网场景下大数据平台建设面临的一些挑战和具体落地的实践。 主要内容如下&#xff1a; 1. 背景介绍 2. 长…

Java中使用Comparator接口实现定制排序与对比

Java中使用Comparator接口实现定制排序与对比 在Java中&#xff0c;当我们需要对对象集合进行排序时&#xff0c;除了使用Comparable接口实现自然排序外&#xff0c;还可以使用Comparator接口来实现定制排序。Comparator接口允许我们为某个类的实例定义一种或多种比较方式&…