数据库(专业存储数据)

数组、链表、变量----->内存:程序运行结束,数据丢失

文件-------------->硬盘

数据库:专业存储数据,大量数据----------->硬盘

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

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

二、常用数据库:
1.关系型数据库:

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

2.非关系型数据库
以键值对存储,且结构不固定
//JSON
Redis
MongoDB

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

三、sqlite3数据库(SQLite 教程 | 菜鸟教程)

1.sqlite相关的命令

      .tables                         查看数据库中的表
      .headers on/off            开启或者关闭表头
      .mode column              列对齐
      .width 列宽1 列宽2      设置每一列的列宽
      .schema  表名              查看表的结构

2.sqlite的SQL语句

每个sql语句后面必须要有一个;
        INTEGER : 整形
        REAL: 浮点型
        TEXT:文本类型,字符串
        NULL : 空
       1.创建表
          create table 表名(列名1 数据类型 ,列名2 数据类型, 类名3 数据类型) ;

       2. 插入数据
           insert into 表名 values(值1, 值2, 值3);

       3. 查询
          select 列名1,列名2  from 表名;
          select *  from 表名;
         条件查找:
          select *  from 表名 where 列 关系运算符 值;
          关系运算符:   >   <   =    !=, >=, <=, and,or
         like : 模糊匹配

         % 可以通配多个字符
        _  只能通配一个字符

        升序排列
        select * from 表名 order by 列名 ASC;
        降序排列:
        select * from 表名 order by 列名 DESC;

    4. 删除一行
        delect from 表名 where 列名 关系运算符 值;
    5. 删除一张表
        drop 表名;      

    6. 修改    
        update 表名 set 列名=新值 where 列=值;

    7. 设置主键值自动增长列
        1. 主键值自动增长列的数据类型必须是INTEGER
        2. 类名 INTEGER PRIMARY KEY AUTOINCREMENT,

    8 .多表联查
         内连接   INNER JOIN
         外连接   LEFT OUTER

3.sqlite提供的c/c++ API接口

(1)int   sqlite3_open(const char *filename,sqlite3 **ppDb);

功能:是 SQLite 的 C 接口中的一个函数,用于打开一个 SQLite 数据库。如果指定的数据库文件不存在,该函数会创建一个新的数据库文件。

函数参数

  • const char *filename:要打开的数据库文件的名称。如果文件不存在,将会创建一个新的数据库。
  • sqlite3 **ppDb:指向 SQLite 数据库的指针的地址。如果打开成功,该指针将指向打开的数据库对象。

返回值

  • 返回值是一个整数,指示操作的结果:
    • SQLITE_OK:成功打开数据库。
    • 其他值:表示错误,可以通过 sqlite3_errmsg() 获取详细的错误信息。

(2)int sqlite3_exec()

功能:用于执行 SQL 命令。

函数原型

int sqlite3_exec( sqlite3 *db, /* 数据库连接对象 */ const char *sql, /* 需要执行的 SQL 语句 */ sqlite3_callback callback, /* 回调函数,用于处理结果 */ void *arg, /* 回调函数的参数 */ char **errMsg /* 错误信息 */ );

参数

  • sqlite3 *db:指向已打开的数据库连接对象的指针。
  • const char *sql:需要执行的 SQL 语句可以是一个或多个 SQL 命令(如 INSERTUPDATEDELETECREATE TABLE 等),以分号 (;) 作为结尾。
  • sqlite3_callback callback:用于处理结果的回调函数。如果不需要处理结果,可以传入 NULL
  • void *arg:传入回调函数的自定义参数,可以为 NULL
  • char **errMsg:指向字符指针的地址,用于返回错误信息。如果执行成功,通常可以为 NULL

返回值

  • 返回值是一个整数,指示执行的结果:
    • SQLITE_OK:表示成功。
    • 其他的返回值表示不同的错误,可以通过调用 sqlite3_errmsg(db) 获取具体的错误信息

回调函数:int callback(void *data, int argc, char **argv, char **azColName);

参数说明

  1. *void data:用户自定义的参数。在调用 sqlite3_exec() 时,你可以传递一个指针作为这个参数,通常用于在回调中传递上下文信息。

  2. int argc:查询结果中列的数量。

  3. **char argv:一个字符串数组,每个字符串对应于结果集的一列。argv[i] 是第 i 列的值。如果某一列值为 NULL,则对应的元素为 NULL

  4. **char azColName:一个字符串数组,包含了每一列的列名。azColName[i] 是第 i 列的列名。

返回值

  • 回调函数需要返回一个整数。如果返回非零值,SQLite 将终止执行。

(3)sqlite3_close();

创建插入示例:

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

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

相关文章

算法: 双指针

题目&#xff1a;环形链表 题目讲解&#xff1a; 判断环 要判断链表是否有环&#xff0c;可以使用快慢指针的方法。快指针每次走两步&#xff0c;慢指针每次走一步。如果链表有环&#xff0c;快慢指针最终会相遇&#xff1b;如果没有环&#xff0c;快指针会先到达链表末尾。 …

11.舵机控制

jd就是cnt&#xff0c;分别对应着 0.5ms-------------0度&#xff1b; 1 1.0ms------------45度&#xff1b; 2 1.5ms------------90度&#xff1b; 3 2.0ms-----------135度&#xff1b; 4 2.5ms-----------180度&#xff1b; 5 并且软…

【PostgreSQL教程】PostgreSQL 高级篇之索引

博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…

java操作zookeeper

java操作zookeeper 文档 linux安装java -centos安装java -linux配置java环境变量zookeeper单机安装zookeeper集群安装zookeeper客户端命令行操作、节点类型及监听器zookeeper集群写数据原理java操作zookeeper 依赖信息 <dependency><groupId>junit</groupId…

MySQL:简述对事务的认识

浅谈对Spring事务的认识&#xff1a;https://xiaoer.blog.csdn.net/article/details/80849971 一、事务的特性 事务是数据库永恒不变的话题&#xff0c; ACID&#xff1a;原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性。 &#xff08;1&#xff09;原子性&am…

基于麒麟信安操作系统的光伏发电功率预测系统完成大规模部署建设

麒麟信安操作系统&#xff0c;作为行业数智化建设的安全根基&#xff0c;为电力业务系统提供了稳定可靠的底层平台&#xff0c;在全球能源结构转型大潮中扮演着至关重要的角色。某光伏电站项目中&#xff0c;基于麒麟信安操作系统的光伏发电功率预测系统完成大规模部署建设&…

手机游玩植物大战僵尸杂交版V2.3.7最新版教程(文章末尾免费直接下载链接)

最新版植物大战僵尸杂交版V2.3.7手机游玩教程 【V2.3.7全面升级】植物大战僵尸杂交版&#xff1a;跨平台终极安装指南 - 苹果、安卓、电脑、电视兼容&#xff0c;界面革新&#xff0c;16卡槽扩展&#xff0c;高分辨率支持&#xff0c;BUG修复&#xff0c;畅享游戏乐趣 前言 …

C++实现的购物小程序

以下是一个详细的C实现的购物小程序。这段代码模拟了一个基础的购物车系统&#xff0c;用户可以通过交互式菜单与程序进行交互&#xff0c;执行各种购物相关的操作&#xff0c;如添加商品到购物车、查看购物车中的商品列表、计算购物车中的商品总价等。 购物小程序 问题描述 …

Java Web —— 第九天(事务)

事务管理 & AOP 事务回顾 概念 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;这些操作 要么同时成功&#xff0c;要么同时失败 操作 开启事务(一组操作开始前&#xff0c;开启事务): start transaction / begin 提交事务(这组操作全部成功…

ros2--jupyter

问题 import rclpy---报错 链接 strings /usr/lib32/libstdc.so.6 | grep GLIBCXX_3.4.30

python 打包exe

python打包&#xff1a; pyinstaller --onefile wc_main3.pypyi-makespec wc_main3.py 》pyi-makespec wc_main3.py Wrote /home/a/wc_main3.spec. Now run pyinstaller.py to build the executable.pyinstaller wc_main3.specFile "/home/a/anaconda3/envs/l/lib/pyt…

Word文档被锁定无法编辑怎么办?一键快速移除Word编辑限制

有没有遇到这种情况&#xff1f;打开Word文档后&#xff0c;准备对Word软件进行文档的编辑时&#xff0c;发现文档有部分内容无法进行编辑了&#xff0c;不知道怎么回事&#xff0c;其实这是因为无法编辑区域被锁定了&#xff0c;所以无法进行编辑&#xff0c;那么应该怎么解除…

Scrapy 分布式爬虫框架 Scrapy-Redis

github官网代码示例&#xff1a;https://github.com/rmax/scrapy-redis/blob/master/example-project/example/spiders/myspider_redis.py 什么是 Scrapy-Redis Scrapy-Redis 是一个基于 Scrapy 的扩展&#xff0c;用于实现分布式爬虫。它利用 Redis 作为分布式队列来共享待爬…

【Qt窗口】—— 浮动窗口

目录 1.1 浮动窗口的创建 1.2 设置停靠的位置 1.3 示例小结 在Qt中&#xff0c;浮动窗口也称之为铆接部件&#xff0c;俗称为子窗口&#xff0c;浮动窗口是通过QDockWidget类来实现浮动的功能。浮动窗口⼀般是位于核⼼部件的周围&#xff0c;可以有多个。 1.1 浮动窗口的…

CAD如何批量输出PDF?介绍了三种方式

CAD如何批量输出PDF&#xff1f;在工程设计、建筑制图以及产品设计等领域&#xff0c;CAD软件是不可或缺的工具。随着项目规模的扩大&#xff0c;如何将CAD图纸批量转换成PDF格式以便分享、打印或存档&#xff0c;成为了许多设计师面临的常见问题。下文将介绍三种高效的方法&am…

Nuxt3之pinia持久化配置

Nuxt3 配置pinia首选要在 Nuxt3 项目中安装pinia Nuxt3官方pinia模块安装链接 直接在项目终端下输入 npm 命令 npm i pinia pinia/nuxt // pinia&#xff1a; npm i -D pinia-plugin-persistedstate/nuxt // pinia-plugin-persistedstate 如果你是使用pnpm 或者 yarm 等其他n…

springboot3.x入门系列【5】支持unix sock 套接字服务

目录 一、简介 二、springBoot3.x 套接字的支持 1. 环境要求 2. springboot内置tomcat 2.1 支持unix 设置 unixDomainSocketPath 2.2 windows 下unix服务测试 3. springboot外置tomcat 3.1 tomcat 配置unix socket 套接字 3.2 启动tomcat 服务 3.3 nginx 支持unix…

SLAM学习笔记

从《slam十四讲开始》 slam十四讲推荐的其他书籍 《概率机器人》&#xff08;Probabilistic robotics &#xff09; 《计算机视觉中的多视图几何》&#xff08;Multiple View Geometry in Computer Vision &#xff09; 《机器人学中的状态估计》&#xff08;State Estimation…

操作系统

操作系统是控制和管理计算机硬件和软件资源。 管理和控制电脑系统软硬件资源的软件叫作操作系统&#xff0c;操作系统是最基本、最重要的系统软件&#xff0c;由一组控制计算机系统并对计算机系统进行管理的程序组成&#xff0c;是用户与计算机硬件系统的接口&#xff0c;并为用…

VMware网络模式

一.VMware虚拟网络 VMware支持共创建20个虚拟网络&#xff0c;相当于现实生活的交换机&#xff0c;名称vmnet0---vmnet19 物理机用虚拟网卡和对应的虚拟网络中的虚拟机通信。 VMnet1和VMnet8这两个虚拟网卡的作用是保证windows和虚拟机可以正常通信。VMware Workstation Pro这…