会员

贴心博客(Imblog)

基于`Imcat(贴心猫)+(微样式)Weys`开发

Python操作mysql和sqlite

2022-01-13 19:10 学习

https://www.qingheluo.com/pythoncaozuomysqlhesqlite/ Python操作mysql和sqlite

  1. python中使用模块包装了mysql和sqlite数据库的操作,实现方法基本相同,实现步骤为:

    1、创建connection对象 2、创建cursor(游标)对象 3、通过cursor(游标)对象操作数据库 4、通过connection对象关闭数据库连接、提交事务及回滚等

操作mysql的模块:python3中使用mysql-connector模块(官方出品)或PyMySQL模块(python2中使用mysqldb)

  1. 执行sql语句:cursor.execute(sql)

    在mysql-connector和PyMySQL模块中仅支持位置占位符,占位符用"%s" mycursor.execute("INSERT INTO VALUES (%s, %s)", ("name", 20)) 在sqlite3模块中支持位置占位符(占位符用"?")和命名占位符 mycursor.execute("INSERT INTO VALUES (?,?)", ("name", 20)) mycursor.execute("INSERT INTO VALUES (:name,:age)",{'name':'myname','age':20})

  2. 批量执行sql语句:cursor.executemany(sql,values)

该方法sql语句中使用占位符,values是一个元祖组成的列表 sql = "INSERT INTO user(name, age) VALUES(%s, %s)" //操作mysql的"%s"占位符 "INSERT INTO user(name, age) VALUES(?,?)" //操作sqlite的"?"占位符 val = [ ('name1', 20), ('name2', 21), ('name_n', 22) ] //如果sql语句中使用了命名占位符,则val为字典组成的列表 mycursor.executemany(sql, val)

  1. 获取查询记录:

    cursor.fetchone():获取结果集下一行(返回一个元祖),当没有更多可用的数据时返回None。 cursor.fetchmany([size=1]):尝试获取由size指定的尽可能多的行(返回一个元祖组成的列表)。 cursor.fetchall():获取查询结果集中所有(剩余)的行(返回一个元祖组成的列表)。

  2. 属性值:

    获取最后一条插入语句插入数据的id:mycursor.lastrowid 获取最后一条操作语句影响的行数:mycursor.rowcount

来源:(原创) 编辑:peace 关键词:

    More 心情墙

  • 1 我吹过你吹过的风,这算不算相拥; 我走过你走过的路,这算不算相逢。 某小卫:算,都算!拉走隔离! (from某公众号留言)
  • 0 我的要求并不高… Sqlite一样好, cli命令行一样好, PyQuery一样好, …
  • 32 Win7-64bit + Python-3.7.4: Django-2.2.24 安装失败 ... Django-3.2.9 安装失败 ... Django-2.1.15 安装成功! 为啥 Django-2.2+ 安装失败?
  • 23 文学的力量:鲁迅先生,弃医学文;结果他这业余文学成就比他专业医学成就还高; 李彦宏同志,IT终于疲惫了;也拿起笔写起了书:《智能交通》…
  • 有所为,有所不为,是为华为! 凝心聚力,中华有为!

    22 2019-06-02

  • 2019愿望: 1.多健身少生病;2.学习英语,心理学;3.发布`贴心博客`,`贴心企业网`,`贴心房产网`(部分合作开发)...

    37 2018-12-31

  • 愿与[企业,客户]三方利益达到最佳平衡!

    4 2018-12-16

    More 和平鸽小语

  • 1 HI,2022!今天看到的朋友圈,如无特别忌讳,我一律点赞!
  • 33 如果觉得活得太艰难,那就考虑怎样轻松去死! (笔者此时积极生活,热爱生命;没毛病,无需进精神病医院。)
  • 236 不晒妻娃,那是家庭隐私; 不晒工作,那是商业机密。
  • 26 健康第一,X无止境,努力YY,积极ZZ !
导航
博客文章
便笺墙
家族亲友树
联系我们
地址:银河县太阳镇地球村
电话:135-37****47
邮箱:80893510@qq.com

Copyright@贴心博客(Imblog)

Run:1.845/76.575(ms); 6(sql)/2.368(MB); comm:info/detail; Upd:2024-04-27 08:36:23