#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/wait.h>
#include <semaphore.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/msg.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <sys/times.h>
#include <sys/select.h>
#include <sqlite3.h>
sqlite3 * createdb(const char *file)
{
sqlite3 *db;
if(sqlite3_open(file,&db)!=SQLITE_OK)
{
return NULL;
}
return db;
}
int createtable(sqlite3 *db)
{
char command[128]="create table if not exists STU (name char,age int,score double);";
int a = sqlite3_exec(db,command,NULL,NULL,NULL);
if(a != SQLITE_OK)
{
return a;
}
return SQLITE_OK;
}
insert(sqlite3 *db,const char *name,int age,double score,const char *table)
{
char command[128];
sprintf(command,"insert into %s values ('%s',%d,%lf);",table,name,age,score);
int a=sqlite3_exec(db,command,NULL,NULL,NULL);
if(a!=SQLITE_OK)
{
return a;
}
return SQLITE_OK;
}
int delete(sqlite3 *db,const char *name,const char *table)
{
char command[128];
sprintf(command,"delete from %s where name='%s';",table,name);
int a=sqlite3_exec(db,command,NULL,NULL,NULL);
if(a!=SQLITE_OK)
{
return a;
}
return SQLITE_OK;
}
update(sqlite3 *db,const char *table,char *name,double temp,const char *t)
{
char command[128];
sprintf(command,"update %s set %s=5%lf where name='%s';",table,t,temp,name);
int a=sqlite3_exec(db,command,NULL,NULL,NULL);
if(a!=SQLITE_OK)
{
return a;
}
return SQLITE_OK;
}
int main(int argc, const char *argv[])
{
sqlite3 *db=NULL;
db=createdb("mydb.db");
if(db==NULL)
{
printf("打开数据库失败\n");
return -1;
}
if(createtable(db)!=0)
{
printf("创建表失败\n");
return -1;
}
int a;int age;char name[20];double score;char temp[20];
printf("1*******************插入数据\n");
printf("2*******************删除数据\n");
printf("3*******************更新数据\n");
printf("0*******************退出\n");
while(1)
{
scanf("%d",&a);
switch (a)
{
case 1:
printf("请输入年龄,姓名,得分\n");
scanf("%d%s%lf",&age,name,&score);
if(insert(db,name,age,score,"STU")!=0)
{
printf("插入失败\n");
return -1;
}
printf("插入成功\n");
break;
case 2:printf("请输入你要删除谁的数据\n");
scanf("%s",name);
if(delete(db,name,"STU")!=0)
{
printf("删除失败\n");
return -1;
}
printf("删除成功\n");
break;
case 3:printf("请输入你要修改谁的数据,并且输入修改的是score还是age和具体值\n");
scanf("%s%s%lf",name,temp,&score);
if(update(db,"STU",name,score,temp)!=0)
{
printf("修改失败\n");
return -1;
}
printf("修改成功\n");
break;
case 0:exit(0);break;
default:printf("command error\n");
break;
}
}
sqlite3_close(db);
return 0;
}
4.18作业
于 2024-04-18 21:19:47 首次发布