python数据库操作sqlite_Python数据库大全第1篇: Python操作Sqlite

前言

Python操作数据库大概会写这么几个主题: 用sql操作传统数据库, 用peewee(orm) 操作传统数据库, 用pymongo

操作mongodb, 用ming(pymongo的orm)操作mongodb. 网上关于mongodb的文章比较少,

且大部分都是解释一些玩具用法, 所以我打算在这个主题深入下.

至于sqlalchemy, 这个在django默认使用的orm, 可以看这篇文章, 作者写得很用心. python和sqlalchemy

这个系列的文章也不打算介绍sql. 如果你对sql一无所知, 建议一并学习python操作sql, 一边在这里查阅相关知识: sql语法

"安装数据库"

故意用了"安装"这个标题. 其实mysql才要安装, sqlite不用. 它默认是个文件, 在你创建之后就有了, 路径由你指定. 说了这么久"废话", 来点代码吧. 新建一个 sqlite_sql_1.py 文件, 输入以下内容:

大多数编程语言都是这样操作数据库的:

* 定义一个连接字符串: sqlite的连接字符串就是文件路径. 由于test.db很明显是个相对路径, 所以在运行这段代码之后, 你可以观察到这个文件所在的目录下多了个test.db文件.

* 获得连接: 连接是数据库编程的一个概念, 先获得连接才能进行其他操作.

* 获得游标: 从连接里再获得游标, 然后才可以操作.

* 执行sql语句: 用字符串定义sql语句, 然后作为游标的参数执行.

* 确认执行或回滚: 执行sql语句之后, 并不会真的将数据写到数据库. 必须用commit语句确认才行. 否则, 用回滚语法, 使执行无效. * 关闭连接: 关闭连接, 释放资源.

上述程序执行以后, 会在test.db这个数据库里创建一个表, 表名是 student, 字段有2个: 一个是name, 一个是int.

你会发觉如果再次运行程序会报错. 这是因为数据库不允许再次创建表. 如果是mysql数据库倒好办,

sqlite只能通过特殊点的代码去解决了.

解决重复创建表的问题

把这段程序保存为 sqlite_sql_2.py, 运行试试.

在25 - 34 行, 通过抓获异常来解决表是否重复的问题. 这是一个可行的思路.

插入数据

sql语句里, 用insert 语句进行插入. 看代码会更快. :-)

这个程序可以重复执行. 因为插入数据是没有限制的.

安装客户端查看数据

数据貌似已经插入数据库了, 那么怎么查看呢? 有两个办法: 继续写程序, 用程序来查. 另一个办法是安装sqlite客户端. 这节介绍这个办法.

你从这里下载sqlite客户端: 下载地址

解压后, 打开sqlitestudio, 你会看到一个并不很漂亮的框:

用快捷键 ctrl + o 打开增加数据库的界面, 如下:

数据库类型就是默认的 SQLite 3

File这里, 点右边的文件夹图标, 一直定位找到上面程序创建的testdb, 然后Name会自动填充. 点OK, 就能看到如下界面.

选择test, 鼠标右键点 connect to the database, 就能看到如下界面:

注意Tables下面的student 表, 双击, 会出来如下界面. 点击"data"切换, 就可以看到刚才程序插入的数据了.

用程序查找数据

在sql语言里, 用select 查找数据. 代码如下.

查找有两种情况: 一种是返回列表, 一种是通过where关键字限定查询结果, 返回单条数据. 但由于我一开始查的3条数据一模一样, 所以find_one 其实还是返回多条数据.

同时要注意, 执行完select语句之后, c 是什么呢? c 是 tuple对象的列表, 用Python语法来表示, 应该是这样:

[

('Diego',10),

('Diego',10),

('Diego',10)

]

所以在24-25行, 我故意循环这个结果. 让你看得更清楚.

更新数据

更新数据用 update, 代码如下

注意, update有可能更改多条数据, 也有可能只改一条数据. 这取决于有多少条记录满足 where 这个条件. 之前我们3个数据的age都是10, 所以上述程序更改了3个数据. 你可以用客户端看看是不是这样.

删除数据

删除和更新很像, 既可以删除多条数据也可以删除单条数据, 取决于where条件. 新手一定要记住.

好了, 写到这里, 增删改查总算写完了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值