Python操作SQLite介绍
Python操作SQLite介绍
Python自带Sqlite3数据库。要用Python操作SQLite,不用下载SQLite,只要先import sqlite3后,即可操作SQLite。
SQLite,是一款轻型的数据库,是遵守ACID——原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的关系型数据库管理系统。它占用资源非常的低,因此,常作为嵌入式数据库。
Python操作SQLite数据库步骤:
首先第一步是导入sqlite3模块,sqlite3是一个与SQLite交互的库;
然后需要创建一个访问数据库的连接,比如我们创建一个测试用的数据库,命名为test.db;
conn = sqlite3.connect('./test.db')
现在我们就已经连接到数据库了,然后需要创建游标也就是Cursor;
cursorA = conn.cursor()
通过Cursor执行SQL语句,然后获得执行结果,我们先来创建一个students表;
sql = 'create table students(id int primary key, name varchar(20) not null , age int not null)'
cursorA.execute(sql) # 创建表的命令
最后一定要记得关闭游标和关闭连接;
cursorA.close()
conn.close()
例1、建立名为test.db的数据库,在其中建立students表,代码内容如下:
#引入sqlite3
import sqlite3
#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
conn = sqlite3.connect('test.db')
#创建操作的游标
cursorA=conn.cursor()
#创建一个表students 首先判断students这张表是否存在,如果不存在则新建——IF NOT EXISTS
cursorA.execute('''CREATE TABLE IF NOT EXISTS students
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL);''');
print("表创建成功");
#提交事务:
conn.commit()
print("-------------------");
#插入数据
cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(1,'Allen',25)")
#cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(2,'Maxsu',20)")
#cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(3,'Teddy',24)")
#提交事务:
conn.commit()
print("记录插入成功");
# 通过rowcount获得插入的行数:
print('rowcount(一共插入的行数):', cursorA.rowcount)
print("-------------------");
#关闭Cursor:
cursorA.close()
#关闭连接
conn.close()
#读取表students
#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
conn = sqlite3.connect('test.db')
#创建操作的游标
cursorA=conn.cursor()
#执行查询语句:
cursorA.execute("SELECT * from students")
#获得查询结果
values = cursorA.fetchall()
print(values)
#关闭Cursor:
cursorA.close()
#关闭连接
conn.close()
保存文件名为testSqlite.py,运行结果:
SQLite数据库中一个特殊的表叫 sqlite_master,sqlite_master的结构。
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
我们可以通过查询这个表来获取数据库所有的表名:
SELECT name FROM sqlite_master WHERE type='table' ORDER BY name
还可以通过:
PRAGMA table_info(“表名”)
来获取表结构。
例2、查看名为test.db数据库是否含有students表,代码内容如下:
#引入sqlite3
import sqlite3
try:
#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
conn = sqlite3.connect('test.db')
#查看数据库是否含有students表
cursorA=conn.execute("SELECT name FROM sqlite_master WHERE type='table'");
print("表名")
print(cursorA.fetchall())
#关闭连接
conn.close()
except sqlite3.Error as e:
print(e)
保存文件名为Lookuptable.py,运行结果:
可以将上例中的print(cursorA.fetchall())改为
for it in cursorA:
for i in range(len(it)):
print(it[i],)
print('\n')
改后代码如下:
#引入sqlite3
import sqlite3
try:
#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
conn = sqlite3.connect('test.db')
#查看数据库是否含有students表
cursorA=conn.execute("SELECT name FROM sqlite_master WHERE type='table'");
print("表名")
#print(cursorA.fetchall())
for it in cursorA:
for i in range(len(it)):
print(it[i],)
print('\n')
#关闭连接
conn.close()
except sqlite3.Error as e:
print(e)
运行结果:
就写到这里吧。
想深入学习可参考:
python中sqlite3对数据库的增删改查
https://blog.****.net/liuyanlin610/article/details/76021959
浅谈Python自带数据库SQLite3模块的使用