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

数据存储——数据库

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

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

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

        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.从数据库中查询数据,查到几条,回调函数就被掉了几次;

http://www.dtcms.com/a/357303.html

相关文章:

  • 并发编程——07 深入理解AQS之独占锁ReentrantLock源码分析
  • 编程设计模式
  • 【系列02】端侧AI:构建与部署高效的本地化AI模型 第1章:为什么是端侧AI?
  • 【LINUX】常用基本指令(1)
  • go 使用rabbitMQ
  • 神经网络|(十六)概率论基础知识-伽马函数·中
  • Hugging Face入门指南:AI创客的数字游乐场
  • 解析json
  • LeetCode 142.环形链表 II
  • 【前端教程】JavaScript 数组对象遍历与数据展示实战
  • 动态规划01背包
  • 解锁Libvio访问异常:从故障到修复的全攻略
  • 从“Where”到“Where + What”:语义多目标跟踪(SMOT)全面解读
  • C# 日志写入loki
  • 海外广告流量套利:为什么需要使用移动代理IP?
  • 接吻数问题:从球体堆叠到高维空间的数学奥秘
  • 告别K8s部署繁琐!用KubeOperator可视化一键搭建生产级集群
  • 玄机靶场 | 冰蝎3.0-jsp流量分析
  • ACID分别如何实现
  • Dockerfile实现java容器构建及项目重启(公网和内网)
  • SOME/IP-SD IPv4组播的通信参数由谁指定?
  • React学习教程,从入门到精通, ReactJS - 特性:初学者的指南(4)
  • C++链表双杰:list与forward_list
  • ElasticSearch对比Solr
  • Node.js 的流(Stream)是什么?有哪些类型?
  • DQL单表查询相关函数
  • STM32F2/F4系列单片机解密和芯片应用介绍
  • Ubuntu虚拟机磁盘空间扩展指南
  • AI视频安防,为幼儿园安全保驾护航
  • 基于 GPT-OSS 的成人自考口语评测 API 开发全记录