使用 Python 操作 SQLite
关于SQLite
SQLite是一款轻量数据库,占用资源少,普遍应用于嵌入式系统中。
Python的SQLite操作
SQLite3可使用sqlite3模块与Python进行集成。Python 2.5以上的版本默认安装了该模块,因此不用额外进行安装。
常用API
sqlite3.connect(database [, timeout, other optional arguments])
该API打开一个到SQLite数据库文件database的链接。如果数据库打开成功,则返回一个连接对象。
如果给定的数据库名称不存在,则该调用将创建一个数据库。connection.cursor([cursorClass])
该API创建一个cursor,将在Python数据库编程中用到。cursor.execute(sql [, optional parameters])
执行一个SQL语句。该SQL语句可以被参数化(即使用占位符替代SQL文本)。
例如:cursor.execute("insert into people values (?, ?)", (who, age))
cursor.fetchone()
该方法获取查询结果集中的下一行,返回一个单一的序列。当没有更多可用的数据时,则返回None。cursor.fetchall()
该方法获取查询结果集中所有的行,返回一个列表。当没有可用的行时,返回一个空列表。connection.commit()
提交当前的事务。如果未调用该方法,那么自上一次调用commit()
以来所做的任何动作对其他数据库连接来说是不可见的。connection.rollback()
回滚自上一次调用commit()
以来对数据库所做的更改。connection.close()
关闭数据库连接。注意,这不会调用commit()
,如果未调用任何commit()
就关闭数据库连接,所做的更改将全部丢失。
举例
连接数据库
import sqlite3
conn = sqlite3.connect('test.db')
执行上述程序,将会在当前目录创建数据库test.db
。
创建表
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute('''CREATE TABLE COMPANY
( ID INT PARIMARY KEY NOTE NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
conn.commit()
conn.close()
执行上述程序,将会在test.db
中创建COMPANY
表。
INSERT操作
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) VALUES (1, 'Paul', 32, 'California', 20000)")
conn.commit()
conn.close()
执行上述程序,将会在COMPANY
表中新增一个条目。
SELECT操作
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
cursor = c.execute("SELECT * FROM COMPANY")
for row in cursor:
print(row)
conn.close()
执行上述程序,将会输出以下结果:
(1, 'Paul', 32, 'California', 20000.0)
UPDATE操作
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("UPDATE COMPANY set SALARY = 2500 where ID=1")
conn.commit()
conn.close()
执行上述程序,将会把ID
为1的条目的SALARY
更新为2500。
DELETE操作
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("DELETE from COMPANY where ID=1")
conn.commit()
conn.close()
执行上述程序,将会把ID
为1的条目删除
参考
菜鸟教程-SQLite教程-Python