CentOS中使用C语言访问Sqlite数据库,连接数据库并查询打印出表的数据。包括使用SecureCRT的rz命令传输文件,中文编码设置,在C程序中引入sqlite3.h头文件,sqlite数据库导入和导出等。

常用linux命令

首先需要掌握常用的Linux系统命令,主要的命令如下。尤其是find命令,要先确保linux系统安装了 Sqlite数据库,判断标准之一是使用

find 查找文件,例如 find / -name sqlite3.h -print,查找文件并打印出文件的全路径,得到结果:系统中存在sqlite3.h

常用的linux系统命令,cd 切换文件夹,pwd 显示当前路径,vi 编辑文件,rm -rf 删除文件或文件夹,强制删除忽略提示,mkdir 创建文件夹,find 查找文件,例如 find / -name sqlite3.h -print,查找文件并打印出文件的全路径,history 回车,显示已经敲过的历史命令。

CentOS7安装Sqlite

先要配置好网络 ,让Centos系统能够连接到互联网。安装sqlite数据库,yum install sqlite-devel ,查看系统是否安装了sqlite数据库。若没有则根据提示安装。如果没有安装,则输入y,按回车安装。yum install sqlite-devel 命令结果

输入y按回车键安装sqlite3数据库

sqlite3 常用命令

sqlite3 数据库名,打开数据库。例如sqlite3  sqlitedb0525.db3打开数据库

.database 回车,显示数据库文件名称。显示数据库文件名称

.table 回车,显示数据库中的数据表。显示数据库中的数据表

select * from 表名,显示数据表的记录,分号结尾+回车键执行脚本。显示数据表的记录

导出数据库为sql脚本文件,.

output sql文件名 回车

.dump 回车导出数据库为sql脚本文件

通过sql文件还原sqlite数据库文件,注意该命令不是在sqlite提示符下进行的,要先输入.quit回车,退回到linux命令提示符下运行。通过sql文件还原sqlite数据库文件

windows和linux传输文件

虚拟机安装好CentOS7,Windows安装好SecureCRT,设置secureCRT中文编码,菜单:选项-会话选项-外观-窗口和文本外观-字符编码,设置为utf-8。设置Windows文件编辑器的编码为utf-8,例如Notepad++。这样可以避免文件在 linux系统中显示中文乱码。在windows文本编辑器中编写C语言源程序 。

#include 
#include 
#include 
int main( void )
{
sqlite3 *dbName=NULL;  // 数据库名称
char *errorInfo = NULL; // 错误信息
int notOpen;  // 是否连接,真表示未连接
int rowCount=0; // 行数
int columnCount = 0; // 列数
char **tableData=NULL; // 数据表的记录
char *sqlScript = "select *from personInfo"; // sql语句
int i = 0; // 循环变量
//连接数据库
notOpen = sqlite3_open("sqlitedb0525.db3", &dbName);
if( notOpen )
{
fprintf(stderr, "数据库连接失败: %s ", sqlite3_errmsg(dbName));
sqlite3_close(dbName);
exit(1);
}
else printf("数据库连接成功!",&dbName);
/* 查询数据表 */
sqlite3_get_table( dbName , sqlScript , &tableData , &rowCount , &columnCount , &errorInfo );
printf("行数=%d 列数=%d\n",rowCount,columnCount);
printf("数据表的记录:\n");
for(i=0;i
{
printf("tableData[%d]=%s\t",i,tableData[i]);
if((i+1)%columnCount == 0)
{
printf("\n");
}
}
sqlite3_close(dbName); //关闭数据库
return 0;
}

SecurtCRT设置中文编码

notepad++设置中文编码

SecureCRT登录到CentOS系统中,执行rz -E,将windows文件夹中的文件传输到linux系统的当前文件夹中。C语言源代码

在CentOS系统中,新建文件夹demo001,拷贝sqlite数据库文件文件,导出sql脚本文件,拷贝C语言源程序,编译产生可执行程序。数据库文件、脚本文件、C语言源程序、编译后的可执行程序

编译和运行C语言显示数据表记录

访问sqlite数据库的C语言文件名是sqlite01.c,运行gcc sqlite01.c -o sqlite01 -l sqlite3命令编译C语言,参数-l sqlite3表示加载sqlite库。运行编译后的程序,命令是./sqlite01  回车,注意命令中斜杠前面有一个点,点和斜杠在一起表示当前路径。程序运行结果,显示行列数和记录值