嵌入式day36

数据库

专业存储数据、大量数据

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

文件---->硬盘:程序运行结束、掉电数据不丢失

数据库---->硬盘

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

1.普通文件对数据管理(增删改查)效率低

2.数据库对数据管理效率高,使用方便

常用数据库:

1.关系型数据库:

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

        大型:Oracle、DB2

        中型:MySql、SQLServer

        小型:Sqlite

2.非关系型数据库:

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

        //JSON

        Redis

        MongoDB

嵌入式数据库:

sqlite3:

stu.db

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

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

3.文件型数据库,可以移动

4.数据容量最大2T

sqlite3

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 表名;(所有)

        4.条件查询

                select * from 表名 where 条件(列 关系运算符 值);

                关系运算符:>, <,=,!=,>=,<=,and,or

        5.模糊查找

                select * from 表名 where 列 like

                % 可以通配多个字符

                _ 只能通配一个字符

        6.升序/降序排列

                select * from 表名 order by 列名 ASC/DESC

        7.删除一行

                delete from 表名 where 列名 关系运算符 值;

        8.删除表

                drop 表名;

        9.修改

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

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

                1.主键值自动增长列的数据类型必须是INTEGER

                2.类名 INTEGER PRIMARY KEY AUTOINCREMENT

        11.设置时间

                select datetime(“now”, “+8 hours”)

        12.多表联查

                CROSS JOIN 交叉连接

                INNER JOIN 内连接

                OUTER JOIN 外连接

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

sqlite3_open

打开数据库,如果不存在,则创建

参数:

filename 数据库名称

ppDb 保存数据库句柄的地址

返回值:

成功 返回SQLITE_OK

失败 返回错误码

sqlite_exec

执行sql语句

        

参数:

sqlite*pdb         数据库句柄

sql         要执行的sql语句的首地址

int calllback(void*arg,int column_cnt,char * *column_value,char **column_name)(回调函数)

        功能         在使用sqlite3_exec执行select语句时,每查找到一条数据,则调用一次回调

        参数         arg sqlite_exec传递的第4个参数

                        column_cnt 查找到的数据的列数

                        column_value 查找到的一行数据的每一列值的地址的集合

                        column_name 查找到得一行数据得每一列列名的地址的集合

        返回值         成功返回0

注意:

        1.每找到一行,回调触发一次

        2.回调函数必须返回0

errmsg         存储错误信息的地址

返回值:

成功         返回SQLITE_OK

失败         返回错误码

增删改查

c中二级指针的使用场景:

1.在被调函数中修改主调函数中的指针变量

2.指针数组的数组名为二级指针

快速查询:sqlitebrowser +数据库名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值