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

Linux-数据库

一.常用数据库:

        1.关系型数据库:

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

                大型:Oracle、DB2

                中型:MySql、SQLServer

                小型:Sqlite

        2.非关系型数据库

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

                //JSON

                Redis

                MongoDB

二.sqlite数据库

        学习查询网站:SQLite Insert 语句 | 菜鸟教程

        1.开源免费,C语言开发

        2.代码量小,1万行左右,总大小10M以内

        3.文件型数据库,可以移动,跨平台移植性好

        4.理论数据容量最大2T

三.安装sqlite3

sudo apt-get install sqlite3

安装相关库

sudo apt-get install libsqlite3-dev

测试:sqlite3 stu.db

四.sqlite3学习:

        sqlite支持的数据类型:

                NULL:空值

                INTEAER:整形

                REAL:浮点型

                BLOB:根据输入进行存储

        1)sqlite3相关的命令

                .help 查看支持的命令

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

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

                .mode column 设置列左对齐

                .quit 退出数据库

        2)sqlite3支持的SQL语句

                注意:

                        1.SQL语句后面必须要有分号

                        2.sqlite不区分大小写

              1.创建表

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

                        create table class(id INTEGER, name TEXT, age INTEGER, score REAL);

                2.数据插入

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

                        insert into class1 values(1, "zhangsan", 19, 88.5);  

                3.查询数据

                        查询所有数据

                                select *from 表名 :

                        查询指定列数据:

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

                        条件查询:

                                select * from 表名 where 列 条件;

                        关系运算符:

                                >         <          >=         <=        =         !=

                                and   or

                        模糊查找(字符串)

                                select * from 表名 where 列 like “%梅”;

                                 select * from 表名 where 列 like “--梅”;

                                 %能匹配多个字符

                                 —只能匹配一个字符

                        排序查找:

                                升序排序:

                                        select * from 表名 order by 列名 ASC;

                                降序排序:

                                        select * from 表名 order by 列名 DESC;

                4.删除数据

                        delect from 表名  where 删除的条件;

                        delete from class1 where score<80;

                5.修改数据

                        update 表名 set 列=新值 where 条件;

                        updata class1 set score=100 where name="wanger";

                6.删除一张表

                        drop table 表名;

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

                        注意:

                        1.主键值增长列必须是INTEGER类型

                        2.在创建表时,主键值自动增长列要增加:PRIMARY KEY AUTOINCREMENT

                         create table class2(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, score REAL);

                        3.插入数据时,主键值自动增长给NULL,让其自动增长

                        insert into class2 values(NULL, “张三”,90);

                  8.时间相关的

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

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

                可视化工具:sudo apt-get install sqlitebrowser

        3)sqlite3提供的C/C++ API(应用程序接口)接口

int sqlite3_open(const char *filename文件名,/ *数据库文件名(UTF-8)* /sqlite3 ** ppDb / * OUT:SQLite数据库句柄指针的地址* /
);

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

        参数:

                filename:数据库名称

        返回值:

                成功:SQLITE_OK

                失败:返回一个错误码

int sqlite3_close(sqlite3 *);

        功能:关闭一个数据库文件

int sqlite3_exec(sqlite3 *pdb,        / *一个打开的数据库* /const char * sql,        / *要求值的SQL * /int(* callback)(void *,int,char **,char **), 执行select语句/ *回调函数* /void*        ,        / *回调的第一个参数* /char ** errmsg         / *此处写的错误msg * /
);

        功能:执行SQL语句

        返回值:

                成功:SQLITE_OK

                失败:返回一个错误码

int(* callback)(void *arg,int column,char **column_values,char **column_name);

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

参数:

        arg:sqlite_exec传递的第四个参数

        column:查询到的数据的列数

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

        column_name:指针数组,多个指针指向每一列的列名

注意:

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

               sqlite3_exec error:query aborted

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

        3.从数据库中查询数据,查到几条,回调函数就会被执行几次

        

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

相关文章:

  • MVC模式学习
  • 物种多样性与物种丰富度
  • 制造业生产线连贯性动作识别系统开发
  • 使用 Claude Code 与 Remotion 制作自定义动画视频的完整教程
  • 代码分析之符号执行技术
  • 多人协作开发指南二
  • 简化对齐训练:用明文对比数据SFT替代复杂DPO
  • 8针脚的1.8寸IIC接口的TFT彩屏的八个引脚都需要使用吗?
  • 【编号186】中国劳动统计年鉴(1991-2023)
  • LeetCode 2570.合并两个二维数组
  • 超越关键词:RAG系统如何破解用户查询的“模糊密码”
  • BLE广播与扫描
  • 嵌入式C学习笔记之预编译
  • Redis面试重点-2
  • Coze源码分析-工作空间-项目开发-前端源码
  • 在Windows系统Docker中使用wsl2、容器、windows文件路径三种不同挂载方式的区别和性能差异
  • ceph对象存储-存储池-用户认证
  • @Value注解的底层原理(一)
  • Day18 (前端:JavaScript基础阶段)
  • 数据结构 04(线性:双向链表)
  • Ansible 临时命令与常用模块实操指南
  • Cartographer中的gflag与lua文件
  • 国庆福建霞浦游
  • 阿里云创建自己的博客,部署wordpress
  • Java学习笔记-IO流(更新中...)
  • 嵌入式C学习笔记之链表
  • kkfileview自建cdn引入
  • 解决git push时的错误提示:“error: src refspec master does not match any”
  • 极客学院-从零开始学架构
  • 轻量化注意力+脉冲机制,Transformer在低功耗AI中再度进化