python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用

Python3连接MySQL

本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用。

PyMySQL介绍

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

Django中也可以使用PyMySQL连接MySQL数据库。

PyMySQL安装pip install pymysql

连接数据库

注意事项

在进行本文以下内容之前需要注意:你有一个MySQL数据库,并且已经启动。

你有可以连接该数据库的用户名和密码

你有一个有权限操作的database

基本使用# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

# 定义要执行的SQL语句

sql = """

CREATE TABLE USER1 (

id INT auto_increment PRIMARY KEY ,

name CHAR(10) NOT NULL UNIQUE,

age TINYINT NOT NULL

)ENGINE=innodb DEFAULT CHARSET=utf8;

"""

# 执行SQL语句

cursor.execute(sql)

# 关闭光标对象

cursor.close()

# 关闭数据库连接

conn.close()

返回字典格式数据:# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句并且将结果作为字典返回的游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 定义要执行的SQL语句

sql = """

CREATE TABLE USER1 (

id INT auto_increment PRIMARY KEY ,

name CHAR(10) NOT NULL UNIQUE,

age TINYINT NOT NULL

)ENGINE=innodb DEFAULT CHARSET=utf8;

"""

# 执行SQL语句

cursor.execute(sql)

# 关闭光标对象

cursor.close()

# 关闭数据库连接

conn.close()

注意:

charset=“utf8”,编码不要写成"utf-8"

增删改查操作

增# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

username = "Alex"

age = 18

# 执行SQL语句

cursor.execute(sql, [username, age])

# 提交事务

conn.commit()

cursor.close()

conn.close()

插入数据失败回滚

在执行增删改操作时,如果不想提交前面的操作,可以使用 rollback() 回滚取消操作。# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

username = "Alex"

age = 18

try:

# 执行SQL语句

cursor.execute(sql, [username, age])

# 提交事务

conn.commit()

except Exception as e:

# 有异常,回滚事务

conn.rollback()

cursor.close()

conn.close()

获取插入数据的ID(关联操作时会用到)# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

username = "Alex"

age = 18

try:

# 执行SQL语句

cursor.execute(sql, [username, age])

# 提交事务

conn.commit()

# 提交之后,获取刚插入的数据的ID

last_id = cursor.lastrowid

except Exception as e:

# 有异常,回滚事务

conn.rollback()

cursor.close()

conn.close()

批量执行# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)]

try:

# 批量执行多条插入SQL语句

cursor.executemany(sql, data)

# 提交事务

conn.commit()

except Exception as e:

# 有异常,回滚事务

conn.rollback()

cursor.close()

conn.close()

删# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

sql = "DELETE FROM USER1 WHERE id=%s;"

try:

cursor.execute(sql, [4])

# 提交事务

conn.commit()

except Exception as e:

# 有异常,回滚事务

conn.rollback()

cursor.close()

conn.close()

改# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

# 修改数据的SQL语句

sql = "UPDATE USER1 SET age=%s WHERE name=%s;"

username = "Alex"

age = 80

try:

# 执行SQL语句

cursor.execute(sql, [age, username])

# 提交事务

conn.commit()

except Exception as e:

# 有异常,回滚事务

conn.rollback()

cursor.close()

conn.close()

查询单条数据# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

# 查询数据的SQL语句

sql = "SELECT id,name,age from USER1 WHERE id=1;"

# 执行SQL语句

cursor.execute(sql)

# 获取单条查询数据

ret = cursor.fetchone()

cursor.close()

conn.close()

# 打印下查询结果

print(ret)

查询多条数据# 导入pymysql模块

import pymysql

# 连接database

conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)

# 得到一个可以执行SQL语句的光标对象

cursor = conn.cursor()

# 查询数据的SQL语句

sql = "SELECT id,name,age from USER1;"

# 执行SQL语句

cursor.execute(sql)

# 获取多条查询数据

ret = cursor.fetchall()

cursor.close()

conn.close()

# 打印下查询结果

print(ret)

进阶用法# 可以获取指定数量的数据

cursor.fetchmany(3)

# 光标按绝对位置移动1

cursor.scroll(1, mode="absolute")

# 光标按照相对位置(当前位置)移动1

cursor.scroll(1, mode="relative")

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

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

相关文章

mysql 创建视图 主键_MySQL数据库基础操作命令,本文助你更上一层楼!

今天介绍的是关于Mysql数据库一些操作的基础命令用户与权限创建用户mysql>create user test identified by BaC321#; 修改密码5.5版本及以前的命令mysql>set password for testpassowrd(!1A2#3); 5.6及以上命令mysql>update mysql.user set authentication_stringpass…

mysql 聚合函数 怎么用在条件里_MySql 中聚合函数增加条件表达式的方法

Mysql 与聚合函数在一起时候where条件和having条件的过滤时机where 在聚合之前过滤当一个查询包含了聚合函数及where条件&#xff0c;像这样的情况select max(cid) from t where t.id<999这时候会先进行过滤&#xff0c;然后再聚合。先过滤出ID《999的记录&#xff0c;再查找…

drbd(三):drbd的状态说明

1.几种获取状态信息的方法 drbd有很多获取信息的方式。在drbd84和之前的版本&#xff0c;大多都使用cat /proc/drbd来获取信息&#xff0c;多数情况下&#xff0c;这个文件展示的信息对于管理和维护drbd来说已经足够。 例如以下是drbd84上两个volume的节点状态信息&#xff1a;…

Lock的lock()方法

ReentrantLock是JDK唯一实现了Lock接口的类 lock() 是平常使用得最多的一个方法&#xff0c;就是用来获取锁。如果锁已被其他线程获取&#xff0c;则进行等待。 由于在前面讲到如果采用Lock&#xff0c;必须主动去释放锁&#xff0c;并且在发生异常时&#xff0c;不会自动释放锁…

Lock的tryLock()方法

概述 tryLock()方法是有返回值的&#xff0c;它表示用来尝试获取锁&#xff0c;如果获取成功&#xff0c;则返回true&#xff0c;如果获取失败&#xff08;即锁已被其他线程获取&#xff09;&#xff0c;则返回false&#xff0c;这个方法无论如何都会立即返回。在拿不到锁时不…

python requests库详解_python的requests库详解

快速上手迫不及待了吗&#xff1f;本页内容为如何入门 Requests 提供了很好的指引。其假设你已经安装了 Requests。如果还没有&#xff0c;去安装一节看看吧。首先&#xff0c;确认一下&#xff1a;Requests 已安装Requests 是最新的让我们从一些简单的示例开始吧。发送请求使用…

python QTreeWidgetItem下面有几个子tree_python-nlp ch1笔记:nlp的基础应用、高级应用、python优势、nltk环境搭建...

本帖是对(印度)Jalaj Thanaki作品《python自然语言处理》的翻译、缩减及改编~nlp的基础应用NLP是AI的子分支&#xff0c;其相关概念可以用于以下专家系统中&#xff1a;语音识别系统问答系统机器翻译文本摘要情感分析基于模板的聊天机器人文本分类主题分割nlp的高级应用理解自然…

C#使用ListView更新数据出现闪烁解决办法

C#使用ListView更新数据出现闪烁解决办法 在使用vs自动控件ListView控件时候&#xff0c;更新里面的部分代码时候出现闪烁的情况 如图&#xff1a; 解决以后&#xff1a; 解决办法使用双缓冲&#xff1a;添加新类继承ListView 对其重写 1 public class DoubleBufferListView : …

Lock的tryLock(long time, TimeUnit unit)方法

概述 tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的&#xff0c;只不过区别在于这个方法在拿不到锁时会等待一定的时间&#xff0c;在时间期限之内如果还拿不到锁&#xff0c;就返回false。如果一开始拿到锁或者在等待期间内拿到了锁&#xff0c;则返回true。…

python语音识别的第三方库_python标准库+内置函数+第三方库: 7.音频处理

python标准库内置函数第三方库 欲善其事&#xff0c;必先利其器 这其器必是python的标准库内置函数&#xff0c;话说许多第三方库&#xff0c; 也是对标准库的使用&#xff0c;进行封装&#xff0c;使得使用起来更方便。 这些库以使用场景来分类: 7、音频处理 音频处理主要适用…

SperingBoot+vue文件上传下载预览

上传文件&#xff1a; 前端&#xff1a; 整个过程&#xff0c;就是在使用FormData 添加 上File&#xff08;这个Blob&#xff09;&#xff0c;并且key要和后台的名字对应上在点击上传按钮开始上传之前&#xff0c;使用了URL.createObjectURL(File)创建blobUrl&#xff0c;给了…

keepalived脑裂问题查找

在自己环境做keepalivedredis实验时&#xff0c;当重启了备用redies机器后&#xff0c;发现两台redies主机都拿到了VIP [plain] view plaincopy [rootredis2 ~]# ip addr list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopbac…

python 多线程并行 矩阵乘法_python实现简单的并行矩阵乘法

python实现简单的并行矩阵乘法python实现简单的并行矩阵乘法本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响。假设A(m,n)表示矩阵的m行&#xff0c;n列。那么C(m,m)A(m,n) * B(n,m) &#xff1a;计算C矩阵时候分解成&#xff1a;process-1&#xf…

停止Java线程,小心interrupt()方法

转自http://www.blogjava.NET/jinfeng_wang/archive/2008/04/27/196477.html ---------------------------------------------------------------------------------------------------- 程序是很简易的。然而&#xff0c;在编程人员面前&#xff0c;多线程呈现出了一组新的难…

python输入数学表达式并求值_用Python3实现表达式求值

一、题目描述 请用 python3编写一个计算器的控制台程序&#xff0c;支持加减乘除、乘方、括号、小数点&#xff0c;运算符优先级为括号>乘方>乘除>加减&#xff0c;同级别运算按照从左向右的顺序计算。 二、输入描述 数字包括"0123456789"&#xff0c;小数点…

mac上的mysql管理工具sequel pro

https://blog.csdn.net/wan_zaiyunduan/article/details/54909389 以前用过Plsql、Navicat、Workbench&#xff0c;现在换到mac上&#xff0c;用了现在这一款管理工具&#xff0c;很好用&#xff0c;所以推荐给大家。 完整的MySQL支持 Sequel Pro是一个快速,易于使用的Mac数据库…

报错 classes 拒绝访问_3种方式“移除”快速访问;为什么移除?你懂的...

Windows 10 在文件资源管理器中引入了"快速访问"这个功能&#xff0c;每当打开文件资源管理器窗口时&#xff0c;您都会看到常用文件夹和最近访问的文件的列表&#xff0c;这个功能虽然方便了日常使用&#xff0c;可能会提高工作效率&#xff0c;但是如果是公司的电脑…

java set是重复_java算法题,set内出现重复元素

题目将数字 1…9 填入一个33 的九宫格中&#xff0c;使得格子中每一横行和的值全部相等&#xff0c;每一竖列和的值全部相等。请你计算有多少种填数字的方案。这个是计蒜客上面的一个模拟题&#xff0c;我采用暴力。public class _3 {/** 将数字 1…9 填入一个33 的九宫格中&am…

Lock的lockInterruptibly()

概述 lockInterruptibly()方法比较特殊&#xff0c;当通过这个方法去获取锁时&#xff0c;如果其他线程正在等待获取锁&#xff0c;则这个线程能够响应中断&#xff0c;即中断线程的等待状态。也就使说&#xff0c;当两个线程同时通过lock.lockInterruptibly()想获取某个锁时&…

python中把输出结果写到一个文件中_Python3.6笔记之将程序运行结果输出到文件的方法...

Python3.6笔记之将程序运行结果输出到文件的方法 更新时间&#xff1a;2018年04月22日 14:27:32 投稿&#xff1a;jingxian 下面小编就为大家分享一篇Python3.6笔记之将程序运行结果输出到文件的方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小…