python连接数据库命令_Mysql-python连接操作数据库-程序员宅基地

技术标签: python连接数据库命令  

使用python连接操作数据库

--》下载配置python环境

--》推荐安装PyMySQL 库:PyMySQL 是一个纯Python 实现的MySQL 客户端操作库,支持事务、存储过程、批量执行等

使用命令:pip install pymysql

--》连接数据库脚本

1 #导入模块

2 importpymysql3 #连接数据库

4 conn =pymysql.connect(5 host='localhost',6 port=3306,7 user='root',8 password='123456',9 db='ceshi1',10 charset='utf8'

11 )12 #游标对象:用于执行查询和获取结果

13 cursor =conn.cursor()14

15 sql = 'select * from student'

16 #execute()方法:执行sql语句、将结果从数据库获取到客户端

17 rows =cursor.execute(sql)18 #关闭指针,并释放资源

19 cursor.close()20 #关闭数据库连接,并释放资源

21 conn.close()22

23 if rows >=0:24 print('数据库连接成功')25 else:26 print('数据库连接失败')

--》新增单条数据脚本

1 importpymysql2

3 conn =pymysql.connect(4 host='localhost',5 port=3306,6 user='root',7 password='123456',8 db='ceshi1',9 charset='utf8'

10 )11 cursor=conn.cursor()12 sql = "insert into student(studentNo,name_1,class) values('010','测试人员1','测试1班')"

13 rows =cursor.execute(sql)14 #提交当前事务

15 conn.commit()16 cursor.close()17 #关闭数据库连接

18 conn.close()

--》新增多条数据脚本

1 #新增多条executemany

2 importpymysql3 #连接数据库

4 conn =pymysql.connect(5 host='localhost',6 port=3306,7 user='root',8 password='123456',9 db='ceshi1',10 charset='utf8'

11 )12 cursor=conn.cursor()13 #sql = 'INSERT INTO 表名 VALUES(%s,%s,%s)' 无论什么类型,都使用%s作为占位符

14 #rows=cursor.executemany(sql,param)

15 #param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))

16 sql = 'insert into student(studentNo,name_1,class) values(%s,%s,%s)'

17 param =(('011','多条新增1','新增1班'),('012','多条新增2','新增2班'),('013','多条新增3','新增3班'))18 rows =cursor.executemany(sql,param)19 #提交当前事务

20 conn.commit()21 cursor.close()22 #关闭数据库连接

23 conn.close()

--》使用pymysql.cursors.DictCursor类批量添加数据

1 importpymysql2 #连接数据库

3 conn =pymysql.connect(4 host='localhost',5 port=3306,6 user='root',7 password='123456',8 db='ceshi1',9 charset='utf8'

10 )11 #pymysql获取数据时提供了fetchone()和fetchall()函数来获取结果集,这俩种函数在处理大数据量时会消耗大量内存

12 #pymysql.cursors.DictCursor类,SSCursor游标类用来解决数据量大的问题

13 cursor=conn.cursor(pymysql.cursors.DictCursor)14 param =[]15

16 for i in range(1,100):17 param.append([i,'批量1','批量'])18

19 try:20 sql = "insert into student(studentNo,name_1,class) values(%s,%s,%s)"

21 #批量操作

22 cursor.executemany(sql,param)23 conn.commit()24 exceptException as e:25 print(e)26 conn.rollback()

--》修改单条数据脚本

1 #导入模块

2 importpymysql3 #连接数据库

4 conn =pymysql.connect(5 host='localhost',6 port=3306,7 user='root',8 password='123456',9 db='ceshi1',10 charset='utf8'

11 )12 #游标对象:用于执行查询和获取结果

13 cursor =conn.cursor()14

15 sql = 'update student set class = %s where studentNo = %s'

16 #execute()方法:执行sql语句、将结果从数据库获取到客户端

17 rows = cursor.execute(sql,('修改数据','10'))18 conn.commit()19 #关闭指针,并释放资源

20 cursor.close()21 #关闭数据库连接,并释放资源

22 conn.close()

--》修改多条数据脚本

1 #导入模块

2 importpymysql3 #连接数据库

4 conn =pymysql.connect(5 host='localhost',6 port=3306,7 user='root',8 password='123456',9 db='ceshi1',10 charset='utf8'

11 )12 #游标对象:用于执行查询和获取结果

13 cursor =conn.cursor()14

15 sql = 'update student set class = %s where studentNo = %s'

16 rows = cursor.executemany(sql,[('多条数据1','10'),('多条数据2','11')])17 conn.commit()18 #关闭指针,并释放资源

19 cursor.close()20 #关闭数据库连接,并释放资源

21 conn.close()

--》删除数据脚本,与新增脚本大致相同,只需要修改sql语句即可

1 #删除单条sql

2 sql='delete from student where class= %s'

3 rows=cursor.execute(sql,('10',))

1 #删除多条sql

2 sql='delete from student where calss= %s'

3 rows=cursor.executemany(sql,[('11'),('12')])

--》查询数据脚本,与新增脚本大致相同,只需要修改sql语句即可

使用fetchone()、fetchall()、fetchmany函数,查询数据存在内存中

1 #游标对象:用于执行查询和获取结果

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

4 sql = 'select * from student'

5 rows =cursor.execute(sql)6 #fetchone()

7 print(cursor.fetchone())8 print(cursor.fetchone())9 print(cursor.fetchone())10 #fetchall()

11 #print(cursor.fetchall())  # print(cursor.fetchmany(2))

12 conn.commit()13 #关闭指针,并释放资源

14 cursor.close()15 #关闭数据库连接,并释放资源

16 conn.close()

fetchone()运行结果

1772504-20200402114735725-27637874.png

fetchall()运行结果

1772504-20200402114859129-408931999.png

fetchmany()运行结果

1772504-20200402115607876-1300347181.png

--》cursor游标移动脚本

1 #第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动

2 cursor.scroll(1,mode='relative') #相对当前位置移动

3 cursor.scroll(2,mode='absolute') #相对绝对位置移动

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39901518/article/details/110069019

智能推荐

将本地网站发布到服务器上_网页发布-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。将静态的网页部署到服务器上,首先需要下载一个xftp,帮助我们上传文件;以及它的服务端xshell帮助我们重启服务器1,首先与服务器建立连接2,要想把我们的静态网页发布到服务器上,前提是我们的服务器安装了nignx,完成这些以后把我们本地的网页文件夹上传到/usr/local/nginx/html的路径下3,文件上传成功后,还需要我们修改nignx的配置文件,打开/usr/local/ng..._网页发布

java.net.ConnectException: no available server-程序员宅基地

文章浏览阅读2.1w次,点赞8次,收藏10次。我出现这个错误是因为没有加载我的配置文件在这里插入图片描述可以看到我上图打印的是连接我本地的nacos,并且连接超时但实际我的配置文件并不是配置的本地,看下图这就是典型的没有加载解决办法:完成这些就能加载到配置文件了..._no available server

请求大佬帮忙看看VScode Tensorflow model.fit 报错_model.fit报错use_multiprocessing=use_multiprocessing-程序员宅基地

文章浏览阅读1k次。import numpy as npimport tensorflow_core as tffrom tensorflow.keras.layers import Dense, SimpleRNNimport matplotlib.pyplot as pltimport osinput_word = "abcde"w_to_id = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4} # 单词映射到数值id的词典id_to_onehot = {0: [1.,._model.fit报错use_multiprocessing=use_multiprocessing

chapter04-程序员宅基地

文章浏览阅读152次。1、创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令)[root@localhost ~]mkdir -p /guanli/{zonghe,jishu}2、添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003[root@localhost ~]# groupadd -g 2001 zon..._在chapter04的包cn.itcast.chapter04.prsponse

字符串_空串是什么都没有字符串吗-程序员宅基地

文章浏览阅读362次。串的定义串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值字符串(String)是由数字、字母、任何其它的符号组成的一串字符。零个字符的串(即:"")称为空串,空串不包含任何字符。值得注意的是:(1)长度为1的空格串" “不等同于_空串是什么都没有字符串吗

mathtype软件产品密钥最新7.4_mathtyoe产品密钥-程序员宅基地

文章浏览阅读1.5k次,点赞15次,收藏18次。总之,MathType 7.4是一款功能全面、易于使用的数学公式编辑器,无论是教育、科研还是出版领域,它都能为用户提供强大的支持和便利。当然,作为软件技术支持专家,我很乐意为用户提供关于MathType 7.4的详细信息和支持。_mathtyoe产品密钥

随便推点

【SQL注入漏洞-04】布尔盲注靶场实战_oracle布尔盲注-程序员宅基地

文章浏览阅读6.5k次,点赞4次,收藏3次。当我们改变前端页面传输给后台sql参数时,页面没有显示相应内容也没有显示报错信息时,不能使用联合查询注入和报错注入,这时我们可以考虑是否为基于布尔的盲注。利用页面返回的布尔类型状态,正常或者不正常;我们输入的语句让页面呈现出两种状态,相当于true和false,根据这两种状态可以判断我们输入的语句是否查询成功。布尔盲注就是根据这两种状态,来反推我们输入的条件是真还是假。以sqli-labs-masterless-8关为例_oracle布尔盲注

ROS学习(11)使用ROS创建地图_ros建图-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏72次。创建地图是一件比较复杂的工作,ROS利用map_server地图服务器,借助激光雷达和机器人的里程信息来完成这项工作。本篇我们还是利用柳树车库作为默认的地图环境。主要介绍了地图的创建、保存、加载,下一篇尝试配置导航功能包集,并在gazebo仿真环境下完成自定义机器人的自主导航。httpshttpshttpshttps。..._ros建图

自定义Magento页标题与Meta描述_magento seo suite 自定义 meta description-程序员宅基地

文章浏览阅读3.2k次。在Magento中,CMS页、产品页、分类页均可以设置Meta keywords与Meta Description。但在其它页面上如何设置呢?例如今天SEO团队发来文档,要求修改Checkout页、MyAccount页、Login页、Contact页等等的页标题与Meta描述部分。于是第一反应就是用XML来配置.另:在System-Configration-Design-Html-_magento seo suite 自定义 meta description

【PTA-python】第4章-15 换硬币 (20 分)_pta换硬币python-程序员宅基地

文章浏览阅读1.3k次。第4章-15 换硬币分析题目解法分析为了实现各个硬币数目>=1,range()函数设定倒序范围,先求五分硬币数目,再求二分硬币数目,最后求一分硬币数目,注意在往下递推求解的过程中,各个硬币数目的条件是>=1,这影响到range(five,0,-1)和if one>=1:题目将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序_pta换硬币python

firewall限制或开放IP及端口命令_firewall-cmd --zone=public --list-ports-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏23次。一、查看防火墙状态1、首先查看防火墙是否开启,如未开启,需要先开启防火墙并作开机自启systemctl status firewalld开启防火墙并设置开机自启systemctl start firewalldsystemctl enable firewalld一般需要重启一下机器,不然后面做的设置可能不会生效二、开放或限制端口1、开放端口(1)如我们需要开启XShell连接时需要使用的22端口firewall-cmd --zone=public --add-port=22/tcp _firewall-cmd --zone=public --list-ports

北京交通大学-图像处理与机器学习_北京交通大学图像处理与机器视觉实验代码-程序员宅基地

文章浏览阅读6.7k次,点赞10次,收藏73次。日期项目2022/03/04更新实验环境配置视频P6,第八章后所有内容已同步更新!名称项目课程主页图像处理与机器学习B站主页啥都会一点的研究生课程B站视频【北交】图像处理与机器学习人工智能技术探讨群178174903人工智能技术探讨群2571218304人工智能技术探讨群3584723646课程目录及资料(UP已打包整理支持直链下载)章节内容资料第一章 绪论1-1 基本._北京交通大学图像处理与机器视觉实验代码

推荐文章

热门文章

相关标签