Python学习笔记:操作数据库

mysql

python3中用pymysql操作mysql数据库

pip3 install PyMySQL

《Python学习笔记:操作数据库》
《Python学习笔记:操作数据库》

import pymysql
conn = pymysql.Connect(host='127.0.0.1',port=3306,user='root',passwd='zk1991zk',db='mytest',charset='utf8')
cursor = conn.cursor()
sql = "select * from  user"
cursor.execute(sql)
rs = cursor.fetchall()
print('rs:', rs)

for each in rs:
    print(each)

《Python学习笔记:操作数据库》

更新数据库insert/update/delete

不同于select操作,这三个操作修改了数据库内容,所以需要commit(),否则数据库没有做相应的更改,但是也不会报错。

import pymysql

conn = pymysql.Connect(host='127.0.0.1', port=3306, user='root', passwd='zk1991zk',db="mytest")

conn.autocommit(False)
cursor = conn.cursor()

sqlInsert = "insert into user(id, name) value('6','Alex')"
sqlUpdate = "update user set name = 'Jason',email='sha5xiang@gmail.com' where id = '2'"
sqlDelete = "delete from user where id='6' "
try:
    cursor.execute(sqlInsert)
    print(cursor.rowcount)
    cursor.execute(sqlUpdate)
    print(cursor.rowcount)
    cursor.execute(sqlDelete)
    print(cursor.rowcount)

    
    conn.commit()
except Exception as e:
    print("Reason:", e)
    conn.rollback()

cursor.close()
cursor.close()

《Python学习笔记:操作数据库》
《Python学习笔记:操作数据库》
《Python学习笔记:操作数据库》

实例 银行转账

注意点

  • NoneType’ object has no attribute ‘encoding’ ,之前指明的charset必须是”UTF8″,不是”utf-8″/”UTF-8″
  • MySQL语句后面必须有’;’,否则不会报错,也难以发现
  • 数据库insert/update/delete操作需要commit()
  • 在构造命令的时候,注意用 ” 包裹起来,因为SQL语句字符串需要 ‘ 包裹。所以,” 比较简单的避免歧义。

参考

python3操作MySQL数据库
[Python3读取Excel数据存入MySQL]()

    原文作者:AlexZ33
    原文地址: https://segmentfault.com/a/1190000013864875
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞