【数据库学习笔记】——操作sqlite(增删改查)以及cursor的方法介绍

目录

1、sqlite数据库介绍

1)常见的数据库操作

2)数据操作常见步骤

2、向数据表中增加数据(insert into)

 1)向数据表中添加一条记录

 2)向数据表中一次性添加多条记录

3、修改数据表中已有的数据

 1)一次修改一条记录

 2)一次修改多条记录

 4、查询数据表中的数据

5、删除数据表中的数据


1、sqlite数据库介绍

数据库|SQLite数据库_Chuangke_Andy的博客-CSDN博客SQLite数据库数据库(Database)是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。常用的数据分为大型、中型和小型数据库。1. SQLite数据库SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了。它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快。SQLite提供一些C函数接口,可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 SQLite函数,SQLithttps://blog.csdn.net/Chuangke_Andy/article/details/108471199?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163583751816780274152362%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163583751816780274152362&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-108471199.pc_search_all_es&utm_term=sqlite%E6%95%B0%E6%8D%AE%E5%BA%93&spm=1018.2226.3001.4187

SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了。它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快。SQLite提供一些C函数接口,可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 SQLite函数,SQLite就会为你操作数据库。

    零配置,无需安装和管理配置
    储存在单一磁盘文件中的一个完整的数据库
    数据库文件可以在不同字节序的机器间自由共享
    支持数据库大小至2TB
    足够小,全部源码大致3万行C代码,250KB
    比目前流行的大多数数据库对数据的操作要快

特点:速度快、适合小型的数据存储(2T)

1)常见的数据库操作

  • 向数据表中增加数据——insert into
  • 修改数据表中的内容——update
  • 删除数据表中的内容——delete
  • 查询数据表中的内容——select、fetchone/fetchmany/fetchall

2)数据操作常见步骤

  • 连接数据库
  • 创建游标对象
  • 根据操作创建sql语句
  • 利用execute/executemany函数执行SQL语句
  • 关闭游标对象
  • 提交事务(查询不需要,只有在表内容发生改变的时候才需要进行事务提交,保证数据完整性)
  • 关闭数据库

2、向数据表中增加数据(insert into)

数据库可视化:

原创 【数据库学习】——数据库可视化--Navicat下载安装连接教程icon-default.png?t=L9C2https://blog.csdn.net/qq_45769063/article/details/121101535增加数据SQL语句:(问号表示占位符)

insert into 数据表名 (字段名1,字段名2)values(?,?)

"insert into user (id,name) values (?,?)"

含义:向数据表中添加各个字段内容为(?,?)的一条记录

注:在进行插入时,id具有唯一性,因此不能插入相同id,否则会报错

 1)向数据表中添加一条记录

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句
sql = "insert into user (id,name) values (?,?)" # 其中问号为占位符
# 插入一条记录
cur.execute(sql,(0,"lily")) # 执行SQL语句时,使用元组传递参数(填充占位符)对应SQL语句的values
cur.close()
conn.commit()
conn.close()

 2)向数据表中一次性添加多条记录

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句
sql = "insert into user (id,name) values (?,?)" # 其中问号为占位符
# 插入一条记录
# cur.execute(sql,(0,"lily")) # 执行SQL语句时,使用元组传递参数(填充占位符)对应SQL语句的values
# 插入多条记录——用列表保存多个插入记录
date = [(1,"li"),(2,"davy"),(3,"july")]
cur.executemany(sql,date)
cur.close()
conn.commit()
conn.close()

3、修改数据表中已有的数据

数据库可视化:

原创 【数据库学习】——数据库可视化--Navicat下载安装连接教程icon-default.png?t=L9C2https://blog.csdn.net/qq_45769063/article/details/121101535修改数据SQL语句:(问号表示占位符)

update 数据表名 set 字段名 = ?where 主键名 = ?

update user set name = ? where id = ?

含义:将数据表user中主键为?的name字段值修改为?

 1)一次修改一条记录

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句,表示更新表user中指定id记录的name属性
sql = "update user set name = ? where id = ?" # 其中问号为占位符
cur.execute(sql,("lily_update",0))
cur.close()
conn.commit()
conn.close()

 

 2)一次修改多条记录

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句,表示更新表user中指定id记录的name属性
sql = "update user set name = ? where id = ?" # 其中问号为占位符
# cur.execute(sql,("lily_update",0))
date = [("update1",1),("update2",2)]
cur.executemany(sql,date)
cur.close()
conn.commit()
conn.close()

 4、查询数据表中的数据

数据库可视化:

原创 【数据库学习】——数据库可视化--Navicat下载安装连接教程icon-default.png?t=L9C2https://blog.csdn.net/qq_45769063/article/details/121101535查询数据SQL语句:

select * from 数据表名 条件

"select * from user where id >= 0"

含义:从表user中选择id大于等于0的记录

注:在同一个代码中有多次查询,下一次查询都是基于上一次查询的基础上开始的

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句
sql = "select *  from user where id >= 0" # 其中问号为占位符cur.execute(sql)
# 一次查找一条,从结果集第一条开始查找
result1 = cur.fetchone()
# 一次查找一条,从上一次开始查找
result2 = cur.fetchone()
# 一次查找多条,从上一次开始查找
result3 = cur.fetchmany(3) # 一次查找3条
# 一次查找所有满足条件的结果,从上一次开始查找
result4 = cur.fetchall()
print("查找一条",result1)
print("查找一条",result2)
print("查找3条",result3)
print("查找所有",result4)
cur.close()
conn.close()

 查找一条 (0, 'lily_update')
查找一条 (1, 'update1')
查找3条 [(2, 'update2'), (3, 'july')]
查找所有 []

5、删除数据表中的数据

数据库可视化:

原创 【数据库学习】——数据库可视化--Navicat下载安装连接教程icon-default.png?t=L9C2https://blog.csdn.net/qq_45769063/article/details/121101535删除数据SQL语句:

delete  from 数据表名 条件

"delete from user where id >= 1"

含义:从表user中删除id大于等于1的记录

执行前

执行后

 

import sqlite3conn = sqlite3.connect("linlianqin.db")
cur = conn.cursor()
# sql语句
sql = "delete  from user where id >= ?" # 其中问号为占位符cur.execute(sql,(1,))cur.execute("select *  from user")
result4 = cur.fetchall()print("查找所有",result4)
cur.close()
conn.commit()
conn.close()

查找所有 [(0, 'lily_update')] 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springMVC分析-2

springMVC的请求映射 上一次分析了一下springMVC的大致流程,这次细分一下,对请求映射进行分析。 先从DispatcherServlet中的getHandler()方法分析 protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception {for (Hand…

简单消息协议

简单消息协议:定义了ROS与工业机器人之间简单的消息协议。额外的处理程序和管理器类包含用于处理有限连接的系统。这个包是ROS-Industrial计划的一部分。 简单消息协议定义了ROS驱动层与机器人控制器层通信的消息结构。该消息结构符合下列要求: 1、结构足…

Centos安装Vmware-Tools工具

1、打开指定的Centos虚拟机&#xff0c;点击清单-->虚拟机-->客户机-->安装/升级VMware-Tools&#xff08;<u>W</u>&#xff09;&#xff1b; 2、登录Centos会话台&#xff0c;Applications-->Systme Tools-->Terminal&#xff1b; 3、使用“su -”…

【sqlite常用操作SQL语句】

目录 1、创建一个新的数据表 2、在已有的数据表中增加一个新的字段&#xff08;列&#xff09; 3、 在已有的数据表中增加一条新的记录&#xff08;行&#xff09; 1、创建一个新的数据表 "create table user(id int(11) primary key, name varchar(20))" 含义&…

perl-基础

1、Perl 语法入门&#xff1a; 1、print 语句&#xff1a; print "Hello, world\n"; print("Hello, world\n"); 2、引号&#xff1a; Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量&#xff0c;而单引号无法解析会原样输出。 3、perl数…

wdk1703+vs2015编译的诡异问题

wdk1703vs2015编译的诡异问题 最近将wdk升级到1703&#xff08;10.0.15063.0&#xff09;版本&#xff0c;编译一个新建的minifiter项目居然出现了失败 提示错误为 WindowsDriver.common.targets(460,5): error MSB6004: The specified task executable location "\stampi…

centos6虚拟机复制后修改网卡

方法1&#xff1a; 使用vmware创建centos6.4虚拟机&#xff0c; 创建完成后复制该虚拟机&#xff0c; 打开复制的虚拟机发现网卡名字是eth1&#xff0c;而网卡配置文件为eth0&#xff0c;mac地址变了 这时修改网卡配置文件&#xff0c; 删除uuid&#xff0c;修改deivce为eth1&a…

【pyinstaller打包pyqt5编写的项目为exe(脱离环境可运行)】

目录 下载pyinstaller库 0、pyinstaller语句介绍 1、单个py文件打包成exe 1)只有py文件 假设只有一个py文件&#xff1a;pyinstaller -F xxx.py 加上图标&#xff1a;pyinstaller -F xxx.py -i xxx.ico 取消命令行窗口:pyinstaller -F -w xxx.py -i xxx.ico 2) 不但有py…

熔化极气体保护电弧焊简介

1概述 熔化极气体保护电弧焊&#xff08;英文简称GMAW&#xff09;是采用连续等速送进可熔化的焊丝与被焊工件之间的电弧作为热源来熔化焊丝和母材金属&#xff0c;形成熔池和焊缝的焊接方法&#xff0c;如图1所示。为了得到良好的焊缝应利用外加气体作为电弧介质并保护熔滴、熔…

python 中cPickle学习二

写入&#xff1a; import cPickle as p shoplistfile data.data shoplist [meili,[current_account,[100000,1222],basis_account,[5555555,888]],qinshan,[current_account,[1089000,12292],basis_account,[55555955,888]],jiayou,[current_account,[10000,12292],basis_acc…

4.0 多线程基础篇

本文并非最终版本&#xff0c;如有更新或更正会第一时间置顶&#xff0c;联系方式详见文末如果觉得本文内容过长&#xff0c;请前往本人 “简书”4.0-1.1 进程 概念 : 进程是指在系统中正在运行的一个应用程序 (操作系统中每一个 APP 就是一个进程)  性质 : 每个进程之间是独…

【python pandas excel操作】

目录 1、打开Excel&#xff0c;获取不同sheet的名称 2、获取不同sheet的内容 3、 获取行数以及表头 4、对某一列的信息进行筛选 5、根据列号和索引号提取一行或者一列的数据 6、其他panda对Excel的操作 摘自&#xff1a;python对excel操作获取某一列&#xff0c;某一行的值…

焊接机器人应用现状及发展趋势

据不完全统计&#xff0c;全世界在役的工业机器人中大约有将近一半的工业机器人用于各种形式的焊接加工领域&#xff0c;焊接机器人应用中最普遍的主要有两种方式&#xff0c;即点焊和电弧焊。图4所示是这两种焊接机器人在工业机器人中所占的大致比例。我们所说的焊接机器人其实…

线性期望(BUPT2015校赛.F)

将整体期望分成部分期望来做。 F. network 时间限制 3000 ms 内存限制 65536 KB题目描述 A social network is a social structure made up of a set of social actors (such as individuals or organizations) and a set of the relationships between these actors. In simp…

【pyqt5学习】——进度条progressBar

# 进度条 self.progressBar.setValue(0) # 设置进度条的最小值 self.progressBar.setMaximum(100) # 设置进度条的最大值 # 设置进度条当前值 self.progressBar.setValue((int(curindex/excelNum)*100)) 常用方法 方法值说明setRangeQProgressBar.setRange(min, Max)通过 setR…

弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合

Ar含量提高后&#xff0c;相比原来的100%CO2成本会提高很多。 Ar的密度比CO2小&#xff0c;焊接的焊枪必须压的很低&#xff0c;如果焊接结构中有一些狭小区域&#xff0c;焊枪则无法到达。纯CO2气体保护焊&#xff0c;焊丝可伸出较长。 Ar属于惰性气体&#xff0c;焊接时…

Windows和Linux如何使用Java代码实现关闭进程

在用selenium做自动化测试时&#xff0c;由于各种不明原因&#xff0c;有时Chrome浏览器会出现假死的情况&#xff0c;也就是整个浏览器响应超时&#xff0c;本人脚本主要部署在Windows机器上&#xff0c;所以主要以Windows为主&#xff0c;浏览器为Chrome,即如下图所示 或者由…

CSS之A标签

a标签&#xff0c;超级链接 a是英语anchor锚的意思。 a标签常用的就是三个属性&#xff1a; 1 <a href"网址" title"悬停文本" target"_blank">超级链接文字</a> 页面内的锚点&#xff0c;用name属性或者id属性 1 …

【pyqt5学习】——下拉框comboBox

# 向下拉框中添加选型&#xff0c;具体为在下拉框第index1个选型设置为内容name self.comboBox.addItem(name,index1) # 将下拉框中所有的选项删除 self.comboBox.clear() # 根据索引获取当前的下拉框内容 index self.comboBox.currentIndex() text self.comboBox.itemText(i…