《Python操作SQLite3数据库》快速上手教程

为什么使用SQLite数据库?

对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库。SQLite的目标则是介于两者之间的中小系统。它有以下特点:

  • 轻量级
  • 速度快
  • 无需部署
  • 没有服务器
  • 很少或不需要进行管理

SQLite正在迅速流行起来,并且它还适用于不同的平台。Python 2.5中引入了SQLite数据库适配器作为sqlite3模块,这是Python首次将数据库适配器纳入到标准库中。

SQLite被打包到Python的标准库中,并不是因为它比其他数据库和适配器更加流行,而是因为它足够简单,像DBM模块一样使用文件(或内存)作为其后端存储,不需要服务器,也没有许可证的问题。它是Python中其他类似的持久化存储解决方案的一个替代品,不过除此以外,它还拥有SQL接口。

在标准库中拥有该模块,可以使你在Python中使用SQLite开发更加快速,并且使你在有需要的时候,能够更加容易地移植到更加强大的RDBMS(比如MySQLPostgreSQLOracleSQL 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()

   

原文地址:https://www.cnblogs.com/bull_think/p/python-handle-sqlite3-sample.html