完成数据库的增删查

函数原型:insert into 表名 values(数据1,数据2,数据3);

函数原型:delete from 表名 where 限制条件;

函数原型:select * from 表名 限制条件;

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


int do_search(sqlite3* db);
int do_delete(sqlite3* db);
int do_insert(sqlite3* db);
int main(int argc, const char *argv[])
{
	//打开数据库,不存在则创建
	sqlite3* db = NULL;
	if(sqlite3_open("./my.db",&db) != SQLITE_OK)
	{
		printf("line: %d sqlite3_open[%d] %s\n",__LINE__,sqlite3_errcode(db),sqlite3_errmsg(db));
		return -1;
	}
	printf("sqlite3_open success\n");

	//创建表格 create table 表名(字段名 数据类型,字段名 数据类型)
	//与数据库的格式一样
	char sql[1024] = "create table if not exists stu(id int,name char,score float)";
	char* errmsg = NULL;

	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
		return -1;
	}
	printf("create table stu success\n");

	char c = 0;
	while(1)
	{
		printf("-------------------------------------\n");
		printf("-------------1.插入------------------\n");
		printf("-------------2.删除------------------\n");
		printf("-------------3.修改------------------\n");
		printf("-------------4.查询------------------\n");
		printf("-------------5.退出------------------\n");
		printf("-------------------------------------\n");
		printf("请输入>>>>>>");
		c = getchar();
 		while(getchar() != 10);
		
		switch(c)
		{
		case '1':
			do_insert(db);
			break;
		case '2':
			do_delete(db);
			break;
		case '3':

			break;
		case '4':
			do_search(db);
			break;
		case '5':
			goto END;
			break;
		default:
			printf("输入信息错误,重新输入\n");
		}
	}
END:

	//释放数据库内存空间
	if(sqlite3_close(db) != SQLITE_OK)
	{
		printf("line: %d sqlite3_close %s\n",__LINE__,sqlite3_errmsg(db));
		return -1;
	}
	printf("sqlite3_close success\n");
		
	db = NULL;

	return 0;
}

int do_insert(sqlite3* db)
{
	int id;
	char name[20] = "";
	float score;
	char* errmsg = NULL;
	char input[1024] ="";
	scanf("%d %s %f",&id,name,&score);
 	while(getchar() != 10);
	sprintf(input,"insert into stu values(%d,%s,%.2f);",id,name,score);
	if(sqlite3_exec(db,input,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
		return -1;
	}
	return 0;
}

int do_delete(sqlite3* db)
{
	//按照id删除
	int id;
	char* errmsg = NULL;
	char input[1024] ="";
	scanf("%d",&id);
 	while(getchar() != 10);
	sprintf(input,"delete from stu where %d;",id);
	if(sqlite3_exec(db,input,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
		return -1;
	}
	return 0;
}

int do_search(sqlite3* db)
{
	//按照id查找
	int id;
	char* errmsg = NULL;
	char input[1024] ="";
	scanf("%d",&id);
 	while(getchar() != 10);
	sprintf(input,"select * from stu where %d",id);
	if(sqlite3_exec(db,input,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
		return -1;
	}
	printf("查找的数据为:%d %s %.2f\n",id,name,float);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值