【数据库学习笔记】——操作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,一经查实,立即删除!

相关文章

【sqlite常用操作SQL语句】

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

centos6虚拟机复制后修改网卡

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

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

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

python 中cPickle学习二

写入: 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 多线程基础篇

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

【python pandas excel操作】

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

线性期望(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含量提高后,相比原来的100%CO2成本会提高很多。 Ar的密度比CO2小,焊接的焊枪必须压的很低,如果焊接结构中有一些狭小区域,焊枪则无法到达。纯CO2气体保护焊,焊丝可伸出较长。 Ar属于惰性气体,焊接时…

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

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

【pyqt5学习】——下拉框comboBox

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

【文件处理】——Python pandas 写入数据到excel中

目录 1、创建一个新的excel表格 2、 获取写入excel的数据data 3、将data类型转换为pandas接受的类型 4、写入到excel中 5、保存excel 最终结果 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/11/9 23:18 # Author : linlianqin # Site : # File …

微软Visual Studio 2012软件功能介绍

对于从事.net程序开发的我们,都要用到C#依附的Visual Studio平台!Visual Studio是目前最流行的Windows平台应用程序开发环境。最新版本为 Visual Studio 2012 版本,基于 NET Framework4.5 。. Visual Studio 2012内置的测试工具可以帮助开发者打造高质量…

Spring Boot轻松理解动态注入,删除bean

2019独角兽企业重金招聘Python工程师标准>>> 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解,我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bea…

对象的深度克隆

最近在复习javascript,然而我的读书笔记,以及技术博客,已经转战cmd Markdown。所以这里就只写了一个对象的深度克隆方法: 这个克隆方法可以让我很深刻的了解到了js中,万物皆对象,对js有更深入的了解。转载于…

C/C++语言变量声明内存分配

[cpp] view plaincopy<span style"font-family: Verdana, Arial, Helvetica, sans-serif; ">一个由c/C编译的程序占用的内存分为以下几个部分</span> 1、栈区&#xff08;stack&#xff09;— 程序运行时由编译器自动分配&#xff0c;存放函数的参数值…

【pyqt5学习】——items view相关控件(list view、table view)

目录 list view——列表视图 table view——表格视图 list view——列表视图 PyQt5-高级控件使用&#xff08;QListView&#xff09; - ygzhaof_100 - 博客园QListView用于展示数据&#xff0c;子类是QListWidget。QlistView基于模型Mode&#xff0c;需要程序创建Model然后保…

【pyqt5学习】——containers相关控件(tab widget、scroll area、stack widget、tool box、MDI area、dock widget)

目录 1、tab widget 2、scroll area 2.1 使用方法 Step1.拖入QScrollArea ​Step2.改变widget控件布局 ​Step3.设置scrollAreaWidgetContents大小 3、Tool Box 4、Stacked Widget 4.1 案例展示 5、frame 6、MDI AREA 7、dock widget 7.1 悬浮状态 7.2 吸附状态 conta…

Java使用原子类进行多线程的 i++ 操作示例

2019独角兽企业重金招聘Python工程师标准>>> 使用AtomicInteger原子类进行 i 操作 可以有类似 synchronized 实现同步的效果。 原子操作是不能分割的整体&#xff0c;没有其他线程能够中断或检查正在原子操作中的变量。一个原子类型就是一个原子操作可用的类型&…