数据库

一、数据库的安装

1、将压缩包sqlite-autoconf-3071700解压
2、进入文件夹,运行configure等待下载完成
3、下载完成后输入make指令,等待
4、make install,等待结束
5、找到/usr/lib目录下中的libsqlite3.so.0.8.6和libsqlite3.so.0文件,将其改名并将/usr/local中的对应libsqlite3.so.0.8.6和libsqlite3.so.0文件复制到系统下

二、数据库操作

#include <stdio.h>
#include <sqlite3.h>

int main()
{
	sqlite3 *db; //声明sqlite关键结构指针	
	
	int ret = sqlite3_open("student.db", &db);
	
	if( ret != SQLITE_OK )
	{
		printf ("数据库打开失败\n");
		
		return -1;
	}
	
	char *errmsg;
	
	const char *sq1 = "create table if not exists student(ID INTEGER, name TEXT, sex TEXT, age INTEGER, primary key(ID))";
	// int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callback, void *,  char **errmsg );
	ret = sqlite3_exec(db, sq1, NULL, NULL, &errmsg);
	
	if( ret != SQLITE_OK )
	{	
		printf ("exec1失败:%s\n", errmsg);
		sqlite3_free(errmsg);
		
		return -1;
	}
	
	int id = 1;
	char name[20] = "gmf";
	char sex[10] = "M";
	int age = 18;
	
	char str[100];
	
	sprintf (str, "insert into student values(NULL, '%s', '%s', %d)", name, sex, age);
	
	ret = sqlite3_exec(db, str, NULL, NULL, &errmsg);
	
	if( ret != SQLITE_OK )
	{
		printf ("exec2失败:%s\n", errmsg);
		sqlite3_free(errmsg);
		
		return -1;
	}
	
	sqlite3_close(db);
	
	return 0;
}

三、查询操作(其一)

#include <stdio.h>
#include <sqlite3.h>

int myfunc(void *v, int count, char **value, char **name)
{
	int i;
	
	for (i = 0; i < count; i++)
	{
		printf ("%-8s", value[i]);
	}
	
	printf("\n");
	
	return 0;
}

// sqlite3_exec使用回调来执行 select 操作
int main()
{
	sqlite3 *db; //声明sqlite关键结构指针	
	
	int ret = sqlite3_open("student.db", &db);
	
	if( ret != SQLITE_OK )
	{
		printf ("数据库打开失败\n");
		
		return -1;
	}
	
	char *errmsg;
	
	const char *sq1 = "select * from student";
	ret = sqlite3_exec(db, sq1, myfunc, NULL, &errmsg);
	
	if( ret != SQLITE_OK )
	{
		printf ("exec1失败:%s\n", errmsg);
		sqlite3_free(errmsg);
		
		return -1;
	}
	
	sqlite3_close(db);
	
	return 0;
}

四、查询操作(其二)

#include <stdio.h>
#include <sqlite3.h>

int main()
{
	sqlite3 *db = NULL; 
	int ret = sqlite3_open("student.db",&db);
	if(ret != SQLITE_OK)
	{
		printf("打开失败\n");
		return -1;
	}
	
	char *errmsg;
	const char *sq1 = "select * from student";
	
	char **value = NULL;
	int ncolumn;
	int nrow;
	ret = sqlite3_get_table(db, sq1, &value, &nrow, &ncolumn, &errmsg );
	if(ret != SQLITE_OK)
	{
		printf("查询失败%s\n",errmsg);
		sqlite3_free(errmsg);
		return -1;
	}
	
	int i;
	for(i = 0;i < nrow*ncolumn;i++)
	{
		if(i % ncolumn == 0)
			printf("\n");
		printf("%-8s",value[i]);
	}
	printf("\n");
	
	sqlite3_free_table(value);
	sqlite3_close(db);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值