Python自带Sqlite3数据库。要用Python操作SQLite,不用下载SQLite,只要先import sqlite3后,即可操作SQLite。
SQLite,是一款轻型的数据库,是遵守ACID——原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的关系型数据库管理系统。它占用资源非常的低,因此,常作为嵌入式数据库。
每个数据库完全存储在单个磁盘文件中,一个数据库就是一个文件,通过复制即可实现备份。
Python操作SQLite数据库步骤:
首先第一步是导入sqlite3模块,sqlite3是一个与SQLite交互的库;
import sqlite3
然后需要创建一个访问数据库的连接,比如我们创建一个测试用的数据库,命名为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)
运行结果:
就写到这里吧。
附录:
1、命令行窗口SQLite工具,下载地址https://sqlite.org/download.html
找到sqlite-tools-win32-x86-3400100.zip下载,解压(包含一组用于管理SQLite数据库文件的命令行工具sqlite3.exe——命令行shell程序,以及sqldiff.exe程序和sqlite3_analyzer.exe程序):
sqlite3.exe可以在CMD中直接运行(不需要安装),参见下图:
这是SQLite 官方默认提供的命令端的 Shell 程序,可以满足建表和各种 SQL 查询操作,只是不太直观。
2、图形界面管理工具
SQLite 官方默认提供了一个命令端的 Shell 程序(参见上图),可以满足建表和各种 SQL 查询操作,只是不太直观。第三方提供了一有些好用的 SQLite 可视化管理工具。
SQLiteStudio是一个开源、跨平台的 SQLite 可视化管理工具。支持 Linux,Mac 和 Windows。下载地址SQLiteStudio
下载安装后,打开后设计表时界面如下:
对上面的这两个工具就不多说了。
还可以参看如下好的博文
python中sqlite3对数据库的增删改查
python中sqlite3对数据库的增删改查_独木不林的博客-CSDN博客_sqlite3 增删历史
浅谈Python自带数据库SQLite3模块的使用
浅谈Python自带数据库SQLite3模块的使用(全面详细)_工程晓猿的博客-CSDN博客_在pytion中使用sqlite数据库