网络知识 娱乐 ⭐震惊这福利还不知道!免安装几分钟速学Python内库Sqlite3⭐

⭐震惊这福利还不知道!免安装几分钟速学Python内库Sqlite3⭐

学委之前写了一篇把 热榜生成html报告的,看起来是方便了。

但是统计不太方便啊!好吧,我们搞个数据库把数据存起来,存多点后面分析。

那么,选择哪个数据库好呢?

MySQL?Oracle?PostgresSQL?云数据库?

好多选择啊,Python就内置了一个数据库福利,这里就是Sqlite(sqlite3内置库)啦。

在这里插入图片描述

安装sqlite3?不用!

sqlite3是python安装后的一个预装的模块,算是内置的数据库,直接导入就完啦。

下面直接看代码,保存为demo_db.py.

""" 
雷学委Demo代码
"""
import sqlite3

#创建数据库连接
xuewei_conn = sqlite3.connect("xuewei_jishu.db")

#新建游标
cur = xuewei_conn.cursor()

#下面的sql为创建数据库表tech_stack
sql = """
create table tech_stack(
id INT,
name TEXT
);
"""

cur.execute(sql)
cur.close()

代码加了注释了比较简单不多赘述,直接复制运行代码。

直接查看当前运行目录,发现多了一个xuewei_jishu.db
在这里插入图片描述
也可以用终端输入sqlite3 xuewei_jishu.db使用数据库,如下:

小白会问:内置数据库是不是可以缩写简记为内库啊?那么sqlite3 就是python的内库啊?

呵呵,学委并不想理会,同时想要扔几千行SQL过去。(开个玩笑,写SQL不要搞几千行这样很不厚道!害人害己啊!)

我们刚刚创建了数据库了, 并在数据库中创建了一个表tech_stack(小白还没有反应过来,这就搞定了?)。

我们在数据表中添加技术棧吧

保存下面代码为,demo_db_add.py

""" 
雷学委Demo代码
"""

import sqlite3

#创建数据库连接
xuewei_conn = sqlite3.connect("xuewei_jishu.db")

#新建游标
cur = xuewei_conn.cursor()

sql = """
insert into tech_stack 
(ID, name)
values
(1, "Java"),
(2, "Python"),
(3, "Node.JS"),
(4, "Scala");
"""
cur.execute(sql) #PS学委会的不止这些,这里只是展示一下,欢迎关注三连支持!

xuewei_conn.commit() #PS:commit必须记得
cur.close() #也记得close

运行代码,这个不会报错的。

查看数据库表格的内容

""" 
雷学委Demo代码
"""

import sqlite3

#创建数据库连接
xuewei_conn = sqlite3.connect("xuewei_jishu.db")

#新建游标
cur = xuewei_conn.cursor()

sql = """
select * from tech_stack;
"""

cur.execute(sql)

data = cur.fetchall()
print('query result; %s' % (data))

cur.close()

运行效果如下:
请添加图片描述

练手完毕,现在创建数据库blog,同时建一个表ranklist

类型示例值
idrow_id 字符串类型09467de8-ff76-11eb-8c11-7831c1c54756
title字符串类型❤️爬虫截长屏不方便阅读!推荐dominate直接生成报告❤️
link字符串类型https://blog.csdn.net/geeklevin/article/details/119657231
author字符串类型雷学委
creation_timeTIMESTAMP2021-08-18 00:13:19

学委特别定制之创建数据库和表格Python代码

""" 
雷学委Demo代码
"""
import sqlite3

#创建数据库连接
xuewei_conn = sqlite3.connect("blog.db")

#新建游标
cur = xuewei_conn.cursor()

sql = """
create table ranklist(
id VARCHAR(36) NOT NULL PRIMARY KEY,
title TEXT,
link TEXT,
author TEXT,
creation_time TIMESTAMP default (datetime('now','localtime'))
);
"""

cur.execute(sql)

cur.close()

学委特别定制之添加数据,查询展示

""" 
雷学委Demo代码
"""
import sqlite3
import uuid

#创建数据库连接
xuewei_conn = sqlite3.connect("blog.db")

#新建游标
cur = xuewei_conn.cursor()

fsql = """
insert into ranklist(id, title, link, author)
values
('%s', '%s', '%s', '%s');
"""

sql = fsql % (uuid.uuid1(), "❤️爬虫截长屏不方便阅读!推荐dominate直接生成报告❤️","https://blog.csdn.net/geeklevin/article/details/119657231", "雷学委")

print("sql %s" % sql)
cur.execute(sql)
xuewei_conn.commit() #LEIXUEWEI温馨提示:这里记得调用commit,否则插入语句执行无效果。

sql = "select * from ranklist; "
cur.execute(sql)
data = cur.fetchall()
print("[雷学委] 热榜文章: %s" % str(data))

cur.close()

效果如下图:

在这里插入图片描述

总结

我们以上完成了建库,建表,添加和查询数据几个步骤了。

Python提供的这个“内库”sqlite3是Sqlite数据库的操作接口,使用也很简单,就几分钟的事情。

比较简单,刚刚好适用来进行热榜分析了。

对了,学委还有这个可以关注长期阅读 =>雷学委趣味编程故事汇编
或者=> 雷学委NodeJS系列

这次先把热榜文章表建好,下一篇,学委准备把热榜放到Sqlite里面,后面进行分析。

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
创作不易,请多多支持,点赞收藏支持学委吧!