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学习笔记之常用函数及说明
May 23 Python
python分析nignx访问日志脚本分享
Feb 26 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
python抓取文件夹的所有文件
Feb 27 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Python魔法方法详解
Feb 13 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python3的pip路径在哪
Jun 23 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
2021年最新用于图像处理的Python库总结
Jun 15 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实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
javascript call和apply方法
2008/11/24 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
jquery each()源代码
2011/02/14 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
vue通过数据过滤实现表格合并
2020/11/30 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python列表(List)知识点总结
2019/02/18 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
秋季红领巾广播稿
2014/01/27 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL