Python作为数据科学主流语言,被广泛用于数据读存、处理、分析、建模,可以说是无所不能。

数据一般存放在本地文件或者数据库里,之前介绍过如何使用python读取本地文件,也对# PyMySQL、cx_Oracle等数据库连接库做过简单的使用分享。

这次推荐一个python自带的轻量级数据库模块-sqlite3,先要弄清楚什么是SQLite:

SQLite是一种用C写的小巧的嵌入式数据库,它的数据库就是一个文件。SQLite 不需要一个单独的服务器进程或操作的系统,不需要配置,这意味着不需要安装或管理,所有的维护都来自于SQLite 软件本身。

sqlite3模块不同于PyMySQL模块,PyMySQL是一个python与mysql的沟通管道,需要你在本地安装配置好mysql才能使用,而SQLite是python自带的数据库,不需要任何配置,使用sqlite3模块就可以驱动它。

本文我们将进行连接 SQLite数据库、创建表、插入数据、读取数据、修改数据等操作。

1. 导入sqlite3模块

sqlite3是内置模块,所以不需要安装的,直接import导入即可:

import sqlite3

2. 创建与SQLite数据库的连接

使用sqlite3.connect()函数连接数据库,返回一个Connection对象,我们就是通过这个对象与数据库进行交互。数据库文件的格式是filename.db,如果该数据库文件不存在,那么它会被自动创建。该数据库文件是放在电脑硬盘里的,你可以自定义路径,后续操作产生的所有数据都会保存在该文件中。

# 创建与数据库的连接
conn = sqlite3.connect('test.db')

还可以在内存中创建数据库,只要输入特殊参数值:memory:即可,该数据库只存在于内存中,不会生成本地数据库文件。

conn = sqlite3.connect(':memory:')

建立与数据库的连接后,需要创建一个游标cursor对象,该对象的.execute()方法可以执行sql命令,让我们能够进行数据操作。

#创建一个游标 cursor
cur = conn.cursor()

3. 在SQLite数据库中创建表

这里就要执行sql的建表语句了,我们先创建一张如下的学生成绩表-scores:

该表目前只有字段名和数据类型,没有数据,执行以下语句实现:

4. 向表中插入数据

建完表-scores之后,只有表的骨架,这时候需要向表中插入数据:

执行以下语句插入单条数据:

# 插入单条数据
sql_text_2 = "INSERT INTO scores VALUES('A', '一班', '男', 96, 94, 98)"
cur.execute(sql_text_2)

执行以下语句插入多条数据:

data = [('B', '一班', '女', 78, 87, 85),('C', '一班', '男', 98, 84, 90),]
cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?)', data)
# 连接完数据库并不会自动提交,所以需要手动 commit 你的改动conn.commit()

5. 查询数据

我们已经建好表,并且插入了三条数据,现在来查询特定条件下的数据:

# 查询数学成绩大于90分的学生
sql_text_3 = "SELECT * FROM scores WHERE 数学>90"
cur.execute(sql_text_3)
# 获取查询结果
cur.fetchall()

返回:

备注:获取查询结果一般可用.fetchone()方法(获取第一条),或者用.fetchall()方法(获取所有条)。

6. 其他操作

对数据库做改动后(比如建表、插数等),都需要手动提交改动,否则无法将数据保存到数据库。

# 提交改动的方法
conn.commit()

使用完数据库之后,需要关闭游标和连接:

# 关闭游标
cur.close()
# 关闭连接
conn.close()

附连接connection和游标cursor的API方法:

原来Python自带了数据库,用起来真方便相关推荐

  1. oracle数据如何获取游标中动态字段_原来Python自带了数据库,用起来真方便!

    Python大数据分析 记录   分享   成长 Python作为数据科学主流语言,被广泛用于数据读存.处理.分析.建模,可以说是无所不能. 数据一般存放在本地文件或者数据库里,之前介绍过如何使用py ...

  2. python自带的数据库_Python小白的数据库入门

    前言 SQL数据库数据库SQL语言入门SQL简介SQL 的作用 SQL语句分类 SQLite 数据库SQLite 中的数据类型 DDL语句创建表 删除表 修改表 DML语句添加 删除 修改 查询 Py ...

  3. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  4. python自带sqlite库_Python标准库之sqlite3使用实例

    Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具.SQLite还在其它领域有广泛的应 ...

  5. python cx_Oracle连接Oracle数据库查询

    python cx_Oracle连接Oracle数据库查询 代码 带参数查询 官方文档地址 代码 import cx_Oracle import pandas as pdsql = ''' SELEC ...

  6. python sqlite3 带密码_Python实现ATM提款机系统

    原文在此 https://mp.weixin.qq.com/s?__biz=MzU2NTc1MTc5MQ==&mid=2247484014&idx=1&sn=6f43e5833 ...

  7. python 搭建登陆系统,用Python连接操作MySQL数据库,做一个简单的用户登录注册系统...

    我们可以很容易地用Python实现一个用户登录系统,相信这即使是对编程新手来说也是小菜一碟. 作为Python的小萌新,今天我想记录下来的是如何实现一个连接了MySQL数据库的用户登录注册系统,它的效 ...

  8. 搭建Python自带静态Web服务器

    学习目标 能够知道搭建Python自带Web服务器 1. 静态Web服务器是什么? 可以为发出请求的浏览器提供静态文档的程序. 平时我们浏览百度新闻数据的时候,每天的新闻数据都会发生变化,那访问的这个 ...

  9. python sqlite3 带密码_Python爬虫+Flask,带你创建个网站!

    文化不分边界 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:"落霞与孤鹜齐飞,秋水共长天一色."而不是:"卧靠,好多鸟."; 当你失恋时你低吟浅唱道:& ...

最新文章

  1. 2019第四周作业(基础作业+挑战作业)
  2. php创建类用什么关键字,PHP面向对象开发之类的常用关键字
  3. python 装饰器入门
  4. python单链表操作_单链表的创建、增删改查等操作(Python实现)
  5. scanner java重新输入_如何使用Scanner Java重复读取用户输入
  6. 【高等数学】一元函数微分学
  7. Linux命令行解析参数之getopt_long
  8. Jquery遍历之获取子级元素、同级元素和父级元素
  9. jmeter处理带表单的接口请求
  10. 生产者-消费者模型之集合ArrayBlockingQueue源码解读
  11. 宏碁暗影骑士2022 i7-12700h+intel ax1650网卡+ubuntu1804+linux5.19 安装网卡驱动
  12. 安卓程序员需要什么证书
  13. 美团java笔试题_美团笔试题目(Java后端5题2小时)
  14. VIN码/车架号的详解,车架号识别,VIN码识别,OCR车架号识别能带来什么
  15. URAL-1941 Scary Martian Word 队列维护
  16. console接口是干嘛的(console接口是干嘛的电信室外光猫)
  17. 怎么在Word文档中更改所有数字和英文字母的字体
  18. 我国主要城市2023年房价数据
  19. MySQL索引,检索数据库
  20. HighlightBuilder高亮显示

热门文章

  1. ajax与spry的关系,用Spry框架来简化AJAX
  2. 一个架构师的真正职责
  3. HTTP学习笔记(适合初学)2
  4. mysql floor 不准确_MYSQL的floor出现报错如何解决
  5. Zigzag和蛇形矩阵
  6. 如何在Linux上查看历史命令
  7. vim删除文本的命令
  8. 唐宇迪学习笔记3:Python数据可视化库——Matplotlib
  9. Prometheus学习之Blackbox
  10. SIMD<SIMT<SMT: NVIDIA GPU的并行机制