ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Python-pymysql

2020-03-07 09:53:41  阅读:280  来源: 互联网

标签:execute Python pymysql cursor tb1 connection close


一 安装及导入

  1. pip3 install pymysql

  2. 安装完需要把包的路径加到Pycharm的路径中

二 执行SQL语句

import pymysql

# create connection
connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='test', charset="utf8")

# create cursor
cursor = connection.cursor()

# execute statement
cursor.execute('insert into tb1(nid,name) values(3, "Howard")')
#cursor.execute('insert into tb1(nid,name) values(4, %s), input') 可以进行字符串拼接传参数,不能通过字符串拼接后传递变量的形式,不安全

#execute many statements
value = ( (5,'Paul'), (6, 'Wade') )
cursor.executemany('insert into tb1(nid,name) values(%s,%s), value)
# commit statemnet
connection.commit()

# display info 不用commit
cursor.execute('select * from tb1')
result = cursor.fetchall()
#result = cursor.fetchone()
#result = cursor.fetchmany(size)
print(result)
# close cursor
cursor.close()
# close connection connection.close()

  执行插入语句后的结果:

    

  在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

  • cursor.scroll(1,mode='relative')  # 相对当前位置移动一行
  • cursor.scroll(1,mode='absolute') # 相对绝对位置移动一 行

   b. 另一种创建cursor

 1 import pymysql
 2 
 3 # create connection
 4 connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='test', charset="utf8")
 5 
 6 # create cursor
 7 #cursor = connection.cursor()
 8 cursor = connection.cursor(cursor=pymysql.cursors.DictCursor)
 9 # execute statement
10 cursor.execute('select * from tb1')
11 print(cursor.fetchall())
12 #commit statemnet
13 # connection.commit()
14 
15 #close connection
16 connection.close()

  执行结果:

  

 

   可以看出是字典,这样就可以通过key, value的形式拿到每一个值了,比元祖更好用。

  c.获取新创建的自增ID 

id = cursor.lastrowid() #拿最后一条的id

 

标签:execute,Python,pymysql,cursor,tb1,connection,close
来源: https://www.cnblogs.com/damon-song/p/12422351.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有