sqlite3基本相关使用
闲来无事,复习和总结了一下之前学习到的关于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基本相关使用的更多相关文章
- 【解决】Django下使用sqlite3的相关问题
最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了. 玩意虽小,东西却不是那么好用的. 首先,在项目中建立模型,一个例子是这样的: cla ...
- 交叉编译Python-3.6.0到aarch64/aarch32 —— 支持sqlite3
参考 https://datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/ 平台 主机: ubu ...
- sqlite3接口简要说明
本文介绍一下SQLite C/C++接口. 早期的SQLite C/C++接口只有5个接口函数, 很容易学习. 新版本的SQLite新增了很多功能, 目前大概有185个API接口.本文介绍一些核心的A ...
- 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制
第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...
- Android-adb指令
adb概念: adb的全称为Android Debug Bridge(调试桥):通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序.当我们运行Eclipse时ADB进程 ...
- django框架预备知识
内容: 1.web预备知识 2.django介绍 3.web框架的本质及分类 4.django安装与基本设置 1.web预备知识 HTTP协议:https://www.cnblogs.com/wyb6 ...
- C/C++ SQLite 之基础篇
文章目录: 1. 下载 SQLite3 源码: 2. 下载 SQLite3.dll 文件: 3. 生成 SQLite3.lib 文件 : 4. 生成或者下载 SQL ...
- Nginx+uWSGI+Python+Django构建必应高清壁纸站
写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...
- Django笔记&教程 1-2 二 常用配置
Django 自学笔记兼学习教程第1章第2节--二 常用配置 点击查看教程总目录 新手建议简单浏览本文,不理解的建议跳过,不要强行理解. Django的设置涉及多个模块,需要了解Django的一些相关 ...
随机推荐
- Swing-布局管理器之FlowLayout(流式布局)-入门
FlowLayout应该是Swing布局管理器学习中最简单.最基础的一个.所谓流式,就是内部控件像水流一样,从前到后按顺序水平排列,直到达到容器的宽度时跳转到第二行.既然是水平排列,那么就存在三种基本 ...
- 扫雷游戏制作过程(C#描述):第三节、雷区绘制
前言 这里给出教程原文地址. 该项目已经放在github上托管. 绘制雷区 这一节我们主要涉及界面中雷区的绘制.绘制雷区需要三个变量来保存雷区行数.列数.以及地雷的数量.而且我们希望能够自动获取上次游 ...
- 团队作业4——第一次项目冲刺(Alpha版本) 4.24
团队作业4--第一次项目冲刺(Alpha版本) Day four: 会议照片 每日站立会议: 项目进展 今天是项目的Alpha敏捷冲刺的第三天,先大概整理下昨天已完成的任务以及今天计划完成的任务.今天 ...
- 201521123061 《Java程序设计》第十一周学习总结
201521123061 <Java程序设计>第十一周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 本周学习的是如何解决多线程访问中的互斥 ...
- sublime text 按下Ctrl + B 显示空白的解决办法
环境:windows xp , sublime text 2 条件:环境变量也已经设置好,可是无论怎么编译都是空白,如图: 于是鄙人百度之,发现不少网友都有这样的问题,但是网上给出的的解决方案千篇一律 ...
- Linux系统常用的文件查看及处理命令
常用的文本查看及处理命令 1.cat命令 (1).作用 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容. (2).用法 1):用法:cat (参数) 文件 2):常用参数 -n或-nu ...
- Spring4 customEditors
Spring4.0版本以后customEditors属性为Map<Class<?>, Class<? extends PropertyEditor>>,所以用key ...
- PHP命令注入笔记
一.PHP命令注入介绍 在学习php相关的攻击时,遇到了Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域) ...
- [转]IOS开发中的CGFloat、CGPoint、CGSize和CGRect
http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference ...
- php调用webservice接口
项目中使用到了调用三方厂商webService接口.他的接口类似为http://haha.cn:86/BaseInfoService.svc?wsdl,在这里我注意到了"wsdl" ...