Python2.7编程中SQLite3基本操作方法示例


Posted in Python onAugust 09, 2017

本文实例讲述了Python2.7中SQLite3基本操作方法。分享给大家供大家参考,具体如下:

1、基本操作

# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sqlite3
def 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 recs
recs.sort(key = mykey)
print recs
cs.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 相关文章推荐
python连接sql server乱码的解决方法
Jan 28 Python
Python的函数的一些高阶特性
Apr 27 Python
python抓取网页中链接的静态图片
Jan 29 Python
python opencv 简单阈值算法的实现
Aug 04 Python
python中下标和切片的使用方法解析
Aug 27 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python中实现输入一个整数的案例
May 03 Python
Python 如何批量更新已安装的库
May 26 Python
Python数据分析入门之教你怎么搭建环境
May 13 Python
python中的sys模块和os模块
Mar 20 Python
python标准库ElementTree处理xml
May 20 Python
Django 前后台的数据传递的方法
Aug 08 #Python
关于python pyqt5安装失败问题的解决方法
Aug 08 #Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 #Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 #Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 #Python
关于Python 3中print函数的换行详解
Aug 08 #Python
Python tkinter模块中类继承的三种方式分析
Aug 08 #Python
You might like
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
python字符串替换示例
2014/04/24 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
PHP面试题及答案二
2015/05/23 面试题
培训楼经理岗位责任制
2014/02/10 职场文书
同学聚会主持词
2014/03/18 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
颐和园的导游词
2015/01/30 职场文书
订货会主持词
2015/07/01 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书