SQLite是一个轻量级数据库,不同于其他数据库管理系统,不是一个客户端/服务器结构的数据库引擎,而是一种嵌入式数据库,本质上是一个文件。SQLite将整个数据库(包括定义、表、索引及数据本身)作为一个单独的、可跨平台使用的文件存储在主机中。
其应用场景主要作为手机应用的数据库及小型桌面应用的数据库。
SQLite安装与使用
方法一:设置Anaconda环境,内置了SQLite3,使用SQLite数据库不需要安装任何模块,可直接使用。
方法二:SQLite官网下载安装:https://www.sqlite.org/download.html
下载合适版本直接解压到磁盘上,解压后有sqlite3.exe文件。将解安装压路径添加到系统PATH 环境变量。在命令提示符下,使用 sqlite3 命令,查看是否安装成功。
创建数据库文件
python操作数据库一般流程:创建connection——获取cursor——执行SQL语句,处理数据结果——关闭cursor——关闭connection。
Python代码同级目录下创建test.db文件,该文件包含user表相关信息。
创建表包含两个字段id和name。
import sqlite3
#连接到SQLite数据库
#数据库文件test.db,如果文件不存在,会自动在当前目录创建
conn=sqlite3.connect('test.db')
#创建一个cursor
cursor=conn.cursor()
#执行一条SQL语句,创建user表
cursor.execute('create table user(id int(10)primary key,name varchar(20))')
#关闭游标
cursor.close()
#关闭connection
conn.close()复制
操作SQLite(增、删、改、查操作)
1、新增数据
insert into 表名(字段名1,字段名2,....,字段名n) values (字段值1,字段值2,....,字段值n)
复制
import sqlite3
#连接到SQLite数据库
#数据库文件test.db,如果文件不存在,会自动在当前目录创建
conn=sqlite3.connect('test.db')
#创建一个cursor
cursor=conn.cursor()
#逐条执行,插入记录
cursor.execute('insert into user(id,name) values (1,"CHEN")')
cursor.execute('insert into user(id,name) values (2,"WEI")')
cursor.execute('insert into user(id,name) values (3,"Python数据分析实例")')
#关闭游标
cursor.close()
#提交事务
conn.commit()
#关闭connection
conn.close()复制
2、查看数据
select 字段名1,字段名2,字段名3,... from 表名 where 查询条件
复制
查询常用3种方式:
1、fetchone():获取查询结果集中的下一条记录
2、fetchmany(size):获取指定数量的记录
3、fetchall():获取结构集的所有记录
查询表中一条记录,返回结果为一个元组:(1, 'CHEN')
import sqlite3
#连接到SQLite数据库
#数据库文件test.db,如果文件不存在,会自动在当前目录创建
conn=sqlite3.connect('test.db')
#创建一个cursor
cursor=conn.cursor()
#执行查询语句
cursor.execute('select * from user')
#执行条件查询语句
#cursor.execute('select * from user where id >1')
等效语句cursor.execute('select * from user where id >?',(1,)) #使用问号作为占位符代替具体数值,然后用一个元组来替换问号,使用占位符可以避免sql数据库注入风险,推荐使用
#获取查询结果
result1=cursor.fetchone()
print(result1)
result2=cursor.fetchmany(2)
print(result2)
result3=cursor.fetchall()
print(result3)
#关闭游标
cursor.close()
#提交事务
conn.commit()
#关闭connection
conn.close()复制
3、修改数据
update 表名 set 字段名=字段值 where 查询条件
复制
import sqlite3
#连接到SQLite数据库
#数据库文件test.db,如果文件不存在,会自动在当前目录创建
conn=sqlite3.connect('test.db')
#创建一个cursor
cursor=conn.cursor()
#修改数据
cursor.execute('update user set name=? where id =?',("QUAN",1))
#执行查询语句
cursor.execute('select * from user')
#获取查询结果
result1=cursor.fetchall()
print(result1)
#关闭游标
cursor.close()
#提交事务
conn.commit()
#关闭connection
conn.close()复制
4、删除数据
delete from 表名 where 查询条件
复制
import sqlite3
#连接到SQLite数据库
#数据库文件test.db,如果文件不存在,会自动在当前目录创建
conn=sqlite3.connect('test.db')
#创建一个cursor
cursor=conn.cursor()
#执行删除id=1的数据
cursor.execute('delete from user where id =?',(1,))
#执行查询语句
cursor.execute('select * from user')
#获取查询结果
result1=cursor.fetchall()
print(result1)
#关闭游标
cursor.close()
#提交事务
conn.commit()
#关闭connection
conn.close()复制
以上操作在jupter notebook中操作完成。
SQLite有许多数据管理系统,提供界面操作SQLite数据库。推荐SQLiteStudio,官网https://sqlitestudio.pl/,解压后可直接运行。
Python数据分析实例