Python2.7编程中SQLite3基本操作方法示例
Python  /  管理员 发布于 7年前   195
本文实例讲述了Python2.7中SQLite3基本操作方法。分享给大家供大家参考,具体如下:
1、基本操作
# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport sqlite3def mykey(x): return x[3]conn=sqlite3.connect("D:\\demo\\my_db.db")sql = "CREATE TABLE IF NOT EXISTS mytb ( a char , b int , c real, d DATE)"# a char , b int , c real 表示该表有三个字段,# a 是字符串类型, b 是整数类型, c 是实数类型。conn.execute( sql )cs = conn.cursor()#cs.execute("DELETE FROM mytb WHERE A='张三' ")cs.execute("DELETE FROM mytb ")#删除所有记录'''''cs.execute( "INSERT INTO mytb ( a,b,c,d ) values('Zhang San',25, 120, '2014-03-04')" )cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Wang Wu',24, 110, '2014-05-01')" )cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Li Si',23, 130, '2014-04-06')" )'''#批量注入,batchdata是一个列表,列表里每一个元素都是一个元组batchdata=[('Zhang San',25, 120, '2014-03-04'), ( 'Wang Wu',24, 110, '2014-05-01'), ( 'Li Si',23, 130, '2014-04-06')]cs.executemany('INSERT INTO mytb values (?,?,?,?)',batchdata)conn.commit() #将加入的记录保存到磁盘,非常重要!cs.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")recs = cs.fetchall( )print ( recs )cs.execute( "SELECT * FROM mytb ")#打开数据表recs = cs.fetchall()#取出所有记录print ( "there is ", len(recs)," notes." )print recsrecs.sort(key = mykey)print recscs.close()conn.close()
2、删除一条记录,使用sql字符串变量可以实现带参数的删除
sql="DELETE FROM my_table WHERE number='" + my_num + "'"cs.execute(sql)
3、查询某一条或多条记录
如果SQLite3查找的数据库记录中含有中文,取出到Python时要对数据进行decode处理。当时我上网查的时候说要用GBK解码,但我自己却解码失败了,换成utf-8解码才成功显示。 另外,如果只查询一条可以用fetchone语句,或者fetchall之后再通过python把它找出来。
sql="SELECT name FROM my_table WHERE number ='" + my_num + "'"cs.execute(sql)the_name=(cs.fetchall())[0][0].decode('utf-8')
4、避免重复注入
有时候我们会有重复的记录,为了避免把相同的记录多次插入到数据库,可以使用如下语句:
sql="INSERT OR REPLACE INTO "+my_table+" values (?,?,?,?,?,?,?) "#假设my_table有7项
5、插入中文记录至SQLite3
Python是unicode编码,但数据库对中文是使用GBK编码,比如stock_name变量含有中文,则需要做unicode(name, "gbk")处理
batch=[(stock_num, unicode(stock_name, "gbk") )]cs.executemany( "INSERT OR REPLACE INTO my_table values (?,?) ",batch)
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python操作SQLite数据库技巧总结》、《Python常见数据库操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号