目录

一、SQLite3的安装

二、数据库的创建和打开

三、数据库的常见命令

三、SQL语句

1.创建数据库表

2.插入记录

3.查询记录

4.更新记录

5.删除记录

6.删除数据库表

四、 SQLITE3 API编程

1.打开数据库文件的函数

2.执行sql语句的函数

3.非回调的selectc查询


一、SQLite3的安装

sudo apt-get install sqlite3 //数据库操作软件
sudo apt-get install libsqlite3-dev //数据库开发库

二、数据库的创建和打开

终端输入 sqlite3 <数据库名>.db

当数据库存在时直接打开,不存在时创建并打开。

三、数据库的常见命令

.help   显示帮助信息

.quit  退出SQLite3 

.database  显示当前打开的数据库文件

.tables 显示数据库的数据库的所有表名

.schema 查看表的结构

三、SQL语句

1.创建数据库表

格式:create table table_name(column1 datatype,column2 datatype,...,columnN datatype);

table_name:数据库表名。

columnN:表示第N个字段名。

datatype:字段名的类型(

NULL:NULL值 。

INTEGER:值是一个带符号的整数,根据值的大小储存在1、2、3、4、6或8字节中。

REAL:值是一个浮点值,储存为8个字节的IEEE浮点数字。

TEXT:值是一个字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)储存。

BLOB:值是一个blob数据的(二进制数据),完全根据他的输入储存。)。

PRIMARY YEK:用于表名主键字段的关键字(当一个字段设为主键后对应的值不能重复)。

IF NOT EXISTS:表示如果表存在,则不创建。

2.插入记录

insert into table_name values(value1,value2,...,valueN);

3.查询记录

选取指定的列:select coloum1,coloum2,coloumN from table_name;

查询所有列:select * from table_name;

显示列的名字:.headers on

按照列显示:.mode coloum

where语句:用于指定从一个表或多个表中获取数据的条件

4.更新记录

格式:update table_name set column1=value1,columnN=valueN where [condition];

set:指定需要修改的值段及字段的值。

5.删除记录

格式:delete from table_name where [condition];

6.删除数据库表

格式:drop table table_name;

四、 SQLITE3 API编程

概念:SQLITE3数据库针对不同语言提供了相应的编程接口,下面介绍的是关于c语言接口。

1.打开数据库文件的函数

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

参数:@filename 数据库文件

@ppDb 获得操作数据库的句柄

返回值:成功返回0(SQLITE_OK),失败返回错误码

const char *sqlite3_errmsg(sqlite3 *);

功能:获得打开数据库失败的错误信息

#include <stdio.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{if(argc!=2){fprintf(stderr,"请输入:%s 数据库\n",argv[0]);return -1;}int ret;sqlite3 *db;ret=sqlite3_open(argv[1],&db);if(ret!=SQLITE_OK){fprintf(stderr,"sqlite3_open fail:%s\n",sqlite3_errmsg(db));return -1;}sqlite3_close(db);return 0;
}

2.执行sql语句的函数

int sqlite3_exec(sqlite3 *db,const char *sql,int(*callback)(void*,int,char**,char**),void *arg,char **errmsg)

参数:@db 打开的数据库

@sql  sql语句

@callback  回调函数

@arg  给回调函数传递的第一个参数

@errmsg  获取错误信息的存放地址

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

回调函数:int callback_function(void *arg,int ncolumn,char *value,char **name)

参数:@arg  传递的第一个参数

@ncolumn 列数[字段的个数]

@value  存放字段值的指针数组首地址

@name  存放字段名的指针数组首地址

注意:1.只有在执行查询语句的时候,才会使用回调函数

2.每查询到一条记录就会调用一次回调函数

#include <stdio.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{if(argc!=2){fprintf(stderr,"请输入:%s 数据库\n",argv[0]);return -1;}int ret;sqlite3 *db;char *sql="create table if not exsiti student(ID integer,NAME text,SCORE integer);";//创建名为student的表的sql语句char *errmsgret=sqlite3_open(argv[1],&db);if(ret!=SQLITE_OK){fprintf(stderr,"sqlite3_open fail:%s\n",sqlite3_errmsg(db));return -1;}ret=sqlite3_exec(db,sql,NULL,NULL,&errmsg){fprintf(stderr,"sqlite_exec:%s",errmsg);sqlite3_free(srrmsg);return -1;}sqlite3_close(db);return 0;
}

3.非回调的selectc查询

int sqlite3_get_table(sqlite3 *db,const char *zSql,char ***pazResult,int *pnRow,int *pnColumn,char **pzErrmsg)

参数:@db        打开的数据库

@zSql       sql查询语句

@pazResult    获得查询结果存放的指针数组的首地址

@pnRow        获得查询记录的条数

@pnColumn    查询到列的个数

@pzErrmsg     获得错误信息

返回值:成功返回0,错误返回错误码

viod sqlite3_free_table(char **result)

功能:释放结果表

#include <stdio.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{if(argc!=2){fprintf(stderr,"请输入:%s 数据库\n",argv[0]);return -1;}int ret,i,j,index=0;sqlite3 *db;char *sql="select * from student;"char *errmsgchar **result;int row,column;ret=sqlite3_open(argv[1],&db);if(ret!=SQLITE_OK){fprintf(stderr,"sqlite3_open fail:%s\n",sqlite3_errmsg(db));return -1;}ret=sqlite3_get_table(db,sql,&result,&row,&column,&errmsg);if(ret!=SQLITE_OK){fprintf(stderr,"sqlite3_get_table:%s\n",errmsg);sqlite3_free(errmsg);return -1;}//打印查询到的数据for(i=0;i<row+1;i++)//因为打印时第一行是段名所以要row+1;{for(j=0;i<column;j++){ printf("%s ",result[index++]);}printf("\n");}sqlite3_free_table(result);sqlite3_close(db);return 0;
}

linux下SQLite3数据库相关推荐

  1. 嵌入式软件开发培训笔记——Linux下SQLite3数据库编程

    1.基本概念 数据库&数据库管理系统(DBMS) 关系型DBMS和SQL 通用型DBMS&嵌入式DBMS 2.SQLite 简介 命令行操作 库函数编程操作 3.数据库基本概念 1)数 ...

  2. linux下sqlite3, python3.6.6及pip3的安装

    linux下sqlite3, python3.6.6及pip3的安装 最近用python写了一个小型的web管理系统,用到了python3.6.6以及内嵌数据库sqlite3. 下面简单说下linux ...

  3. mysql 多数据库文件_今天突然发现我的Linux下MySQL数据库目录多了好多文件

    今天再次重现Blog了,虽然很忙,还是要来写一下Blog的,嘻,首先还是一样先谢谢Sery 今天发现了我的Linux下Mysql数据库目录多了好多Mysql-bin.0000X这些文件,经过自己查找资 ...

  4. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  5. Linux下MySQL数据库主从同步配置

    操作系统:CentOS 6.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说 ...

  6. Linux下Mysql数据库的基础操作

    Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...

  7. mysql教程qt linux_一步步学Qt,第四天-Linux 下mysql数据库链接

    一步步学Qt,第四天-Linux 下mysql数据库链接 现在在linux系统下面,完成之前的qt-mysql连接工作,此次我新安装了新版的qt,也按照qtassistant对mysqldriver进 ...

  8. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  9. linux mysql常用基本操作,Linux下MySQL数据库常用基本操作 一

    Linux下MySQL数据库常用基本操作 一 0.登录数据库 mysql -u root -p 1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 ...

最新文章

  1. Virtual Lab. For Probability and Statistics
  2. 原码,反码,补码,移码的概念以及各自的用途和优点
  3. 口令红包 java,[1.7.2]Gifts — 我的世界服务器在线礼物和登陆奖励插件
  4. 第三章 安装apache
  5. 第三课 Makefile文件的制作(上)
  6. Win32ASM学习[10]:传送指令
  7. python 除数不能为零的报错有哪些_【社区精选40】Python错误处理及代码调试方法(文末赠书中奖名单)...
  8. 案例 员工演奏乐器 c# 1614191419
  9. Thinkphp5 模型 验证器执行顺序问题
  10. fedora 14 64位安装 flash player
  11. 浅谈VMD---变分模态分解
  12. 线性代数辅导讲义(第六章 二次型)
  13. vivado修改下载器下载速率
  14. 基于古诗词的名字生成器
  15. CSDN论坛如何查看我发布的帖子?
  16. 从吴军的书《见识》总结的49条商业本质、为人方法
  17. WORD 毕设页眉页码目录标题 排版
  18. ipad照片文件删除了怎么恢复
  19. 会python_会Python了不起吗?是的,简直开挂!
  20. 207.课程表(java)

热门文章

  1. 计算机学院创新基金项目题目,大学生科技创新基金项目立项
  2. Photoshop作品欣赏
  3. Idea关于复制包全名的设置
  4. 详解python中for循环的_《详》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  5. python识别食物卡路里_请问哪里可找到识别食物重量和热量的智能餐具?
  6. java类的构造器可以被继承吗_java可以继承父类构造器吗
  7. 新概念英语二,Lesson 2
  8. JQ-AJAX执行成功不执行success方法解决
  9. 牛!虚拟化SIG最新技术成果受国际媒体报道!
  10. VASP+FDM+Phonopy 计算声子过程