数据库文件管理

news2024/9/20 1:10:17

数据库文件与普通文件区别:

    1.普通文件对数据管理(增删改查)效率低
    2.数据库对数据管理效率高,使用方便

常用数据库:

   1.关系型数据库:

        将复杂的数据结构简化为二维表格形式
        大型:Oracle、DB2
        中型:MySql、SQLServer
        小型:Sqlite

    2.非关系型数据库

        以键值对存储,且结构不固定 
        Redis
        MongoDB

嵌入式数据库:

    sqlite3:
    stu.db
    1.开源免费, c语言开发
    2.代码量少,1万行左右,总大小10M以内
    3.文件型数据库,可以移动
    4.数据容量最大2T

 sqlite3   xxx.db

  1.sqlite3相关命令

   .help            查看相关手册
   .databases    查看当前数据库所在的路径和名称
   .tables          查看当前数据库中的表
   .schema        查看创建表的结构
   .mode column  列设置位左对齐
   .width 列宽1 列宽2  列宽3   设置各列的宽度

2. sqlite3相关sql语句


       增删改查
     create  table  表名(列名1 数据类型,列名2 数据类型,列名3 数据类型);

    create table class1(id integer, name text, age integer, score real);

     insert into 表名 values(值1, 值2, 值3);

     insert into class1 values(1, "张三", 17, 89.5);

     select 列名 from 表名;
     select 列名1,列名2 from 表名;
     select * from 表名;
    
     select * from 表名 order by 列名 ASC;             //升序排序
     select * from 表名 order by 列名 DESC;             //降序排序
       


     条件查找:

     select * from 表名 where 列名 运算符 值;
     select * from class1 where score>=90;
    
    运算符:
           =
          >
          <
          >=
          <=
          !=


          and
          or

         like

    模糊查找:

    select * from 表名 where 列名 like  "值%";
    模糊查找和"值****"匹配的行
     % 可以模糊匹配多个字符
    _只能模糊匹配一个字符

   select * from 表名 where 列名 like  "值_";


   delete from 表名 where 条件;
   delete from class1 where score>90;


   update 表名 set 列名=新值 where 列名=值;
   update class1 set score= 99 where name="张三";


   datetime("now", "+8 hours");
    
   insert into class2 values(1, "zhangsan", 68, datetime("now", "+8 hours"));


   自动增长列:


   主键值   INTEGER

   create table 表名(id INTEGER PRIMARY KEY AUTOINCREMENT, XXXXX);
   drop table 表名;

   顺序显示

       selete * form 表名称 order by 列名 ASC;  //升序查询
       selete * form 表名称 order by 列名 DESC;  //降序查询
        
       select * from class1 order by score ASC; 升序查询
       select * from class1 order by score DESC;降序查询

   delete

删除表中信息
      DELETE FROM 表名称 WHERE 列名称 = 值

   update

 改表中信息 
      UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

   datetime

datetime('now', '+8 hours');
      select datetime('now', '+8 hours');
      查询当前东八区时间

     insert into class3 values(1, 'zhangsan', 99, datetime('now', '+8 hours'));
     insert into class3 values(2, 'lisi', 100, datetime('now', '+8 hours'));
     insert into class3 values(3, 'wanger', 98, datetime('now', '+8 hours'));


   drop table 表名称

 删除一张表

3. sqlite3相关c函数接口

 1.sqlite3_open():

  int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);
功能:打开一个数据库,如果不存在则创建
参数:
        filename : 数据库名称
        ppDb :    sqlite3句柄的地址    
返回值:
          成功: SQLITE_OK
          失败:错误码

2.sqlite3_exec:

  int sqlite3_exec(
  sqlite3*pdb,                                  /* An open database */
  const char *sql,                           /* SQL to be evaluated */
  int (*callback)(void*,int,char**,char**),  /* Callback function */
  void * arg,                                    /* 1st argument to callback */
  char **errmsg                              /* Error msg written here */
);

功能:用来执行sql语句
参数:
          pdb : 数据库句柄
          sql : 要被执行的sql语句的首地址
         callback : 当使用查询方式时,每查询到一条结果,该回调函数会被触发
                          int (*callback)(void*arg,int column,char**value,char**title);
                          arg : sqlite3_exec第4个参数
                          column :查询到的数据的列数
                           value  :查询到的一行数据多列值的首地址集合
                            title : 查询到的一行数据多列标题的首地址集合

                         注意:1. 回调函数必须要return;
                                    2. 每查找到一条,都会触发一次回调

         arg : 回调函数的第一个参数
          

返回值:成功: SQLITE_OK

3.sqlite3_close();

  int sqlite3_close(sqlite3*);
      功能:
        关闭数据库句柄,释放空间

4.sqlite3_errmsg():

  const char *sqlite3_errmsg(sqlite3*);
      功能:
        获得出错原因
 

使用linux调用sqlite3函数,将英文字典写入sqlite数据库中,并使用相关函数直接查找打印:

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

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

相关文章

【传知代码】主动学习实现领域自适应语义分割(论文复现)

在当今计算机视觉和人工智能领域&#xff0c;语义分割技术的发展正日益成为实现智能系统感知和理解复杂场景的关键。然而&#xff0c;传统的语义分割模型往往面临着在新领域或不同环境下适应性不足的挑战。为了解决这一问题&#xff0c;主动学习作为一种强大的技术手段&#xf…

每日学术速递8.2

1.A Scalable Quantum Non-local Neural Network for Image Classification 标题&#xff1a; 用于图像分类的可扩展量子非局部神经网络 作者&#xff1a; Sparsh Gupta, Debanjan Konar, Vaneet Aggarwal 文章链接&#xff1a;https://arxiv.org/abs/2407.18906 摘要&#x…

echarts图表--雷达图(参数详解)

这是官网给出的几种雷达图&#xff1a; Examples - Apache ECharts 雷达图&#xff08;Radar Chart&#xff09;是一种用于展示多维数据的图表&#xff0c;尤其适合于比较不同样本或观测在多个相同变量上的表现。在使用ECharts或PyEcharts等可视化库绘制雷达图时&#xff0c;…

Prometheus 监控 Nginx

作者&#xff1a;琉璃 一、Nginx_exporter安装 下载链接&#xff1a; https://github.com/discordianfish/nginx_exporter 下载nginx_exporter的docker镜像。 ocker pull fish/nginx-exporter先run一下&#xff0c;执行之后&#xff0c;会hold住&#xff0c;先不要关闭窗口…

IP 地址处理模块IPy

IP 地址处理模块IPy 介绍安装基本操作多网络计算方法 介绍 IP 地址规划是网络设计中非常重要的一个环节&#xff0c;规划的好坏会直接影响路由协议算法的效率&#xff0c;包括网络性能、可扩展性等方面&#xff0c;在这个过程当中&#xff0c;免不了要计算大量的 IP 地址&…

【python】Linux升级版本

目的 迁移项目包路径到服务器上 查看服务器包是否和本地已有项目python版本相同然后发现~嗯不一样 项目上包时用的3.8~ 服务器用的2.7 查看方法&#xff1a; python -version解决方案 一&#xff1a;项目所有包重新下载 二&#xff1a;升级服务器python版本 第二种步骤&…

【虚拟仿真】Unity3D中实现2DUI显示在3D物体旁边

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 这篇文章来实现2DUI显示在3D物体旁边,当我们需要在3D模型旁边显示2DUI的时候,比如人物的对…

医疗AI新突破!多模态对齐网络精准预测X光生存,自动生成医疗报告!

PS&#xff1a;写在前面&#xff0c;近期感谢很多小伙伴关注到我写的论文解读&#xff0c;我也会持续更新吖~同时希望大家多多支持本人的公主号~ 想了解更多医学图像论文资料请移步公主&#x1f478;号哦~~~后期将持续更新&#xff01;&#xff01; 关注我&#xff0c;让我们一…

智能驾驶学习笔记,第一天

智能驾驶是智能汽车的核心&#xff0c;指基于先进的传感器和计算平台&#xff0c;通过人工智能技术,让汽车具备自主行驶的能力&#xff0c;旨在辅助驾驶员安全、便捷、高效地完成驾驶任务。智能驾驶有助于减少交通事故、改善交通拥堵&#xff0c;并提高行驶安全性和驾乘舒适性。…

LaTeX行间公式内部公式居中,以及行间公式整体居左

文章目录 多行公式居中行间公式整体居左(不靠谱版) 多行公式居中 行间公式默认整体居中&#xff0c;此处多行公式居中指使用$$ $$时内部公式对齐方式. 普通对齐&#xff1a; \begin{aligned}公式 \end{aligned}上述环境只能用&左对齐或右对齐&#xff08;默认右&#xff0…

【数据结构】排序算法(快速排序、归并排序、排序算法总结)

当你清楚的知道自己想要什么,并且意愿非常强烈的时候,你总会有办法得到的。💓💓💓 目录 ✨说在前面 🍋知识点一:快速排序 • 🌰1.快速排序介绍 • 🌰2.霍尔排序 •🔥三数取中优化 •🔥小区间优化 • 🌰3.前后指针法 • 🌰4.快排非递归方法 🍋…

jvm调优参数

JVM调优是指调整JVM的参数&#xff0c;以优化Java程序的性能。以下是一些常用的JVM调优方法&#xff1a; 1.堆内存大小&#xff1a;通过-Xms和-Xmx参数设置JVM的初始堆内存和最大堆内存。堆内存太小会导致频繁GC&#xff0c;太大则可能导致内存利用率不高。 2.新生代与老年…

Java 设计模式之策略模式 (Strategy Pattern) 详解

Java 设计模式之策略模式 (Strategy Pattern) 详解 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;旨在定义一系列算法&#xff0c;将每个算法封装起来&#xff0c;并使它们可以互相替换&#xff0c;从而使得算法的变化不会影响使用算法的…

掩码、反掩码、通配符的区别和计算方式

注&#xff1a;几篇文章合集捋清掩码、反掩码、通配符的区别。 ACL 通配符&#xff0c;子网掩码&#xff0c;反掩码区别和计算方式 192.168.1.1 255.255.255.0 掩码&#xff1a; 1111111111111111000000000 左边永远是 1&#xff0c;右边永远是 0 1 和 0 &#xff0c;永远不…

UE Spinbox 控件支持Double类型及Float精度问题

UE Spinbox 控件支持Double类型及Float精度问题 问题 众所周知&#xff0c;使用float来表示GIS坐标时&#xff0c;往往由于坐标的有效数字超过7位时&#xff0c;无法表达坐标的小数部分&#xff0c;即精度不够。 方案 1、取区域中心点的局部坐标的形式&#xff0c;使得坐标…

C#列表按照日期进行从大到小排序

C#列表按照日期进行从大到小排序

多路径 bbr mpbbr 公平性推演

mptcp 推出很久了&#xff0c;先看 rfc6356 三原则&#xff1a; 对自己&#xff0c;mptcp 的吞吐不能比用 sp(single path)tcp 时更差&#xff1b;对它者&#xff0c;mptcp 子流对资源的占用不能侵害其它 sptcp 流量&#xff1b;负载分担&#xff0c;要将孬 subflow 流量分担到…

Unity Rigidbody 踩坑记录

1&#xff1a;两个带有刚体的物体碰撞会一直不停的弹 把被动受力的刚提的 Freeze Position 的勾选 去掉&#xff08;碰到过一次&#xff0c;有一种受力无法释放又返回给目标的 所以一直弹跳的感觉&#xff09; 2&#xff1a;子物体 和父物体 都有刚体的情况下 子物体 Freeze R…

WEB渗透Web突破篇-PHP文件包含下载读取

php任意文件读取/下载 readfile()、file_get_contents()、fopen()等读文件的函数不严谨&#xff0c;读取文件路径可控&#xff0c;输出内容。 下载配置文件 Redis、Weblogic、ftp、mysql、web配置文件、history文件、数据库配置文件 下载log文件 下载web文件 /1.php?f../../e…

C#实现数据采集系统-配置文件化

系统优化-配置 配置信息ip端口,还有点位信息,什么的都是直接在代码里直接写死,添加点位,修改配置,比较麻烦,每次修改都需要重新生成打包。 所以将这些配置都改成配置文件,这样只需要修改配置文件,程序无须修改,即可更新。 配置代码: 如果我们有100个采集,一个个去…