python操作mysql数据库(二)
admin
2023-05-27 01:21:24
0

     在上一篇文章里面主要介绍了关于python3连接数据库,创建数据库以及创建表的相关内容,在接下来我们试着在我们刚才创建的表中插入数据,并对其做相关探究。

#/usr/bin/env python
#_*_coding:utf-8_*_
#导入pymysql模块
import pymysql
#打开数据库链接
connect=pymysql.connect(host="192.168.186.157",port=3306,user="winner",passwd="123123",db="pymysql",charset="utf8",connect_timeout=3000)
#使用cursor方法获取操作游标

cursor=connect.cursor()
sql=''' insert into  class (name,address)
 values("JSP","go"),("winner","back"),("GOOD","contine"),("cursor","execute");

'''

#使用execute方法操作数据库
cursor.execute(sql)
#事务提交
#connect.commit()  
data=cursor.execute("select * from class order by id desc" )
#使用fetchall方法获取操作结果
data=cursor.fetchmany(5)
print(data)

注意:在这里将事务提交的部分注释掉了,特演示一下不提交事务的情况。

执行结果(执行第四次时):

C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Administrator/PycharmProjects/python/insertmysql.py
((12, 'cursor', 'execute'), (11, 'GOOD', 'contine'), (10, 'winner', 'back'), (9, 'JSP', 'go'))

Process finished with exit code 0
检查数据库中的数据:

mysql> select database();
+------------+
| database() |
+------------+
| pymysql    |
+------------+
1 row in set (0.00 sec)

mysql> show tables;
+-------------------+
| Tables_in_pymysql |
+-------------------+
| class             |
+-------------------+
1 row in set (0.00 sec)

mysql> select * from  class;
Empty set (0.00 sec)

mysql>
经过检查数据库相关表,我们发现此时数据为空,这是为什么呢,回忆一下我们将注释事务提交行
connect.commit() 这里就涉及到mysql数据库有关事务的相关知识,
我们试试加上事务会是什么结果呢??

执行结果(手动干预过的显示结果):

C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Administrator/PycharmProjects/python/insertmysql.py
((28, 'cursor', 'execute'), (27, 'GOOD', 'contine'), (26, 'winner', 'back'),
 (25, 'JSP', 'go'), (24, 'cursor', 'execute'), (23, 'GOOD', 'contine'), 
 (22, 'winner', 'back'), (21, 'JSP', 'go'), (20, 'cursor', 'execute'),
  (19, 'GOOD', 'contine'), (18, 'winner', 'back'), (17, 'JSP', 'go'),
   (16, 'cursor', 'execute'), (15, 'GOOD', 'contine'), (14, 'winner', 'back'), 
   (13, 'JSP', 'go'))

Process finished with exit code 0

数据库的查询结果:

mysql> select * from  class;
+----+--------+---------+
| id | name   | address |
+----+--------+---------+
| 13 | JSP    | go      |
| 14 | winner | back    |
| 15 | GOOD   | contine |
| 16 | cursor | execute |
| 17 | JSP    | go      |
| 18 | winner | back    |
| 19 | GOOD   | contine |
| 20 | cursor | execute |
| 21 | JSP    | go      |
| 22 | winner | back    |
| 23 | GOOD   | contine |
| 24 | cursor | execute |
| 25 | JSP    | go      |
| 26 | winner | back    |
| 27 | GOOD   | contine |
| 28 | cursor | execute |
+----+--------+---------+
16 rows in set (0.00 sec)

mysql>

     由此我们发现数据库的事务关系在软件开发的过程当中是相当重要的一部分,所以在对事务处理的时候需要严谨。

提交事务的源代码:

#/usr/bin/env python
#_*_coding:utf-8_*_
#导入pymysql模块
import pymysql
#打开数据库链接
connect=pymysql.connect(host="192.168.186.157",port=3306,user="winner",passwd="123123",db="pymysql",charset="utf8",connect_timeout=3000)
#使用cursor方法获取操作游标

cursor=connect.cursor()
sql=''' insert into  class (name,address)
 values("JSP","go"),("winner","back"),("GOOD","contine"),("cursor","execute");

'''

#使用execute方法操作数据库
cursor.execute(sql)
#事务提交
connect.commit()
data=cursor.execute("select * from class order by id desc" )
#使用fetchall方法获取操作结果
data=cursor.fetchall()
print(data)

相关内容

热门资讯

演习首日发生意外事故:台空军一... 【环球网报道 记者 徐思琦】据中时新闻网、中天新闻网等台媒8月5日报道,台军所谓“汉光42号演习”首...
奥运冠军陆春龙挂职担任苏州大学... 澎湃新闻记者 岳怀让近日,苏州大学体育学院官网“现任领导”栏目更新信息显示,陆春龙已经挂职担任苏州大...
我国科研人员研发亚10毫秒级神... 来源:环球网 【环球网科技综合报道】8月5日消息,据《科学》(Science)报道称,近日,中国科学...
出生相隔55分钟被抱错,女子错... 面对被医院错换的37年人生,李慧(化名)选择用最朴素的方式,为自己和两个家庭讨一个说法:她把半生艰辛...
Transformer上限触顶... Transformer 的上限在哪里?这个问题从 2022 年 ChatGPT 问世起,就开始被广泛...
华为余承东:手机之后可能都要大... IT之家 8 月 5 日消息,在今天(8 月 5 日)的尊界时代旗舰 MPV 及华为全场景新品发布会...
北方股份获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示北方股份(600262)新获得一项实用新型专利授权,专利名为“...
惊险瞬间!巡查人员劝退通行货车... 受强降雨影响,8月5日,国道108秦岭山区段西安马召镇至汉中佛坪方向约20公里处发生山体塌方。在塌方...
美媒爆:检察官皮罗拖着“一箱证... 【环球网报道 记者 李飒】美国首都华盛顿地标建筑林肯纪念堂倒影池改造引发的风波持续发酵。据《纽约时报...
乌方:一支朝鲜导弹部队已向俄罗... 据凤凰卫视报道,乌克兰国家安全局日前表示,在过去40天里对俄罗斯境内100多处战略目标实施打击,包括...