文章目录
- 一、Sqlite3数据库的基本使用
- 1.数据库是什么
- 2.数据库分类
- 二、正式开始使用SQLite3(Python)
- 1.基础sql命令
- 2.Python连接SQLite3
- ①查询
- ②增加
- ③更新
一、Sqlite3数据库的基本使用
1.数据库是什么
借用百科上的话,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 人话来说就是很多个数据存储在一个文件里
2.数据库分类
-
非关系型数据库:例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对, 这样就不会局限于固定的结构,可以减少一些时间和空间的开销。例如主流非关系型数据库有:
mongodb、cassandra、redis、hbase、neo4j
-
关系型数据库:存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 人话来说就是像表格一样每个表和数据都有关系,例如MySQL还有本教程教的sqlite。以及其余主流关系型数据库,
Oracle 、DB2、 MySQL 、 Microsoft SQL Server 、 Microsoft Access、PostgreSQL
举个栗子,比如我向非关系型数据库存储了一个对象,他的字段分别为,name,grade,并给了他一个对象a,这时我又存储进了一个对象b,有old这个字段,这时 数据库里就有了a,b两个对象来分别访问。
而在关系型数据库中,首先我们需要创建一张表,表就是多个相同对象的集合,创建一个表a,分别有name,old两个字段,而想要向表a存储对象,需要实例化所 有表a所有的字段,才能存储。
二、正式开始使用SQLite3(Python)
1.基础sql命令
以下几句SQL命令在关系型数据库中基本通用:
-
insert语句:向一个表中添加行,格式:insert into TABLE values (VALUE1,VALUE2,VALUE3,…VALUEN); (如果表中有这个主键会报错哦,下面会教条件语句来防止)
-
select语句:在控制台中输出这个表中的所有行以及他的字段,格式:select * from TABLE_NAME;
-
drop语句:删除表的一个语句,格式:drop table TABLE_NAME;
-
create语句:创建表的语句,格式:create table TABLE_NAME(TYPE_1 NAME_1,TYPE 2 NAME_2…);
-
where语句:寻找一个表中符合条件的一项,例如我们要找一个主键ID为3的可以这么写select * from TABLE_NAME where ID=3; (注意sqlite中的等于是一个等于号)
-
delete语句:删除表中的一项,这时就可以用到where语句了,例如找到ID为3之后我们要删除它,可以这么写delete from TABLE_NAME where ID-3;
在SQLite3中我们不用熟悉过于复杂的查询语句,一般会使用简单查询、数据插入、数据删除、数据更新即可,因为SQLite3存储的数据量有限。
2.Python连接SQLite3
①查询
以下一段代码是操作SQLite3数据库的一段代码(作用体现在了sql语句中)。
select stoken,PHPSESSID,QQ from healthydaily where status=1
查询status=1的所有用户的 stoken,PHPSESSID,QQ,并以列表的形式返回出去。
import sqlite3
def get_cookies():
# 如果文件不存在,会在当前目录创建:dayReport.db就是你的数据库名
conn = sqlite3.connect('dayReport.db')
# 创建一个Cursor:
cursor = conn.cursor()
# 保活请求, status 为 1
sql = "select stoken,PHPSESSID,QQ from healthydaily where status=1"
# 继续执行一条SQL语句,插入一条记录:
cursor.execute(sql)
date_list = cursor.fetchall()
# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()
# 返回 查询到的 信息
return date_list
②增加
""" 本函数的作用是:通过sqlite3将用户cookie信息于qq号存储起来"""
def saveCookies(Cookies, QQ):
""" Cookies 为字典,可为 Qrcheck 的范围值"""
# 如果文件不存在,会在当前目录创建:
conn = sqlite3.connect('dayReport.db')
# 创建一个Cursor:
cursor = conn.cursor()
# 执行插入操作
sql = 'insert into healthydaily values( "{}", 0, "{}","{}", 0);'.format(QQ,Cookies["stoken"],Cookies["PHPSESSID"])
cursor.execute(sql)
# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()
③更新
""" 本函数的作用是:通过sqlite3将用户cookie信息于qq号存储起来"""
def updateCookies(Cookies, QQ):
""" Cookies 为字典,可为 Qrcheck 的范围值"""
# 如果文件不存在,会在当前目录创建:
conn = sqlite3.connect('dayReport.db')
# 创建一个Cursor:
cursor = conn.cursor()
# 执行插入操作
pprint(Cookies)
cursor.execute(f'''update healthydaily set stoken='{Cookies["stoken"]}',PHPSESSID='{Cookies["PHPSESSID"]}' where QQ='{QQ}';''')
# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()
每一种操作基本上都一样,主要的区别就是SQL语句的使用。相信到了这里大家也就明白了在Python中如何使用SQLite3。如果有疑问或者好的想法欢迎评论区留言或者私信博主。