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

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

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

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

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

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

01

导入sqlite3模块

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

import sqlite3

02

创建与SQLite数据库的连接

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

# 创建与数据库的连接

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

':memory:')

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

#创建一个游标 cursor

03

在SQLite数据库中创建表

这里就要执行sql的建表语句了,我们先创建一张如下的学生成绩表-scores:该表目前只有字段名和数据类型,没有数据,执行以下语句实现:

# 建表的sql语句

04

向表中插入数据

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

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

# 插入单条数据

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

'B', 

05

查询数据

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

# 查询数学成绩大于90分的学生

返回:

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

06

其他操作

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

# 提交改动的方法

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

# 关闭游标

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

往期精选

学Python,真的有那么简单吗?

如何选择公司?张一鸣写给技术人的建议

Python实现“一行拆多行“和“多行并一行“,你会吗?

什么时候,Python会被取代?

【精心整理】这30个常用Python代码,你熟练了吗?

hbase中为何不能向表中插入数据_Python自带的数据库,用起来真方便!相关推荐

  1. Hibernate 学习心得1: 多对多关系中,中间表无法插入数据。

    Hibernate 学习心得之一 多对多关系中,中间表无法插入数据. 最近学习 spring4+hibernate4,学习中遇到了很多坑. 在这里我来说说我遇到的坑,这里就不介绍如何spring如何集 ...

  2. oracle into多个变量,Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据....

    该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动. 1,ins ...

  3. cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项

    cte公用表表达式 In this article, the latest in our series on Common table expressions, we'll review CTE SQ ...

  4. 如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录

    如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录 目录

  5. oracle查表字段长度,oracle中查询某张表中的字段名,字段类型,字段长度等信息...

    oracle中查询某张表中的字段名,字段类型,是否为空,字段长度等信息 --更改某张表的字段类型长度 alter table bill_info modify IDCARD VARCHAR2 (30) ...

  6. #ArcGis中如何对属性表中的字段进行顺序赋值??

    #ArcGis中如何对属性表中的字段进行顺序赋值?? 如题,昨天有小伙伴在公号私信里问我"如何在ArcGis中对属性表中的字段进行顺序赋值??"这个问题如果会一点python编程, ...

  7. jtable如何从表格中定位_ja中怎样将一个JTable表中的指定行添加到数据库

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:ja中怎样将一个JTable表中的指定行添加到数据库用的是回答:你首先得获取你选择的指定行 (getselectrow()方法),再 ...

  8. Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置

    Windows注册表中的几个分项分别是什么 HKEY_LOCAL_MACHINE 是机器硬件信息的集散地 HKEY_CURRENT_USER 当前用户所用信息的储存地 HKEY_CLASSES_ROO ...

  9. SQL数据库中如何把一个表中的数据复制到另一个表中?

    SQL数据库中如何把一个表中的数据复制到另一个表中?** 1整个表复制:** insert into table1 select * from table2 2部分列复制:** insert into ...

  10. php创建表并插入数据,php数据库操作-创建库和表以及插入数据

    以上我们正确连接到了mysql数据库,本文将进一步创建数据库,表,在表中填充数据. 大家知道连接上数据库才能进行操作,同样的代码搬过来 /* * 数据库操作*(创建数据库,表,插入数据,插入多条数据) ...

最新文章

  1. python的数值类型和运算符_Python中的基本数据类型和运算符,python
  2. oracle 效率问题,Oracle【诡异】的效率问题
  3. python主线程执行_python 并发执行之多线程
  4. python怎么写出来的_如何写出优雅又地道的Python代码?【转载】
  5. 7-7 印度大壶节 (25 分)
  6. VirtualBox 安装ghost版windows XP
  7. Hive map side join入门及测试
  8. Java_一致性哈希算法与Java实现
  9. Yii2实现自定义独立验证器的方法
  10. 数据挖掘:关联分析—Apriori算法
  11. Kubernetes30--弹性伸缩总结
  12. java对接支付宝网页h5支付
  13. 基于IIS Live Smooth Streaming技术流媒体直播系统
  14. 软件脱壳常见的几种方法
  15. [Python] 黑白棋(翻转棋)小游戏
  16. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并
  17. t-检验(t-test)的应用举例及matlab代码
  18. nvm npm nrm的简单理解
  19. Permissions 0664 for ‘yanyongx.pem‘ are too open.
  20. hdu3234 Exclusive-OR(带权并查集)

热门文章

  1. 主流手机user-agent与支持图像尺寸对照表(联通的)
  2. jdk8 lambda表达式
  3. c#类的多态和文件流复习
  4. 模板函数:将string类型变量转换为常用的数值类型和常用的数值类型转String
  5. Confluence 6 配置 Office 转换器
  6. JAVA学习IO(1)
  7. 获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
  8. DOS命令大全(经典收藏)【运行CMD后的命令】
  9. 配置主机间信任的一个简单办法
  10. 网页下载CAB文件总结