《Python操作SQLite3数据库》快速上手教程
为什么使用SQLite数据库?
对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库。SQLite的目标则是介于两者之间的中小系统。它有以下特点:
- 轻量级
- 速度快
- 无需部署
- 没有服务器
- 很少或不需要进行管理
SQLite正在迅速流行起来,并且它还适用于不同的平台。Python 2.5中引入了SQLite数据库适配器作为sqlite3模块,这是Python首次将数据库适配器纳入到标准库中。
SQLite被打包到Python的标准库中,并不是因为它比其他数据库和适配器更加流行,而是因为它足够简单,像DBM模块一样使用文件(或内存)作为其后端存储,不需要服务器,也没有许可证的问题。它是Python中其他类似的持久化存储解决方案的一个替代品,不过除此以外,它还拥有SQL接口。
在标准库中拥有该模块,可以使你在Python中使用SQLite开发更加快速,并且使你在有需要的时候,能够更加容易地移植到更加强大的RDBMS(比如MySQL、PostgreSQL、Oracle或SQL Server)中。如果你不需要那些强大的数据库,那么sqlite3已经是很好的选择了。
我们接下来演示几个常用操作:
- 创建数据库
- 创建表
- 在表中插入行
- 更新表中的行
- 删除表中的行
- 删除表
代码结构如下:
(笔者提示:如果你也用的是Windows平台,可以安装一个工具叫DB Browser for SQLite,可以查看数据库文件里面的表结构和数据,非常方便)
SQLite3的使用,sqlite3_create.py的代码如下:
1 #!/usr/bin/python 2 import sqlite3 3 4 conn = sqlite3.connect('test.sqlite') 5 6 print "opened database successfully" 7 conn.execute("drop table COMPANY") 8 9 conn.execute('''CREATE TABLE COMPANY 10 (ID INT PRIMARY KEY NOT NULL, 11 NAME TEXT NOT NULL, 12 AGE INT NOT NULL, 13 ADDRESS CHAR(50), 14 SALARY REAL);''') 15 16 print "Table created successfully" 17 18 conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 19 VALUES (1, 'Paul', 32, 'California', 20000.00 )") 20 21 conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 22 VALUES (2, 'Allen', 25, 'Texas', 15000.00 )") 23 24 conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 25 VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )") 26 27 conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 28 VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )") 29 30 conn.commit() 31 conn.close()
从已有的的test.sqlite 文件中,读取数据,sqlite3_select.py的代码如下:
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 import sqlite3 4 5 conn = sqlite3.connect('test.sqlite') 6 7 print "opened database successfully" 8 9 cur = conn.cursor() 10 11 cur.execute("SELECT id,name,age FROM COMPANY;") 12 13 14 for item in cur.fetchall(): 15 print item 16 17 conn.commit() 18 conn.close()
本博客的内容如果没有标注转载字样,均属个人原创!采用知识共享署名 2.5 中国大陆许可协议进行许可。