当前位置: 首页 > web >正文

数据存储——数据库

        数据存储有许多方式:变量存储、数组存储、数据存储结构,这些存储方式存在内存上,不可避免最大的弊端就是掉电或程序运行结束数据会丢失;

        还可以存储在文件、数据库中,这些存储在硬盘中,在掉电或程序运行结束数据不会丢失;

这些是专业的存储数据结果;今天我们将学习数据库。

        1.常用数据库

        (1)关系型数据库:

                将复杂的数据结果简化为二维表格形式;

                大型:Oracle(甲骨文)、DB2(IBM);

                中型:MySql(Python)、SQLServer(Mircosoft);

                小型:Sqlite(嵌入式)

        (2)非关系型数据库

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

                Redis(服务器式)

                MongoDB

        2. sqlite 数据库

        (1)开源免费,c语言开发;

        (2)代码量少,1万行左右,总大小10M以内;

        (3)文件型数据库,可以移动,跨平台移植性好;、

        (4)数据容量最大2T;

        3.安装sqlite3数据库

        linux系统下安装sqlite3的指令:

        安装相关内容的指令:

        创建xxxx.db的数据库

        4.sqlite3学习

        sqlite支持的数据类型:

        NULL:空置;

        INTEGER:带符号的整型;

        REAL:浮点型;

        TEXT:字符串类型;

        BLOB:根据输入进行存储;

        (1)指令

        .help查看支持的命令

        .tables查看当前数据库中的表

         .headers on/off打开或者隐藏表头

        .mode column 设置左对齐

        .quit退出数据库

        (2)sqlite3支持的SQL语句

        注意:

                每个语句后面都要有分号;不区分大小写

          1.创建表

        create  table 表名(列名1  数据类型, 列名2   数据类型,····,列名n  数据类型);

          2.数据插入

         insert  into  表名   value(值1,值2,····,值n);

          3.查询数据

        查询所有列数:

        select  *from  表名;

        查询指定列数据:

        select  列名1, 列名2, ···, 列名n  from   表名;

        条件查询:

        select *from  表名  where  列  条件;

                关系运算符:并且  and   或者 or   >    <   >=    <=    !=    =

        模糊查找:

        select  *from  表名  where  列  like “%梅”;%可以匹配多个字符;

        select  *from  表名  where  列  like “_ _梅”;_可以匹配多个字符;

        排序查找

        select  *from  class1  order by  列名   ASC;升序

        select  *from  class1  order by  列名   DESC;降序

                4.删除数据

                delete  *from class  where  name=”zhangsan“;

                5.修改数据

                update  class(表名)  set   score=100(条件)  where  列名 ="内容"

                6.删除一张表

                drop  table  表名;MENT

                7.设置主键值自动增长列

                注意:

                        (1)主键值自动增长列必须是INTEGER类型;

                        (2)在创建表时添加说明(PRIMARY   KEY   AUTO  INCREMENT);

                        (3)插入数据时,主键值自动增长列给NULL,让其自动增长;

                8.时间相关

                data("now");  年-月-日        

                datatime("now", "+8 hours");  年-月-日  时:分:秒

3.sqlite3申请的c  API接口

        int  sqlite3_open(const  char * filename,  sqlite  **ppDb);

        功能:打开一个数据库文件;

        参数:

                filename:数据库名称;

                ppDb:保存数据库句柄指针的地址;

        返回值:

                成功:SQLITE_OK;

                失败:-1;

       close

        exec

        功能:执行SQL语句;

        参数:

                pdb:数据库句柄;

                sql:要执行的sql语句;

                callback:回调函数

                void *arg:回调函数传参;

                errmsg :保存出错信息;

        返回值:

                成功;SQLITE_OK;

                失败:-1;

        int (*callback)(void *arg,int , char **, char **);

        功能:执行select语句时调用的回调函数;

        参数:

                arg:sqlite3_exec传递的第四个参数

                column:查询到的数据的列数;

                column_values:指针数组,多个指针分别指向每一列数据的字符串的指针;

                column_name:指针数据,指向每一列的列名;

         注意:

                1.回调函数成功的话必须要有返回值,返回0;

                2.从数据库查询的数据,统统是字符串类型;

                3.从数据库中查询数据,查到几条,回调函数就被掉了几次;

事务机制:优化程序与内核和硬盘之间的时间;

gettimeofday:获取程序执行时间;

http://www.xdnf.cn/news/19293.html

相关文章:

  • 安卓开发---SimpleAdapter
  • ansible的playbook练习题
  • shell学习(二)
  • 【完整源码+数据集+部署教程】传送带建筑材料识别系统源码和数据集:改进yolo11-AFPN-P345
  • 网站酷炫换皮肤?——PC 端 H5 换肤方案实战分享
  • PCIe 6.0 TLP结构解析:深入理解事务层数据包的设计与实现
  • IDEA编译报错:Error:(3, 28) java: 程序包com.alibaba.fastjson不存在
  • 图解帕累托前沿(pareto frontier)
  • 海康相机开发---设备布防(Setup Alarm)
  • python 解码 视频解码
  • RAG教程6:cohere rerank重排
  • openEuler系统实现MySQL数据库主从复制
  • 基于站点、模式、遥感多源降水数据融合与评估;Python驱动下,从基础处理、机器学习建模到气候态产品生成的全流程解析
  • 2.ImGui-搭建一个外部绘制的窗口环境(使用ImGui绘制一个空白窗口)
  • python 2025/7/28
  • 03.《交换的底层逻辑:从基础到应用》
  • edgeone 边缘加速平台使用“坑”记录
  • 洛谷P1090 [NOIP 2004 提高组] 合并果子 详解
  • 三维动画渲染农场哪家便宜?
  • 【69页PPT】智慧方案智慧医疗产业园区规划设计方案(附下载方式)
  • vscode优化合集 - Visual Studio Code
  • 【51单片机】【protues仿真】 基于51单片机叫号系统
  • NLP:驱动人工智能迈向 “理解” 与 “对话” 的核心引擎
  • 香港电讯与Microsoft香港推出新世代“Teams Phone” 解决方案
  • 理想汽车智驾方案介绍专题 3 MoE+Sparse Attention 高效结构解析
  • 将自己的jar包发布到maven中央仓库(2025-08-29)
  • 循环高级(1)
  • 期权杂记(二)
  • java数据结构--排序
  • 【算法】78.子集--通俗讲解