sqlite3数据库的实现

sqlite3代码实现数据库的插入、删除、修改、退出功能

cpp 复制代码
#include <head.h>
#include <sqlite3.h>
#include <unistd.h>
int do_insert(sqlite3 *db);
int do_delete(sqlite3 *db);
int do_update(sqlite3 *db);

int main(int argc, const char *argv[])
{
	sqlite3 *db = NULL;
	if(sqlite3_open("./my.db",&db) != SQLITE_OK)
	{
		fprintf(stdin,"sqlite3_open:%s %d",\
				sqlite3_errmsg(db),sqlite3_errcode(db));
		return -1;
	}
	printf("sqlite3_open success\n");

	char sql[128] = "create table if not exists Dictionary (word char,TRANSLATORS char)";
	char *errmsg = NULL;
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s %d",errmsg,sqlite3_errcode(db));
		return -1;
	}
	printf("create table Dictionary success\n");

	char choose = 0;
	while(1)
	{
		printf("**********************\n");
		printf("********1.插入********\n");
		printf("********2.删除********\n");
		printf("********3.修改********\n");
		printf("********4.退出********\n");
		printf("**********************\n");


		printf("请输入>>> ");
		scanf("%s",&choose);
		getchar();

		switch(choose)
		{
		case '1': do_insert(db); break;
		case '2': do_delete(db); break;
		case '3': do_update(db); break;
		case '4': goto END; 	 break;
		default:printf("输入错误,请重新输入\n");
		}
	}

END:
	if(sqlite3_close(db) != SQLITE_OK)
	{
		fprintf(stdin,"sqlite3_close:%s %d",\
				sqlite3_errmsg(db),sqlite3_errcode(db));
		return -1;
	}
	return 0;
}
int do_update(sqlite3 *db)
{
	if(sqlite3_open("./my.db",&db) != SQLITE_OK)
	{
		fprintf(stdin,"sqlite3_open:%s %d",\
				sqlite3_errmsg(db),sqlite3_errcode(db));
		return -1;
	}
	char buf[128] = "";
	char buf_w[128] = "";
	printf("请输入要修改的单词>>> ");
	scanf("%s",buf);
	printf("请输入要修改单词的翻译>>> ");
	scanf("%s",buf_w);
	char *errmsg;
	char sql[128] = "";
	sprintf(sql,"update Dictionary set TRANSLATORS='%s' where word='%s'",buf,buf_w);
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s %d\n",errmsg,sqlite3_errcode(db));
		return -1;
	}
	printf("do_update success\n");
	return 0;
}
int do_insert(sqlite3 *db)
{
	if(sqlite3_open("./my.db",&db) != SQLITE_OK)
	{
		fprintf(stdin,"sqlite3_open:%s %d",\
				sqlite3_errmsg(db),sqlite3_errcode(db));
		return -1;
	}
	char *errmsg;
	char sql[128] = "";
	char buf_word[128] = "";
	char buf_TRAN[128] = "";
	printf("请输入单词>>> ");
	scanf("%s",buf_word);
	printf("请输入翻译>>> ");
	scanf("%s",buf_TRAN);
	sprintf(sql,"insert into Dictionary values ('%s','%s')",buf_word,buf_TRAN);
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s %d\n",errmsg,sqlite3_errcode(db));
		return -1;
	}
	printf("do_insert success\n");
	return 0;
}
int do_delete(sqlite3 *db)
{
	if(sqlite3_open("./my.db",&db) != SQLITE_OK)
	{
		fprintf(stdin,"sqlite3_open:%s %d",\
				sqlite3_errmsg(db),sqlite3_errcode(db));
		return -1;
	}
	char *errmsg;
	char buf[128] = "";
	printf("请输入要删除的单词>>> ");
	scanf("%s",buf);
	char sql[128] = "";
	sprintf(sql,"delete from Dictionary where word='%s'",buf);
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s %d\n",errmsg,sqlite3_errcode(db));
		return -1;
	}
	printf("do_delete success\n");


}
相关推荐
qq_206901394 小时前
为什么宝塔面板网站无法正常连接外部远程数据库_检查服务器安全组放行端口并开启IP授权
jvm·数据库·python
亚空间仓鼠4 小时前
关系型数据库MySQL(二):高级特性
数据库·sql·mysql
亚空间仓鼠4 小时前
关系型数据库MySQL(五):Galara高可用
数据库·mysql
weixin_586061464 小时前
JavaScript中Redux-Thunk处理异步Action的任务流
jvm·数据库·python
C^h4 小时前
rtthread控制达妙4310电机
数据库·单片机·嵌入式硬件
晴天¥4 小时前
达梦数据库共享存储集群搭建(DSC双节点+Openfiler-IP SAN存储)
linux·数据库·达梦数据库
2401_897190555 小时前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
渔舟小调5 小时前
P11 | 收藏与行程:用户行为类接口的设计模式
数据库·设计模式·oracle
m0_678485455 小时前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
做时间的朋友。5 小时前
MySQL 8.0 窗口函数
android·数据库·mysql