【数据库学习笔记】——操作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 sqlite3

conn = 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 sqlite3

conn = 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 sqlite3

conn = 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 sqlite3

conn = 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 sqlite3

conn = 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 sqlite3

conn = 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')] 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值