嗨喽~~  本期九娘给广大卷友们带来了sql语句轻型数据库的使用教程哦

1.需要的模块(只有一个)
import sqlite3
2.模块的使用
首先打开我们的编译器(推荐使用vscode,因为数据库文件后缀是 .db,vscode里显示比较清楚)

2.1创建与数据库的连接
先放上代码

conn = sqlite3.connect('test.db')
使用 sqlite3 的 connect 函数可以创建数据库或者连接数据库,

如果这个数据库存在,就连接这个数据库,

如果这个库不存在,就创建数据库。

右边小括号里的是数据库名。

我们把这个保存在变量 conn 里,这个变量名可以自己起

公式:

变量名(coun) = sqlite3.connect( '你要的数据库名.db' )
2.2创建游标
还是先放代码

cur = conn.cursor() | 游标变量名 = 变量名(coun).cursor()
在 2.1 中,我们创建了与数据库的连接,我们现在还需要一个游标来执行 sql 命令,

所以我们要用 conn 的 cursor 函数创建一个游标。

conn 就是刚才 2.1 中创建的保存数据库的变量,你要用你定义的变量名,

再定义一个变量表示这个游标。

公式:

游标变量名 = 变量名(coun).cursor()

2.3创建 table
先放代码

这里是常用的一些操作:

import sqlite3# 创建数据库和连接数据库
数据库变量 = sqlite3.connect("数据名字.db")# 创建游标对象 来执行sql命令
变量 = 数据库变量.cursor()# 创建表: 存储数据 {"name": xx(数据类型)}
create table 表名(xx XX, xx XX, )
# 字符串 TEXT VARCHAR(255)
# 整数 NUMBER INT INTEAGR
# 时间类型 DATE DATETIME
# 浮点型 FLOAT # 插入数据 多行插入
sql = insert into 表名 values(?,?)
executmany(sql, data)# 查找数据
select * from 表名;
select * from 表名 where 字段名 = 值 order by 字段名[desc]# 查找
游标.fetchall()# 删除
delete from 数据表;所有的记录全部删除
delete from 数据表 where 条件表达式;
import sqlite3
def check(db_name,table_name):   #写个函数用来查看是否存在该表conn = sqlite3.connect(db_name)cursor = conn.cursor()sql = '''SELECT tbl_name FROM sqlite_master WHERE type = 'table' '''cursor.execute(sql)values = cursor.fetchall()tables = []for v in values:tables.append(v[0])if table_name not in tables:return False # 可以建表else:return True # 不能建表
conn = sqlite3.connect('database.db')
#创建一个游标 cursor
cur = conn.cursor()
if (check("datebase.db","Table") == False):sql_text_1 = '''CREATE TABLE yourtable(xx XX,xx XX);'''# 执行sql语句cur.execute(sql_text_1)
#代码比较长,因为我把 2.1 和 2.2 的两行代码也加了上去。#我们需要 table(表)来存数据,创建 table 的代码如下:varname = '''CREATE TABLE yourtable(xx XX,xx XX);'''
# 执行sql语句
cur.execute(varname)

上面是用一个变量保存了创建 table 的 sql 语句,

下面使用 cur(就是刚才那个游标).execute() 函数执行创建 table 的语句。

我们也可以使用 cur.executemany 函数来同时执行多条 sql 语句。

sql 语句的内容,比如创建表的格式是上面这样的

格式:' ' 'CREATE TABLE 你的 table 名 (xx XX, xx XX);' ' '

这行代码里小写的 xx 就是你要的属性名,比如你的数据库是这样

姓名    班级
张三    1
其中,属性名就是 “姓名” 和 “班级”,

小写的 xx 就应该分别写姓名和班级(注意,不带引号)

后面的大写的XX就是这个属性所接受的数据的类型,

就相当于Python中的 int 类型和 str 类型。

只不过,我们在 sql 语句中,把 int 类型改成了 NUMBER,把 str 类型改成了 TEXT。

当我们运行这个代码,我们的文件夹目录里会多出来一个 你的数据库名.db 文件

当我们再次运行,会发现程序报错了。

报错信息的大概意思是:table 已经存在了。

这是因为我们第一次运行时已经创建了 table ,我们再次运行时,

程序会再次创建同名 table,就会报错。

所以,我们创建 table 之前要判断一下这个table存不存在,如果存在就不创建,如果不存在就创建

这个判断我把它写成了一个函数,就是我上面代码那个 check 函数。

这一步也是我想了好长时间,还找资料找了好长时间才知道的

2.4插入数据
先放代码

cur.executemany('INSERT INTO 你的table名 VALUES (?,?)', data)
conn.commit()
其中第一行代码中 executemany() 函数的意思就是同时执行多个 sql 语句。

这个函数的括号里写的逗号前面就是插入数据的 sql 语句,后面 data 可以是一个列表或者元组。注意,如果是列表的话,必须是列表里面有若干个元组的形式。

插入数据的 sql 语句的使用:

INSERT INTO 你的table名 VALUES (若干个逗号,用逗号分割)

这里我们要插入 data 这些数据,所以在括号里我们使用问号 “?” 来代替这个元素。

大家可以回去看一下 2.3 创建table 的讲解,在2.3中,我们创建了两个属性,分别是 “姓名” 和 “班级”。因为我们有两个属性,所以要有两个问号。

2.5查找数据
先放代码

def find_tb():
    cur.execute("select * from 你的table名")
    # 提取查询到的数据
    return cur.fetchall()  #fetch  翻译成中文:取到
这个就很简单了,我写这个函数使用时可以把你那个table里的所有数据都取出来。

第一行是查找table的 sql 语句,格式是:

select * from 你的table名

下一行再用 fetchall() 函数把数据提取出来,直接 return 即可。

实例展示:学生成绩管理系统

代码:

import sqlite3
import os
def check(db_name,table_name):conn = sqlite3.connect(db_name)cursor = conn.cursor()sql = '''SELECT tbl_name FROM sqlite_master WHERE type = 'table' '''cursor.execute(sql)values = cursor.fetchall()tables = []for v in values:tables.append(v[0])if table_name not in tables:return False # 可以建表else:return True # 不能建表
def find_tb():cur.execute("select * from scores")# 提取查询到的数据return cur.fetchall()
def zcd():os.system('cls')print("学生分数管理系统")print("1.增加学生分数信息")print("2.查看全部学生分数")print("3.查询分数段内学生分数")print("4.退出")if __name__ == '__main__':# 创建与数据库的连接conn = sqlite3.connect('stuents_scores.db')#创建一个游标 cursorcur = conn.cursor()# 如果没有表则执行建表的sql语句if (check("stuents_scores.db","scores") == False):sql_text_1 = '''CREATE TABLE scores(姓名 TEXT,班级 TEXT,性别 TEXT,语文 NUMBER,数学 NUMBER,英语 NUMBER,总分 NUMBER);'''# 执行sql语句cur.execute(sql_text_1)zcd()while True:op = int(input("请输入:"))if op == 1:S_name = input("请输入要添加的学生的姓名(如:张三):")S_class = input("请输入要添加的学生的班级(如:一班):")S_xb = input("请输入该学生性别:")S_Chinese = int(input("请输入该学生语文成绩(只输入一个数字,如:82):"))S_Maths = int(input("请输入该学生数学成绩(只输入一个数字,如:95):"))S_English = int(input("请输入该学生英语成绩(只输入一个数字,如:98):"))S_gj = S_Maths+S_Chinese+S_English # 总分data = [(S_name, S_class, S_xb, S_Chinese, S_Maths, S_English,S_gj)]cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?,?)', data)conn.commit()# cur.close()# conn.close()print("成功!")os.system('pause')os.system('cls')zcd()elif op == 2:info_list = find_tb()print("全部学生信息(排名不分前后):")for i in range(len(info_list)):print("第"+str(i+1)+"个:")print("学生姓名:"+str(info_list[i][0]))print("学生班级:"+str(info_list[i][1]))print("学生性别:"+str(info_list[i][2]))print("学生语文成绩:"+str(info_list[i][3]))print("学生数学成绩:"+str(info_list[i][4]))print("学生英语成绩:"+str(info_list[i][5]))print("学生总成绩:"+str(info_list[i][6]))os.system('pause')os.system('cls')zcd()elif op == 3:info_list = find_tb()fen = int(input("你要要查询总成绩高于n分的学生, 请输入n:"))for i in range(len(info_list)):if info_list[i][6] >= fen:print("查询结果:")print("第"+str(i+1)+"个:")print("学生总成绩:"+str(info_list[i][6]))os.system('pause')os.system('cls')zcd()elif op == 4:os.system('cls')break

九娘先介绍到这里啦,有问题可以随时咨询哦~~

sqlite3数据库的使用相关推荐

  1. 【数据库】sqlite3数据库备份、导出方法汇总

    [数据库]sqlite3常用命令及SQL语句 目录 1.直接拷贝数据库 2.使用.backup .clone 1)交互式 2)脚本 3.导出到csv文件中(其它格式类似) 1)交互式 2)脚本 3)导 ...

  2. c从sqlite3数据库中获取数据,并对数据进行拼接

    c从sqlite3数据库中获取数据,并对数据进行拼接 函数功能 对数据库的操作 创建数据库: 创建USER表: 创建表内数据: 查看表内数据: 查看表结构: 函数实现 函数编译: 函数结果: 函数功能 ...

  3. 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )

    文章目录 一.应用数据目录 /data/data/package.name/files 二.自带 so 动态库 /data/data/package.name/lib 三.数据库文件 /data/da ...

  4. python把数据写入excel_Python读写sqlite3数据库的方法并且将数据写入Excel的实例详解...

    这篇文章主要介绍了Python实现读写sqlite3数据库并将统计数据写入Excel的方法,涉及Python针对sqlite3数据库的读取及Excel文件相关操作技巧,需要的朋友可以参考下 本文实例讲 ...

  5. 导入xlsx,文件到sqlite3数据库

    导入xlsx,文件到sqlite3数据库 工作需要使用到本地数据库,需要把xlsx表里的数据导入到sqlite数据库里在将数据库放到app里来使用,看了下资料弄完了觉得挺简单的分享下 首先就是需要查看 ...

  6. 用java连接Excel和SQLite3,实现从excel文件读取数据并将其存入SQLite3数据库中

    java与Excel的连接用到了jxl.jar开源包,与SQLite3的连接用到了sqlitejdbc-v056.jar这个开源包,两个开源包打包下载:传送门 如果使用的eclipse做开发,解压后按 ...

  7. IOS开发基础之SQLite3数据库的使用增删改查

    IOS开发基础之SQLite3数据库的使用增删改查 ios开发我们可能会使用到数据库进行持久化存储.sqlite3 是轻量级的数据库. 今天我们来介绍sqlite3 数据库.此方法跟java的增删改查 ...

  8. [Android]AndroidInject增加sqlite3数据库映射注解(ORM)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3623050.html AndroidInject项目是我写的一 ...

  9. Sqlite3 数据库基本操作

    Sqlite3 数据库基本操作 1.sqlite3命令 **2.sqlite3编程接口:** 3.事务:一个或多个更改数据库的扩展 4.like和glob子句: 5.limit 和 offset 6. ...

  10. 使用python将数据存入SQLite3数据库

    Python从网站上抓取的数据为了可以重复利用,一般都会存储下来,存储方式最简单的会选择存储到文本文件,常见的有方式TXT.CSV.EXCEL等,还有一种方式是将数据存储到数据库,这样也方便管理,常见 ...

最新文章

  1. html 标签、图像、链接、注释、锚点定位、特殊字符
  2. CVPR2021(Oral) 商汤、港中文实现单目人脸重建新突破: 基于生成网络的渲染器!几何形状更精准!渲染效果更真实!...
  3. CNN模型 INT8 量化实现方式(一)
  4. 小米6关闭位置服务器,关闭这6个设置,让你的小米手机从回青春,再战3年
  5. Android性能优化系列总篇
  6. 常考数据结构和算法:链表中环的入口节点
  7. 计算道路超高lisp_5G+AI超高清智能视频监控将迎来增长期
  8. mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建
  9. tp5连接mysql数据库_TP5的链接数据库
  10. python数据归一化代码_Python 数据归一化/标准化
  11. 静态编译和动态编译的区别【转】
  12. 五子棋c语言代码光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  13. esp8266WIFI模块教程:正点原子ATK-ESP8266进行网络通信,单片机与电脑,单片机与手机发送数据
  14. 时钟芯片AD9520
  15. 12级计算机动画制作专业,计算机专业技术12级是什么意思?
  16. Draco - glTF模型压缩利器
  17. Android 集成腾讯Bugly
  18. 摄像机DSP芯片介绍
  19. [解决]通常每个套接字地址只允许使用一次
  20. matlab绘制散点拟合图

热门文章

  1. 短信、长短信、彩信的PDU
  2. 为什么打开CAD显示驱动该文件(.hdi)缺少或已损坏?
  3. 用卡尔曼滤波器跟踪导弹
  4. Binwalk的安装和使用
  5. 机器视觉工程师(实习岗)面经
  6. 杰理之调音限幅器 压缩器【篇】
  7. ASEMI整流二极管MR754参数,MR754图片,MR754应用
  8. 常用三角函数的无穷级数乘积公式推导详细过程与图形展示
  9. IntelliJ IDEA 快捷键及模板Templates设置
  10. 深度学习-深度信念(置信)网络(DBN)-从原理到实现(DeepLearnToolBox)