栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

linux数据库的增删改查(标准库版本)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux数据库的增删改查(标准库版本)

目录
  • 一 数据库创建和校准函数代码实现
  • 二 插入 函数
  • 三 删除函数
  • 四 更新函数
  • 五 查询函数

一 数据库创建和校准函数代码实现
数据库创建函数

校准函数


open 函数:
参数一:数据库名字
参数二 :二级指针  定义一个一级指针取地址赋值给他即可    
校准函数 :
参数说明:open的指针变量 (第一个蚕食)
执行的语句:create table stu(id Integer,name char,score Integer);(第二个参数)
第三第四 参数:暂不用回调函数 直接都为NULL
第五 参数 :二级指针  定义一个一级指针取地址赋值给他即可 
#include
#include
#include
#include

#define sqlite_name "student.db"
 int  main()
 {

     sqlite3 *db;
     char *errmsg;

     if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3  不等于SQLITE_OK 就是失败
     {
          printf("%sn",sqlite3_errmsg(db));
            exit(1);
     }
     else//否则就是成功
     {
        printf("sqlite3_opne is successn");
     }


     if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3  不等于SQLITE_OK 就是失败
     {
            printf("%sn",sqlite3_errmsg(db));
             exit(1);

     }
     else//否则就是成功
     {
     {
        printf("sqlite3_exec is successn");

     }
  return 0;     
}

二 插入 函数

#include
#include
#include
#include

#define sqlite_name "student.db"

 int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数
 {

     int id;
     char name[32]={};
     int score;
     char sql[128]={};

     printf("id:");
     scanf("%d",&id);//输入学号
     getchar();

     printf("name:");
     scanf("%s",name);//输入名字
     getchar();

     printf("score:");
     scanf("%d",&score);//输入成绩
     getchar();

    sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存  放在一个地址

    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("stu is successn");
    }

      return 0;
 }

 int  main()
 {

     sqlite3 *db;
     char *errmsg;

     if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3  不等于SQLITE_OK 就是失败
     {
          printf("%sn",sqlite3_errmsg(db));
            exit(1);
     }
     else//否则就是成功
     {
        printf("sqlite3_open is successn");
     }


     if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3  不等于SQLITE_OK 就是失败
     {
            printf("%sn",sqlite3_errmsg(db));
             exit(1);

     }
     else//否则就是成功
     {
     {
        printf("sqlite3_exec is successn");
     }

     while(1)
     {
         int com;
       printf("*******************n");
       printf("1:inster 2:query 3:update 4:deleten");
      
         scanf("%d",&id);
         getchar();

         switch(com)
         {
             case 1 :do_insert(db);//插入 成绩 学号 名字 的函数

             break;

 
         }

     }

   return 0;

 }

1  插入函数的形参和函数名 do_insert(sqlite3 *db);
2 在里面用scanf 输入 并且吸收回车 即可 
3  用:sprintf存储函数 把数据放在一起 
4 用  sqlite3_exec校准   

三 删除函数
#include
#include
#include
#include

#define sqlite_name "student.db"

 int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数
 {

     int id;
     char name[32]={};
     int score;
     char sql[128]={};

     printf("id:");
     scanf("%d",&id);//输入学号
     getchar();

     printf("name:");
     scanf("%s",name);//输入名字
     getchar();

     printf("score:");
     scanf("%d",&score);//输入成绩
     getchar();

    sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存  放在一个地址

    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("stu is successn");
    }

      return 0;
 }
int do_insert(sqlite *db)
{
      int id;
     char name[32]={};
     char sql[128]={};
     char *errmsg;
     printf("delete id:");
     scanf(“%d”,&id);
     sprintf(sql,"delete from stu where id=%d",id);
   if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("delete is successn");
    }   

  reurn 0;
} 



 int  main()
 {

     sqlite3 *db;
     char *errmsg;

     if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3  不等于SQLITE_OK 就是失败
     {
          printf("%sn",sqlite3_errmsg(db));
            exit(1);
     }
     else//否则就是成功
     {
        printf("sqlite3_open is successn");
     }


     if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3  不等于SQLITE_OK 就是失败
     {
            printf("%sn",sqlite3_errmsg(db));
             exit(1);

     }
     else//否则就是成功
     {
     {
        printf("sqlite3_exec is successn");
     }

     while(1)
     {
         int com;
       printf("*******************n");
       printf("1:inster 2:query 3:update 4:deleten");
      
         scanf("%d",&id);
         getchar();

         switch(com)
         {
             case 1 :do_insert(db);//插入 成绩 学号 名字 的函数
             case 4:do_insert(db);//删除成绩 学号 名字 的函数
             break;

 
         }

     }

   return 0;

 }

四 更新函数
#include
#include
#include
#include

#define sqlite_name "student.db"

 int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数
 {

     int id;
     char name[32]={};
     int score;
     char sql[128]={};

     printf("id:");
     scanf("%d",&id);//输入学号
     getchar();

     printf("name:");
     scanf("%s",name);//输入名字
     getchar();

     printf("score:");
     scanf("%d",&score);//输入成绩
     getchar();

    sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存  放在一个地址

    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("stu is successn");
    }

      return 0;
 }
 
int do_update(sqlite3 *db)
{
      int id;
     char name[32]={};
     char sql[128]={};
     char *errmsg;
     
     printf("after update id:");
     scanf(“%d”,&id);
     getchar();
     
     printf("after update name :");
     scanf(“%s”,name);
     getchar();
     
     printf("after update score:");
     scanf(“%d”,&id);
     getchar();
     
    sprintf(sql,"update stu set name='%s',score=%d where id=%d",name,score,id);
     
   if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("update is successn");
    }   

  reurn 0;
} 

int do_delete( sqlite3 *db)
{
      int id;
     char sql[128]={};
     char *errmsg;
     
     printf("delete id:");
     scanf(“%d”,&id);
     getchar();
     
    sprintf(sql,"delete from stu where id=%d",id);
     
   if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("delete is successn");
    }      
     
}
 


 int  main()
 {

     sqlite3 *db;
     char *errmsg;

     if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3  不等于SQLITE_OK 就是失败
     {
          printf("%sn",sqlite3_errmsg(db));
            exit(1);
     }
     else//否则就是成功
     {
        printf("sqlite3_open is successn");
     }


     if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3  不等于SQLITE_OK 就是失败
     {
            printf("%sn",sqlite3_errmsg(db));
             exit(1);

     }
     else//否则就是成功
     {
     {
        printf("sqlite3_exec is successn");
     }

     while(1)
     {
         int com;
       printf("*******************n");
       printf("1:inster 2:query 3:update 4:deleten");
      
         scanf("%d",&id);
         getchar();

         switch(com)
         {
             case 1 :do_insert(db);//插入 成绩 学号 名字 的函数
             
             case 2:do_query(db);//查询成绩 学号 名字 的函数
             
             case 3:do_update(db);//更新成绩 学号 名字 的函数
             
             case 4:do_insert(db);//删除成绩 学号 名字 的函数
            
             break;

 
         }

     }

   return 0;

 }

五 查询函数
老是去数据库查 很麻烦 直接写一个 

#include
#include
#include
#include

#define sqlite_name "student.db"

 int do_insert(sqlite3 *db)//插入 成绩 学号 名字 的函数
 {

     int id;
     char name[32]={};
     int score;
     char sql[128]={};

     printf("id:");
     scanf("%d",&id);//输入学号
     getchar();

     printf("name:");
     scanf("%s",name);//输入名字
     getchar();

     printf("score:");
     scanf("%d",&score);//输入成绩
     getchar();

    sprintf(sql,"insert into stu values(%d,'%s',%d);",id,name,score);//学号成绩名字存  放在一个地址

    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("stu is successn");
    }

      return 0;
 }
 
int do_update(sqlite3 *db)
{
      int id;
     char name[32]={};
     char sql[128]={};
     char *errmsg;
     
     printf("after update id:");
     scanf(“%d”,&id);
     getchar();
     
     printf("after update name :");
     scanf(“%s”,name);
     getchar();
     
     printf("after update score:");
     scanf(“%d”,&id);
     getchar();
     
    sprintf(sql,"update stu set name='%s',score=%d where id=%d",name,score,id);
     
   if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("update is successn");
    }   

  reurn 0;
} 

int do_delete( sqlite3 *db)
{
      int id;
     char sql[128]={};
     char *errmsg;
     
     printf("delete id:");
     scanf(“%d”,&id);
     getchar();
     
    sprintf(sql,"delete from stu where id=%d",id);
     
   if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("delete is successn");
    }      
     
}

int callback(void *para,int_f_num,char **argv,char **f_name)
{
  int i;
  for(i=0;i
    printf(" %s ",argv[i]);//指针数组 每个地址就是一个元素
  }
  
   
   return 0;
} 
 int do_query(sqlite3 *db)
{
     char sql[128]={};
     char *errmsg;
      
     sprintf(sql,"select *from stu");
       
  if(sqlite3_exec(db,sql,callback,NULL,&errmsg)!=SQLITE_OK)//输出函数 异常判断
    {
       printf("%sn",errmsg);
       exit(1);
    }
    else//成功 打印信息
    {
       printf("select is successn");
    } 
     return 0;
}


 int  main()
 {

     sqlite3 *db;
     char *errmsg;

     if(sqlite3_open(sqlite_name,&db)!=SQLITE_OK)//打开 sqlite3  不等于SQLITE_OK 就是失败
     {
          printf("%sn",sqlite3_errmsg(db));
            exit(1);
     }
     else//否则就是成功
     {
        printf("sqlite3_open is successn");
     }


     if(sqlite3_exec(db,"create table stu(id Integer,name char,score Integer);",NULL,NULL,&errmsg)!=SQLITE_OK)//创建 sqlite3  不等于SQLITE_OK 就是失败
     {
            printf("%sn",sqlite3_errmsg(db));
             exit(1);

     }
     else//否则就是成功
     {
     {
        printf("sqlite3_exec is successn");
     }

     while(1)
     {
         int com;
       printf("*******************n");
       printf("1:inster 2:query 3:update 4:deleten");
      
         scanf("%d",&id);
         getchar();

         switch(com)
         {
             case 1 :do_insert(db);//插入 成绩 学号 名字 的函数
             
             case 2:do_query(db);//查询成绩 学号 名字 的函数
             
             case 3:do_update(db);//更新成绩 学号 名字 的函数
             
             case 4:do_insert(db);//删除成绩 学号 名字 的函数
            
             break;

 
         }

     }

   return 0;

 }


总结

1 先把想实现的数据存入sprintf 再存放到sqlite3_exec函数 
2 sqlite3_exec 是起到校准的作用  
校准正确就可以正常操作
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935231.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号