python数据库操作sqlite_Python操作mysql和sqlite

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

1、创建connection对象

2、创建cursor(游标)对象

3、通过cursor(游标)对象操作数据库

4、通过connection对象关闭数据库连接、提交事务及回滚等

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

mysql-connector模块:

模块安装:pip install mysql-connector

引入模块:import mysql.connector

创建connection对象:

mydb = mysql.connector.connect(

host="localhost",

user="username",

passwd="password",

database="db_name"

)

PyMySQL模块:

模块安装:pip install PyMySQL

引入模块:import pymysql

创建connection对象:

mydb = pymysql.connect("localhost","username","password","db_name")

操作sqlite的模块:python使用sqlite3模块连接sqlite

Python 2.5.x以上版本标准库中默认自带了sqlite3模块,无需安装

引入模块:import sqlite3

创建connection对象:

sqlite3.connect(database[,timeout=5.0,])

database使用":memory:"可以在RAM中打开,而不是在磁盘上打开。如果给定的数据库不存在,则创建一个数据库。

cursor(游标)对象:

上面我们通过各自模块的各自方法创建了connection对象(本文的示例中为mydb)

创建cursor(游标)对象:mycursor = connection.cursor()

执行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})

批量执行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)

获取查询记录:

cursor.fetchone():获取结果集下一行(返回一个元祖),当没有更多可用的数据时返回None。

cursor.fetchmany([size=1]):尝试获取由size指定的尽可能多的行(返回一个元祖组成的列表)。

cursor.fetchall():获取查询结果集中所有(剩余)的行(返回一个元祖组成的列表)。

属性值:

获取最后一条插入语句插入数据的id:mycursor.lastrowid

获取最后一条操作语句影响的行数:mycursor.rowcount

connection对象:

connection.commit():提交当前的事务。

connection.rollback():回滚自上一次调用commit()以来对数据库所做的更改

connection.close():关闭数据库连接。该操作不会自动调用commit()

sqlite3模块特有都方法:

cursor.executescript(sql_script):执行用分号";"隔开都多个SQL语句,该方法首先执行commit()提交事务,然后执行sql_script

connection.execute(sql):cursor.execute(sql)方法的快捷方式,它通过调用cursor方法创建了一个中间的cursor对象,然后通过给定的参数调用cursor的execute方法。

connection.executescript(sql_script):cursor.executescript(sql_script)方法的快捷方式,调用原理同上。

connection.total_changes():返回自数据库连接打开以来被修改、插入或删除的数据库总行数。

最后编辑:2019-07-17作者:qingheluo

be51fb116a4da7c73e5e89a63655c6bd?s=96&d=mm&r=g

这个作者貌似有点懒,什么都没有留下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值