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:

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

# 建表的sql语句

sql_text_1 = '''CREATE TABLE scores(姓名 TEXT,班级 TEXT,性别 TEXT,语文 NUMBER,数学 NUMBER,英语 NUMBER);'''

# 执行sql语句

cur.execute(sql_text_1)

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方法

sqlite3修改表内容python_Python sqlite3数据库模块使用攻略相关推荐

  1. sqlite3修改表内容python_python之sqlite3使用详解(转载)

    Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它使用一个文件存储整个数据库,操作十分方便.它的最大优点是使用方便,功能相 ...

  2. sql php修改mysql结构_sql怎么修改表内容

    sql修改表内容的方法:可以通过执行[update 表名 set 列名1=值,列名2=值 where 条件;]命令来修改.使用该命令可以修改单表中一行单列或者多列数据. sql中修改表的内容有以下三种 ...

  3. 手动创建数据库实例全攻略4:参数文件

    手动创建数据库实例全攻略4:参数文件 一.参数文件说明 1.参数文件作用. 在前期的数据库知识探索实验中,我们经常使用这个参数. http://www.cnblogs.com/alexy/p/crea ...

  4. 手动创建数据库实例全攻略7:UNDO

    手动创建数据库实例全攻略7:UNDO 一.偷来的常识 网络上这个哥们写的太精彩了,直接复制阅读之! 文字来源:http://blog.csdn.net/tianlesoftware/article/d ...

  5. 英魂之刃服务器维护中修改,英魂之刃gg修改教程 | 手游网游页游攻略大全

    发布时间:2016-04-09 今天小编要给大家带来的是辅助秒世界BOOS修改教程,如果你正好在寻找的辅助修改器,修改教程那就来对地方了哟. 辅助秒世界BO ... 标签: 剑魂之刃辅助 剑魂之刃修改 ...

  6. Database之SQLSever:SQL命令实现的高级案例集合之单表/多表(筛选、统计个数)之详细攻略

    Database之SQLSever:SQL命令实现的高级案例集合之单表/多表(筛选.统计个数)之详细攻略 目录 一.sql实现筛选 1.单个表筛选 1.1.简单筛选 1.2.嵌套筛选

  7. 计算机毕业论文内容参考|基于Android的旅游攻略APP的设计与实现

    文章目录 导文 摘要: 前言: 绪论: 1. 课题背景: 2. 国内外现状与趋势: 3. 课题内容: 相关技术与方法介绍: 系统分析: 系统设计: 系统实现 系统测试 总结与展望 本文总结 后续工作展 ...

  8. 赛尔号服务器维护时间4月27,赛尔号4月27日更新内容 赛尔号4月27日攻略大全

    赛尔号4月27日更新内容 赛尔号4月27日攻略大全 终结!上古传说! 据说在巴斯星的上古龙殿的遗址,存在着龙族最强大的能量!正义的势力能战胜帕罗狄亚吗?赛尔们!巴斯星集合! 折翼的圣光天马 受伤的圣光 ...

  9. Python语言学习:Python语言学习之正则表达式常用函数之re.search方法【输出仅一个匹配结果(内容+位置)】、re.findall方法【输出所有匹配结果(内容)】案例集合之详细攻略

    Python语言学习:Python语言学习之正则表达式常用函数之re.search方法[输出仅一个匹配结果(内容+位置)].re.findall方法[输出所有匹配结果(内容)]案例集合之详细攻略 导读 ...

最新文章

  1. poj 3321 Apple Trie
  2. 蚂蚁金服自研的OceanBase升级到2.0了,据说性能……
  3. jdbc链接数据库mysql
  4. 如何构建一个分布式爬虫:理论篇
  5. linux设置NO_PROXY绕过代理
  6. 使用python学线性代数_最简单的神经网络简介| 使用Python的线性代数
  7. jquery.easyui常用示例
  8. 使用FFmpeg从视频中截图的命令
  9. 传统的6d位姿估计fangfa1_李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪...
  10. Ambari系统架构
  11. 补习系列(22)-全面解读 Spring Profile 的用法
  12. 个人第三次软件工程作业-效能分析
  13. SEO网站外链优化大全
  14. 服务器系统报ata6,ATA_5.4考试管理系统使用手册[最终版].doc
  15. If you insist running as root, then set the environment variable RUN_AS_USER=root before running thi
  16. sklearn逻辑回归参数详解,及用逻辑回归制作评分卡
  17. matlab弦截法例子,弦截法matlab程序
  18. 算法题 - 卡牌游戏问题 - Python
  19. 电磁场与仿真软件(21)
  20. 从软件生命周期看应用安全(网络安全)

热门文章

  1. 文件上传java逻辑_Java 文件上传 实例
  2. Python datetime astimezone()方法与示例
  3. 回文子序列_计算回文子序列的总数
  4. Java DataInputStream readShort()方法(带示例)
  5. ReactNative开发工具有这一篇足矣
  6. MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换
  7. Ajax用证书调用,跨域的jQuery AJAX调用,带证书(Cross domain jQuery ajax call
  8. 战双帕弥什自抽号怎么使用_战双帕弥什新S冰露怎么玩《战双帕弥什》新S冰露玩法技巧...
  9. 4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...
  10. gprs模块ftp 远程升级_基于GPRS无线通信技术的冷链监测系统