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

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.xdnf.cn/news/19384.html

相关文章:

  • 旅游景点库系统的设计与实现(代码+数据库+LW)
  • 力扣hot100:轮转数组(常规思路与三步反转讲解)(189)
  • mmaction安装的详细说明帖
  • 王立群《读史记-刘邦》读书笔记
  • 嵌入式C学习笔记之编码规范
  • 数学分析原理答案——第七章 习题12
  • AI大模型实战解析-RAG知识库+LangChain项目实战
  • Linux系统的进程管理
  • Unity3D Gizmos 调试可视化
  • Qt中UDP回显服务器和客户端
  • 第二十七天-ADC模数转换实验
  • python反转字符串
  • 三维重建模型、3DGS、nerf、 mip-nerf
  • 《WINDOWS 环境下32位汇编语言程序设计》第9章 通用控件(2)
  • 点接触混合润滑完整数值解
  • 免税商品优选购物商城系统|java技术开发
  • MATLAB R2010b系统环境(三)MATLAB操作界面
  • JavaWeb01
  • 【Linux】创建线程
  • 基于K8s部署Redis高可用
  • mit6.031软件构造 笔记 Testing
  • Redis进阶(上)
  • Win11输入法异常解决方案
  • 智能合约安全全解析:常见漏洞、真实案例与防范实践
  • 机器视觉学习-day14-绘制图像轮廓
  • 【机器学习基础】监督学习算法的现代理解:从经典方法到无人驾驶与生成式AI的实践应用
  • [光学原理与应用-353]:ZEMAX - 设置 - 可视化工具:2D视图、3D视图、实体模型三者的区别,以及如何设置光线的数量
  • 财务的三张报表:现金流表、利润表、资产负债表
  • Spring/Spring MVC/iBATIS 应用 HTTP 到 HTTPS 迁移技术方案
  • 基于i.MX6ULL的RAM Disk驱动开发