sqlite3 数据库安装

1. 本地安装

sudo dpkg -i *.deb

2.在线安装

sudo apt-get install sqlite3

3.使用压缩包解压

压缩包下载路径:链接:https://pan.baidu.com/s/1xHLZGObQODUGBReNEi3KKQ
提取码:zjqv

    SQLITE3 基本命令

两种命令

1.以 . 开头的称之为系统命令

.help 帮助

.quit 退出

.exit 退出

.databases 查看打开的数据库(显示数据库的名字和路径)

.table 查看当前数据库的表格

2. 以 , 结尾的 sql命令

创建一张数据库表 stu :

creat table stu(Id Integer, name char, score Integer );

查看表的结构图:

.schema

在数据表中插入数据(完全插入 所有参数必须都有)

insert into +数据表名 values(相应数据)

在数据表中插入数据(部分插入 部分参数就行)

insert into +数据表名((参数名一,。。。。。, 参数名N)values(参数值一, 。。。。,参数值N))

查看数据表中的内容(查询全部内容)

select * from +数据表名

查询数据表中的内容 (查询部分内容)

select name, sroce from +数据表名

查询数据表内容 (查询特定内容)

select * from +数据表名 where 参数=?;(一个限定条件)

select * from +数据表名 where 参数1=? and 参数2=?;(两个限定条件必须同时满足)

select * from +数据表名 where 参数1=? or 参数2=?;(两个限定条件满足一个就行)

删数据表中的内容

delete frm +数据表名 ;(删除整个数据表)

delete from +数据表名 where 参数=?;(删除特定内容)

其他和查询内容都一样 依然可以使用and 和or

设置数据表中的内容

update +数据表名 set 参数1=?where 参数2=?;

update +数据表名 set 参数1=?, 参数2=?where 参数3=? ;

删除数据表

drop table 数据表名

给数据表重命名

alter table +原的数据表名 rename to 要改成的数据表名

给数据库添加一列统计信息

alter table +数据表名 add column 要添加的统计信息 要添加的信息的类型;

sqlite不支持删除一列信息

所以只能间接删除 步骤如下:

1.创建一张新表

2.删除原有的表

3.将新表的名字改成原来的表的名字

这样旧表的内容会自动写入到新表中

      API()

头文件:#include <stdlib.h>

编译指令·: gcc 文件名.c -lsqlite3

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

作用:打开一个数据库

参数:filename 数据库路径

ppDb 代表数据库的操作句柄(指针)

返回值: 成功返回 SQLITE_OK 失败返回错误码

int sqlite3_close(sqlite3 *db);

作用:关闭数据库

参数: db操作数据库的指针

返回值:成功返回SQLITE_OK 失败返回错误码

const char *sqlite3_errmsg(sqlite3 *db)

功能 :通过db句柄 得到数据库操作的错误信息

int sqlite3_exec{

sqlite3 *db;

const char *sql;

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

void *arg;

char **errmsg;

};

功能:执行一条sql语句

参数: db 数据库操作句柄

sql:一条sql语句(末尾的分号可省略)

callback:回调函数 是一个函数指针类型 传递的参数是函数名(只有sql为查询语句时 才会执行回调函数)

arg:表示给回调函数传递的参数

errmsg 错误信息

返回值 成功SQLITE_OK

typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name)

功能:每找到一条记录自动执行一次回调函数

para:传递给回调函数的参数

f_num: 记录中包含的字段数目

f_value:包含每个字段值的指针数组

f_name 包含每个字段名称的指针数组

成功返回0 失败返回-1

int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int nrow, int *ncolum, char **errmsg)

db:数据库句柄

resultp: 用来指向sql执行结果的指针

nrow:满足条件的记录的数目

ncolumn: 每条记录包含的字段数

errmsg:错误信息指针的地址

返回值: 成功返回0 失败返回错误码

         代码示例

功能: 建立一个数据库 对其能进行删减改查的操作

Linux下数据库(sqlite3)学习笔记相关推荐

  1. Linux下的C学习笔记

    1.linux系统提供的环境 http://blog.csdn.net/feixiaoxing/article/details/7194756 编译:gcc.as.ld 调试:gdb 自动编译:mak ...

  2. bash linux .ee,Linux下Bash shell学习笔记.md

    ### 1.shell下没有变量类型和定义的概念. >1. 变量直接使用不用定义 >2. 所有值都视为字符串. >3. 在对变量取值都需要加$ >4. 行注释为 # + ### ...

  3. Linux下Bash入门学习笔记

    学习好shell编程是很有用的,可以使用shell脚本轻巧地完成有趣的工作. 本文地址:http://www.cnblogs.com/yhLinux/p/4047516.html 1. Bash实例, ...

  4. 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】

    目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...

  5. 【嵌入式环境下linux内核及驱动学习笔记-(15-1)例程】

    目录 1.在APP直接调用标准文件IO操作I2C(针对学习笔记-15的15.3节) 1.1 mail.c 1.2 mpu6050.h 1.3 mpu6050.c 1.4 Makefile 2.以外称i ...

  6. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记

    转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...

  7. 数据库MySQL学习笔记高级篇(周阳)

    数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  8. B站《一天学会 MySQL 数据库》学习笔记

    B站<一天学会 MySQL 数据库>学习笔记 老司机带我飞 职场十字诀:思考.计划.行动.总结.反思 ​关注他 4 人赞同了该文章 登录和退出MySQL服务器 # 登录MySQL $ my ...

  9. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  10. Linux C编程一站式学习笔记2

    Linux C编程一站式学习笔记 chap2 常量.变量和表达式 本书以C99为标准 一.继续hello world 加入更多注释的hello world 可以用ctrl+(shift)+v复制到vi ...

最新文章

  1. 如何把近十页的论文读成半页?
  2. Android Activity形象描述
  3. SAP屏幕设计器专题:树控件的使用(九)
  4. java之hiberante之集合映射之list映射
  5. 清理Win7系统的批处理
  6. 订单操作-分页查询所有订单
  7. 提取验证码到winform上webbroswer和axwebbroswer
  8. EL表达式JSON应用
  9. java 示例_Java最终关键字示例
  10. c++ poco 使用mysql中文乱码问题
  11. Excel VBA | 一键批量生成对账单
  12. CSDN博客之星——找到自己的榜样
  13. 内网穿透软件对比——cpolar : 花生壳(上)
  14. Docker镜像的制作、上传、拉取和部署(利用阿里云)
  15. 熔断机制什么意思_熔断机制是什么意思?什么是熔断机制?
  16. 【C语言】计算个位十位百位思路
  17. Maui Blazor windows程序无法通过双击 bin 文件夹中的 exe打开程序的解决办法
  18. word 以嵌入式插入图片显示不全,被文字掩盖在下方
  19. 我的世界earthmc服务器地图网站,minecraft V4.0The Earth地图
  20. ctrl+c 不能使用,无法复制

热门文章

  1. 阻塞/非阻塞/同步/异步方法和多线程的关系?没有任何关系,俩不挨着
  2. 中国寒龙反网络病毒联盟核心小组:官方公告,近期本站将会发布各种编程技术视频教程,详情请点击我们的以下公告!...
  3. [PALAPALA] 无题 - 外来的和尚会念经
  4. 商海致富独家秘诀:微笑可以当钱花
  5. 服务器能否只做c盘系统,我的云服务器只有一个c盘
  6. caffe安装_目标检测之caffe-ssd模型训练与测试
  7. 假定某一个数据列表是一个班级的计算机课程,若需要利用形参直接访问实参,则应把形参变量说明为()参数。A.指针B.引用C.传值D.常值...
  8. java memcache 队列_基于memcache的java分布式队列实现。
  9. ni软件管理器_NI 技术支持丨我的 NI 硬件设备不能被识别,怎么办?Windows
  10. 手机mstsc远程工具_远程桌面连接,只需3步,轻松远程操控电脑!