一、维护命令
1.数据的导出
1.1用法
sqlite3 xxx.db .dump > xxx.sql
//将数据库名称为xxx的数据库整体导出到脚本中。
1.2代码示例
2.数据的导入
2.1用法
sqlite3 xxx.db < xxx.sql
2.2代码示例
3.可视化工具安装
sudo apt-get install sqlitebrowser
二、回调函数
1.输出一次标题输出一次内容
#include <sqlite3.h>
#include <stdio.h>
//此时为输出一次标题输出一次内容
int show(void *arg, int clo, char **result, char **title)
{
for (int i = 0; i < clo; i++)
{
printf("%s\t", title[i]);
}
printf("\n");
for (int i = 0; i < clo; i++)
{
printf("%s\t", result[i]);
}
printf("\n");
return 0;
}
int main(int argc, char **argv)
{
// int sqlite3_open( const char *filename, sqlite3 **ppDb);
sqlite3 *db = NULL;
char *errmsg;
int ret = sqlite3_open("./aaa.db", &db);
if (SQLITE_OK != ret)
{
//不能使用perror
fprintf(stderr, "open db error:%s\n", sqlite3_errstr(ret));
// 或者使用fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
char sql_cmd[512] = "select * from user1";
//此处show为回调函数
ret = sqlite3_exec(db, sql_cmd, show, NULL, &errmsg);
if (SQLITE_OK != ret)
{
//不能使用perror
fprintf(stderr, "exec db:%s error:%s\n", sql_cmd, errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
// system("pause");
return 0;
}
2.只输出一次标题
#include <sqlite3.h>
#include <stdio.h>
//只输出一次标题
int show(void *arg, int clo, char **result, char **title)
{
static int flag = 0;
if (0 == flag)
{
flag = 1;
for (int i = 0; i < clo; i++)
{
printf("%s\t", title[i]);
}
printf("\n");
}
for (int i = 0; i < clo; i++)
{
printf("%s\t", result[i]);
}
printf("\n");
return 0;
}
int main(int argc, char **argv)
{
// int sqlite3_open( const char *filename, sqlite3 **ppDb);
sqlite3 *db = NULL;
char *errmsg;
int ret = sqlite3_open("./aaa.db", &db);
if (SQLITE_OK != ret)
{
//不能使用perror
fprintf(stderr, "open db error:%s\n", sqlite3_errstr(ret));
// 或者使用fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
char sql_cmd[512] = "select * from user1";
//此处show为回调函数
ret = sqlite3_exec(db, sql_cmd, show, NULL, &errmsg);
if (SQLITE_OK != ret)
{
//不能使用perror
fprintf(stderr, "exec db:%s error:%s\n", sql_cmd, errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
// system("pause");
return 0;
}