闲来无事,复习和总结了一下之前学习到的关于sqlite3数据库的相关知识:

【1】 sqlite3的安装:
1.离线安装:sudo dpkg -i *.deb
2.在线安装:sudo apt-get install sqlite3

【2】 sqlite3的基本命令:
1.系统命令:
以‘.’(点)开头的命令
.help 帮助
.quit 退出
.exit 退出
.schema 查看标的结构图
.databases 查看打开的数据库
.table 查看表

2.sql命令:
不以‘.’(点)开头,但是需要以‘;’(分号)结尾;
1)创建一张数据的表
create table student(no Integer,name char,score float);
数据类型:
Integer 整型
char 字符串,也可以用string
...
2)插入一条数据:
完整数据插入:
insert into student values(1, ‘zhangsan', 80);
注意:字符串zhangsan既可以用单引号‘zhangsan’,也可以用双引号“zhangsan”;
部分数据插入:
insert into student (no,name) values(2, 'lisi');
3)查询记录
完整数据查询:
select * from student;
部分数据查询:
select no,name from student;
按照条件查询:
select * from student where score=100;
select * from student where no=1 and score=100;
select * from student where no=1 or score=100;
4)删除记录:
删除某一条记录:
delete from student where name='lisi';
删除整张表数据:
delete from student;
5)更新记录:
update student set name=‘lisi’ where id=3;
update student set name='lisi',score=80 where id=2;
6)在表中增加一列
alter table student add column address char
7)在表中删除一列:
不支持直接删一列:
1)创建一个新的表并从原有表中提取字段;
create table stu as select id, name, score from student;

2)删除原有的表格;
drop table student;
3)将新的表格名字改为原有表的名字
alter table stu rename to student;

【3】 sqlite3函数接口:

int sqlite3_open(
const char *filename, /* Database filename (UTF-8) 要操作的数据库文件的路径;*、
sqlite3 **ppDb /* OUT: SQLite db handle */
);
功能:打开一个数据库;
参数:
filename: 代表数据库的路径名;
ppdb: 代表数据库的操作句柄(指针);
返回值:成功-SQLITE_OK,出错-错误码;

int sqlite3_close(sqlite3*);
功能:关闭数据库
参数:
db :操作数据库的句柄;
返回值:成功-SQLITE_OK,出错-错误码;

const char *sqlite3_errmsg(sqlite3*);
功能:通过db句柄,得到数据库操作的错误信息;
返回值:错误信息的首地址;
/********************************************************
int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
功能:执行一条sql语句;
参数:
db :数据库操作句柄;
sql :一条sql语句;
callback:只有sql为查询语句的时候,才会执行此语句;
arg :给回调函数callback传递参数;
errmsg :错误消息
返回值:成功-SQLITE_OK,出错-错误码;

int (*callback)(void *arg, int, char **, char **); /* Callback function */
功能:查询的结果,是一个函数指针类型,传递一个函数名即可。
参数:
para :传递给回调函数的参数;
f_num :记录中包含的字段数目;
f_value :包含每个字段值的指针数组;
f_name :包含每个字段名称的指针数组
返回值:成功返回0,失败返回-1;
***********************************************************/

查询数据:
int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
功能,查询表中数据
参数:
db :数据库操作句柄
zSql :查询的sql语句
pazResult :查询结果的返回地址;
pnRow :满足条件的记录数目(表中的行数)
pnColumn:每条记录包含的字段数目(表中的列数)
pzErrmsg:错误信息指针的地址;
返回值:成功返回0,失败返回错误码。

void sqlite3_free_table(char **result);

sqlite3基本相关使用的更多相关文章

  1. 【解决】Django下使用sqlite3的相关问题

    最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了. 玩意虽小,东西却不是那么好用的. 首先,在项目中建立模型,一个例子是这样的: cla ...

  2. 交叉编译Python-3.6.0到aarch64/aarch32 —— 支持sqlite3

    参考 https://datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/ 平台 主机: ubu ...

  3. sqlite3接口简要说明

    本文介绍一下SQLite C/C++接口. 早期的SQLite C/C++接口只有5个接口函数, 很容易学习. 新版本的SQLite新增了很多功能, 目前大概有185个API接口.本文介绍一些核心的A ...

  4. 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制

    第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...

  5. Android-adb指令

    adb概念: adb的全称为Android Debug Bridge(调试桥):通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序.当我们运行Eclipse时ADB进程   ...

  6. django框架预备知识

    内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...

  7. C/C++ SQLite 之基础篇

    文章目录:                   1. 下载 SQLite3 源码: 2. 下载 SQLite3.dll 文件: 3. 生成 SQLite3.lib 文件 : 4. 生成或者下载 SQL ...

  8. Nginx+uWSGI+Python+Django构建必应高清壁纸站

    写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...

  9. Django笔记&教程 1-2 二 常用配置

    Django 自学笔记兼学习教程第1章第2节--二 常用配置 点击查看教程总目录 新手建议简单浏览本文,不理解的建议跳过,不要强行理解. Django的设置涉及多个模块,需要了解Django的一些相关 ...

随机推荐

  1. JAVA课程设计-购物车 (201521123101 柏清晔)

    1.团队课程设计博客链接 /[团队博客链接]http://www.cnblogs.com/yayaya/p/7062197.html 2.个人负责模板或任务说明 1.连接数据库 2.修改购物车的jsp ...

  2. 微信小程序购物车产品计价

    微信小程序购物车产品计价: 问题:当选中商品,价格累加时会出现无限循环小数 解答:在计算前先parseFloat(变量),再计算的最后使用(变量).toFixed(2)保留两位小数 例如: jiaCa ...

  3. Sping IOC

    这2天学习了Spring的AOP  其中包括注解式和非注解式的配置  个人感觉注解式的配置非常好用.具体内容如下: 1.    AOP 面向切面编程 个人理解就是在一个写好的方法上增加一些新的功能   ...

  4. MapReduce中Combiner规约的作用以及不能作为MR标配的原因

    作用:在Mapper端对数据进行Combine归约处理,Combine业务逻辑与Reducer端做的完全相同.处理后的数据再传送到Reducer端,再做一次归约.这样的好处是减少了网络传输的数量.在M ...

  5. 一篇搞定微信分享和line分享

    前言 在h5的页面开发中,分享是不可或缺的一部分,对于一些传播性比较强的页面,活动页之类的,分享功能极为重要.例如,京东等电商年末时会有一系列的总结h5在微信中传播,就不得不提到微信的分享机制. 微信 ...

  6. 关于IOS的屏幕适配(iPhone)——Auto Layout和Size Classes

    Auto Layout和Size Classes搭配使用极大的方便了开发者,具体如何使用Auto Layout和Size Classes大家可以参考其他文章或者书籍,这里只提一点,在我们设置Size ...

  7. 西邮linux兴趣小组2014纳新免试题(五)

    [第五关] 题目 http://final5.sinaapp.com/ 关注西邮Linux微信平台,得到一个名为a的文件 分析 分析文件a 需要反汇编,拿IDA上,打开后发现key_function及 ...

  8. RG_5

    必须发博纪念经过昨天的开车, 作业本终于做完啦!!! 可以认真的刷题了.

  9. Java 编程思想 Chapter_14 类型信息

    本章内容绕不开一个名词:RTTI(Run-time Type Identification) 运行时期的类型识别 知乎上有人推断作者是从C++中引入这个概念的,反正也无所谓,理解并能串联本章知识才是最 ...

  10. BCB中AnsiString类方法小结

    AnsiString类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助. 介绍AnsiString类之前,先要介绍一些背景知识.VCL(Visual Component Library 可视 ...