关于sqlite3与python的基本操作及问题处理

以下基于文章拓展

https://blog.csdn.net/sy670733/article/details/106243056?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163957002516780271530122%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163957002516780271530122&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-106243056.pc_search_em_sort&utm_term=python+sqlite3%E8%AF%BB%E5%8F%96%E6%95%B0%E6%8D%AE&spm=1018.2226.3001.4187

1、试着用python构建了sqlite3文件

import sqlite3

#创建数据库
con=sqlite3.connect('test.db')
#建立游标
cur=con.cursor()
#数据库建立一个表
sql_cre="""CREATE TABLE tab1
        (name TEXT,sex TEXT,age TEXT)"""
cur.execute(sql_cre)

运行后简单建立了一个表:
cur是一个游标,用.execute()方法便可以加入语句执行数据库操作
在这里插入图片描述
现在试着往里面添加数据:

#添加一个记录
sql_ins="INSERT INTO tab1 VALUES(?,?,?)"
cur.execute(sql_ins,('张三丰','男',2))

结果
请添加图片描述

查询可知:
在这里插入图片描述

于是试着先将navicat关闭数据链接
在这里插入图片描述

结果还是不行,于是查了发现好像少了一句话

con.commit()

于是加上后发现
操作成功了哈哈

删除整张表结构:

#删除一个表
sql_dro="DROP TABLE IF EXISTS tab1"
cur.execute(sql_dro)

删除一条数据:(aql语句是不区分大小写的)

#删除一个记录
sql_del="DELETE FROM TAB1 WHERE name=?"
cur.execute(sql_del,('张三丰',))

更新一条数据:

#修改一个记录
sql_upd="UPDATE tab1 set name=? WHERE name=? "
cur.execute(sql_upd,('段誉','张三丰'))

在这里插入图片描述

加入多个数据

#添加多条语句(删除同理)
add_list=[('小龙女','古墓','女',18),('令狐冲','华山','男',20),('乔峰','丐帮','男',30)]
sql_inss="INSERT INTO tab2 VALUES(?,?,?,?)"
cur.executemany(sql_inss,add_list)

在这里插入图片描述

注意此处用的命令是executmany

查询数据

#查询数据
sql_sel="SELECT * FROM tab2"
cur.execute(sql_sel)
print(cur.fetchone())#获取一条
print(cur.fetchmany(2))#上面获取了第一条,下面获取第2-3条
print(cur.fetchall())#获取剩余的

在这里插入图片描述
在这里插入图片描述
完整代码如下:

import sqlite3

#创建数据库
con=sqlite3.connect('test.db')
#建立游标
cur=con.cursor()

#数据库建立一个表
# sql_cre="CREATE TABLE tab1 (name TEXT,sex TEXT,age TEXT)"
# cur.execute(sql_cre)

#删除一个表
# sql_dro="DROP TABLE IF EXISTS tab1"
# cur.execute(sql_dro)

#数据库建立一个表
# sql_cre="CREATE TABLE tab2 (name TEXT,sects TEXT,sex TEXT,age TEXT)"
# cur.execute(sql_cre)

#添加一个记录
# sql_ins="INSERT INTO tab1 VALUES(?,?,?)"
# cur.execute(sql_ins,('张三丰','男',2))

#删除一个记录
# sql_del="DELETE FROM TAB1 WHERE name=?"
# cur.execute(sql_del,('张三丰',))

#修改一个记录
# sql_upd="UPDATE tab1 set name=? WHERE name=? "
# cur.execute(sql_upd,('段誉','张三丰'))

#添加多条语句(删除同理)
# add_list=[('小龙女','古墓','女',18),('令狐冲','华山','男',20),('乔峰','丐帮','男',30)]
# sql_inss="INSERT INTO tab2 VALUES(?,?,?,?)"
# cur.executemany(sql_inss,add_list)

#查询数据
sql_sel="SELECT * FROM tab2"
cur.execute(sql_sel)
print(cur.fetchone())#获取一条
print(cur.fetchmany(2))#上面获取了第一条,下面获取第2-3条
print(cur.fetchall())#获取剩余的

con.commit()
print("操作成功")

cur.close()
con.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值