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字符串拼接、截取及替换方法总结分析
Apr 13 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
Python File readlines() 使用方法
Mar 19 Python
python用插值法绘制平滑曲线
Feb 19 Python
Python中zip()函数的简单用法举例
Sep 02 Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 Python
python__new__内置静态方法使用解析
Jan 07 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
python中entry用法讲解
Dec 04 Python
python使用BeautifulSoup 解析HTML
Apr 24 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
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
nginx下安装php7+php5
2016/07/31 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
简单实现php上传文件功能
2017/09/21 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python 统计字数的思路详解
2018/05/08 Python
Python3 修改默认环境的方法
2019/02/16 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python中使用while循环的实例
2019/08/05 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
python 实现任务管理清单案例
2020/04/25 Python
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
小学生节水倡议书
2015/04/29 职场文书
法院执行局工作总结
2015/08/11 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
Python中使用ipython的详细教程
2021/06/22 Python