Python笔记 之 sqlite3模块

sqlite3安装
  • Python可以使用sqlite3 模块对SQLite3进行操作。
  • Python 2.5.x 以上版本默认自带安装sqlite3模块。
sqlite3示例
连接数据库
dbfile = '../Datas/Dbtest.s3'   
#打开数据库  
def openSqlit3(dbfile=dbfile):  
 conn = sqlite3.connect(dbfile)  
 print('成功打开数据库')  
 return conn
创建表
sqlc = '''  
create table emp  
(id int primary key not null,name text not null,age int not null,address char(50),
salary real);'''  
def createTable(conn,sql=sqlc):  
 curs = conn.cursor()  
 curs.execute(sqlc)  
 conn.commit()  
 conn.close()  
 print('建表成功')
数据查询
#查询数据  
sqlq = 'select * from emp'  
def quaryData(conn,sqlq=sqlq):  
 curs = conn.cursor()  
 curs.execute(sqlq)  
 res = curs.fetchall()  
 for index,item in enumerate(res):  
 print(index,item)  
 print('查询成功')
插入数据
#插入数据  
sqli = 'insert into emp values (?,?,?,?,?)'vali1 = (1,'Ana',32,'Newyork',6000)  
vali2 = (2,'Amy',29,'Newyork',8000)  
def insertData(conn,sqli=sqli,vali=[vali1,vali2]):  
 curs = conn.cursor()  
 # curs.execute(sqli,vali)  
 curs.executemany(sqli,vali)  
 conn.commit()  
 conn.close()  
 print('插入成功')
更新数据
#更新数据  
sqlu = 'update emp set salary=? where id = ?'valu = (6600,1)  
def updateData(conn,sql=sqlu,value=valu):  
 curs = conn.cursor()  
 curs.execute(sql,value)  
 conn.commit()  
 print('数据更新成功')
删除数据
#删除数据  
sqld = 'delete from emp where id=:id'  
vald = {'id':3}  
def deleteData(conn,sql=sqld,value=vald):  
 curs = conn.cursor()  
 curs.execute(sql,value)  
 conn.commit()  
 print('数据删除成功')
sqlite3模块API
connect类

创建sqlite3连接并执行相关操作。

  • connect()
    语法:sqlite3.connect(datafile ,timeout=5)
    说明:打开一个到 SQLite 数据库文件 datafile的链接,如果给定的数据库名称 datafile 不存在,将创建一个数据库。如果数据库成功打开,则返回一个连接对象。
    示例:
#打开数据库  
def openSqlit3(dbfile=dbfile):  
 conn = sqlite3.connect(dbfile)  
 print('成功打开数据库')  
 return conn
  • commit()
    语法:commit(self, /)
    说明:提交当前的事务。如果未调用该方法,那么自上一次调用 commit() 以来所做的任何操作对其他数据库连接来说是不可见的。
    示例:
conn = openSqlit3(dbfile)
insertData(conn,sql,value)
conn.commit()
conn.close()
  • close()
    语法:close(self, /)
    说明:关闭数据库连接。
    注意:close()方法不会自动调用 commit()。如果未调用 commit() 方法,就直接关闭数据库连接,所做的所有更改将全部丢失!
    示例:
conn = openSqlit3(dbfile)
conn.commit()
conn.close()
  • cursor()
    语法:cursor([cursorClass])
    说明:创建一个 cursor游标,用于对sqlite3数据库的操作。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
  • execute()
    语法:execute(…)
    说明:执行的由游标对象提供的execute()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 execute 方法。
    注意:非标准调用方式。
    示例:
conn = openSqlit3(dbfile)
conn.execute('select * from emp')
  • executemany()
    语法:executemany(self, sql, parameters, /)
    说明:执行的由游标对象提供的executemany()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 executemany 方法。
    注意:非标准调用方式。
    示例:
conn = openSqlit3(dbfile)
conn.executemany('insert into emp values(?,?,?)',[(1,'张三','Beijing'8000),2,'李四','Tianjin'7800])
conn.commit()
  • executescript()
    语法:executescript(self, sql_script, /)
    说明:执行的由游标对象提供的executescript()方法的快捷方式,通过调用cursor()创建了一个临时的游标对象,然后通过给定的参数调用游标的 executescript 方法。SQL语句之间用“;”分割。
    注意:非标准调用方式。
    示例:
conn = openSqlit3(dbfile)
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
conn.executescript(sql)
conn.commit()
  • rollback()
    语法:rollback(self, /)
    说明:回滚自上一次调用 commit() 以来对数据库所做的更改。
    示例:
conn = openSqlit3(dbfile)
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
conn.executescript(sql)
conn.rollback()
cursor类
  • close()
    语法:close(self, /)
    说明:关闭游标。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.close()
  • execute
    语法:execute(self, sql, parameters=(), /)
    说明:执行一条 SQL 语句。sqlite3 模块支持两种类型的占位符:问号和命名占位符。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.excute('insert into emp values(?,?,?,?)',(5,'Amy Chen',29,'Xi an',7700))
curs.commit()
  • executemany()
    语法:executemany(self, sql, seq_of_parameters, /)
    说明:该方法对 seq_of_parameters 中的每个参数执行一次 SQL 命令。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.executemany('insert into emp values(?,?,?,?)',[(6,'韩梅梅',27,'Taiyuan',7700),(6,'李磊',27,'Taiyuan',7700)])
curs.commit()
  • executescript
    语法:executescript(self, sql_script, /)
    说明:该方法接收到脚本,会执行多个 SQL 语句。首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本。所有的 SQL 语句应该用分号“;”分隔。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
sql = 'insert into emp values(3,"Tom",32,"Tokyo",8000);insert into emp values(4,"王二",32,"Shanghai",6000)'
curs.executescript(sql)
conn.rollback()
  • fetchall()
    语法:fetchall(self, /)
    说明:获取查询结果集中剩余的所有行的列表,没有剩余的行时,返回一个空的列表。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchall()
  • fetchmany()
    语法:fetchmany(self, /, size=1)
    说明:获取查询结果集中剩余的指定数行的列表,没有剩余的行时,返回一个空的列表。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchmany(3)
  • fetchone()
    语法:fetchone(self, /)
    说明:获取查询结果集中的下一行,返回一个单一的序列,没有更多可用的数据时,返回 None。
    示例:
conn = openSqlit3(dbfile)
curs = conn.cursor()
curs.execute('select * from emp')
rlist = curs.fetchone()
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值