栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据分析利器Python——数据库操作(以SQLite为例)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据分析利器Python——数据库操作(以SQLite为例)

文章目录
    • 一、定义
    • 二、基本操作
      • 操作举例
    • 三、多表连接

一、定义

以一定方式存储,可以多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。

二、基本操作

关于数据库的常用操作我们之前已经讲过,此处只讲使用Python操作数据库的步骤。
连接数据库
conn = sqlite3.connect(db_name)

  • 如果db_name存在,读取数据库
  • 如果db_name不存在,则新建数据库

获取游标

  • conn.cursor()
  • 用于执行SQL语句
  • 一段私有的SQL工作区,用于暂时存放受SQL语句影响的数据

具体操作

  • cursor.execute(sql_str)
  • cursor.executemany(sql_str)批量操作

获取单条记录:fetchone()
获取多条记录:fetchall()
提交操作:conn.commit()
关闭连接:conn.close()

操作举例
import sqlite3
db_path = '../files/test.db' # 如果不存在则会新创建一个
conn = sqlite3.connect(db_path) # 连接数据库
cur = conn.cursor() # 获取游标
cur.execute("select name from sqlite_master where type = 'table';").fetchall() # 获取当前数据库的所有表
cur.execute("create table book(id int,name text,price double);") # 创建表
cur.execute("INSERT INTO book VALUES(1,'肖秀荣考研书系列:肖秀荣(2022)考研政治命题人终极预测8套卷',24.40);")
cur.execute("INSERT INTO book VALUES(2,'法医秦明作品集',100.00);")
cur.execute("INSERT INTO book VALUES(3,'活着本来单纯:丰子恺散文漫画精品集',30.90);")
cur.execute("select * from book;").fetchall() # 获取表中所有字段,必须加fetchall()
cur.execute("pragma table_info(book);").fetchall() # 获取字段信息,结果如下。
'''
[(0, 'id', 'int', 0, None, 0),
 (1, 'name', 'text', 0, None, 0),
 (2, 'price', 'double', 0, None, 0)]
'''
# 批量插入
more_books = (
    (9, '人间草木', 30.00),
    (10,'你的善良必须有点锋芒', 20.50),
    (11, '这么慢,那么美', 24.80),
    (12, '考拉小巫的英语学习日记:写给为梦想而奋斗的人(全新修订版)', 23.90)
)
cur.executemany("INSERT INTO book VALUES(?, ?, ?)", more_books)
conn.commit() # 提交操作
cur.close() # 关闭连接

如果想要返回详细信息,必须在语句后加fetchone或fetchall。

三、多表连接

大部分SQL语句是通用的,但需要注意的是,SQLite中不支持右连接

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号