闲来无事,复习和总结了一下之前学习到的关于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. 201521123034《Java程序设计》第八周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 List中指定元素的删除(题目4-1) 1.1 实验总结 答:这题是在课堂上 ...

  2. 201521123077 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 举个小栗子: 右侧的四个类都实现了同一个接口,所以可以让游戏类的引用指向实现类的实例,根据不同类型的实现类可以表现出不同的特性 ...

  3. 201521123012 《Java程序设计》第三周学习总结

    一.本章学习总结 1.面对对象:(1)类 <1>属性 [1]外部类 [2]内部类 <2>方法 [1]j静态 [2]非静态 (2)对象 <1>创建对象 <2&g ...

  4. Java实现基本排序算法

    稳定排序算法性能比较 冒泡排序代码: /** * 冒泡排序 * * @param arr * @return */ public int[] bubbleSort(int[] arr) { int t ...

  5. 我的Spring学习记录(一)

    spring是一个框架,一个我理解为对象的大熔炉,它生产着各种bean,还可以对生产的对象进行加工. 这里有些概念需要理解一下,就是IOC和DI以及AOP,接下来,我们进入主题. spring简介 上 ...

  6. 利用angularJs自定义指令(directive)实现在页面某一部分内滑块随着滚动条上下滑动

    最近老大让我一个效果实现在页面某一部分内滑块随着滚动条上下滑动,说明一下我们项目使用技术angularJs.大家都知道,使用jquery很好实现. 那么angular如何实现呢,我用的是自定义指令(d ...

  7. mysql 安装-zip版

    1.千万不要自己新建data,使用命令:mysqld --initialize会自动生成一大堆文件 2.没有ini文件就自己新建:

  8. Nodejs最好的ORM - TypeORM

    TypeORM是一个采用TypeScript编写的用于Node.js的优秀ORM框架,支持使用TypeScript或Javascript(ES5, ES6, ES7)开发.目标是保持支持最新的Java ...

  9. spring依赖注入中接口的问题

    问题描述:一个接口,有俩个实现类当注入时候名字不同时,会出现不同的情况 action层: @Controller("userAction") @Scope("protot ...

  10. AngularJS–Scope(作用域)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Scope Scope 是一个应用程序的模块的对象.它是表达式的执行上下文.它充斥在DO ...