数据库--Sqlite3

 1、思维导图

 2sqlite3在linux中是实现数据的增删,改

#include<myhead.h>

int main(int argc, const char *argv[])
{
        //1、定义一个数据库句柄指针
        sqlite3* ppDb =NULL;
        //2、创建或打开数据库
        if(sqlite3_open("./mydb.db",&ppDb)!=SQLITE_OK)
        {
                printf("sqlite3_open error\n");
                return -1;
        }
        printf("数据库成功打开\n");
//
        //3、创建数据表
        //3.1、准备sql语句
        char sql[128]="create table if not exists student(student_id  int ,name char,sex char ,score double);";
        char *errmsg =NULL;
        if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
        {
                printf("%s\n",errmsg);
                return -1;
        }
        printf("数据表创建成功\n");
 
        int a=0;

        int  a1=0;
        char a2[20]="";
        char a3[5]="";
        int a4=0;
        printf("*****学生信息***********\n");
        printf("*****1、添加学生信息****\n");
        printf("*****2、修改学生信息*****\n");
        printf("*****3、删除学生信息*****\n");
        printf("*****4、查找学生信息******\n");
        printf("*****0、退出系统**********\n");
        printf("请输入》》》:");
        scanf("%d",&a);

        switch(a)
        {
        case 1:
                {
                printf("请输入信息:");
                scanf("%d %s %s %d",&a1,a2,a3,&a4);
                getchar();
                        sprintf(sql,"insert into student values(%d,\"%s\",\"%s\",%d);",a1,a2,a3,a4);


                if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
                {
                        printf("%s\n",errmsg);
                        return -1;
                }
                break;

                }
        case 2:
                {
                printf("请输入学号和姓名:");
                scanf("%d %s %s %d",a1,a2,a3,a4);
                getchar();
                sprintf(sql,"UPDATE TABLE student student_id=%d AND name=\"%s\" WHERE sex=\"%s\" %d;",a1,a2,a3,a4);
                if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
                {
                        printf("%s\n",errmsg);
                        return -1;
                }
                break;


                }
        case 3:
                {
                printf("请输入信息:");
                scanf("%s",a2);
                getchar();
                sprintf(sql,"DELETE FROM student WHERE name=\"%s\"",a2);
                if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
                {
                        printf("%s\n",errmsg);
                        return -1;
                }
                break;
                }

        case 0:
                {
                sprintf(sql,"DROP TABLE student;");
                if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
                {
                        printf("%s\n",errmsg);
                        return -1;
                }
                break;

                }


        }

        sqlite3_close(ppDb);
        return 0;
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS导读 (CSS的三大特性 上)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 五、CSS的三大特性 5.1 层叠性 5.2 继承性 5.2.1 行高的继承 5.3 优先级 小练习 五、CSS的三大特性 …

数据赋能(61)——要求:数据管理部门职责

“要求&#xff1a;数据管理部门职责”是作为标准的参考内容编写的。 数据管理部门职责在于以数据资源为核心&#xff0c;将原始数据转化为可被业务部门与数据服务部门有效利用的数据资源&#xff0c;以支持业务赋能的实现。 数据管理要确保数据的完整性、准确性与一致性&…

管道流设计模式结合业务

文章目录 流程图代码实现pomcontextEventContextBizTypeAbstractEventContext filterEventFilterAbstractEventFilterEventFilterChainFilterChainPipelineDefaultEventFilterChain selectorFilterSelectorDefaultFilterSelector 调用代码PipelineApplicationcontrollerentitys…

MySql安装(Linux)

一、清除原来的mysql环境 在前期建议使用root用户来进行操作&#xff0c;使用 su -来切换成root用户&#xff0c;但是如果老是提示认证失败&#xff0c;那么有可能我们的root密码并没有被设置&#xff0c; 我们可以先设置root的密码 sudo passwd root 然后就可以切换了。 …

遥感图像分割 | 基于一种类似UNet的Transformer算法实现遥感城市场景图像的语义分割_适用于卫星图像+航空图像+无人机图像

项目应用场景 面向遥感城市场景图像语义分割场景&#xff0c;项目采用类似 UNet 的 Transformer 深度学习算法来实现&#xff0c;项目适用于卫星图像、航空图像、无人机图像等。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 conda create -n airs python3.8…

neo4j使用详解(终章、neo4j的java driver使用模板及工具类——<可用于生产>)

Neo4j系列导航: neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 neo4j java Driver等更多 1. 简介 本文主要是java使用neo4j driver操作neo4j的模板项目及非常有用的工具类,主要包括: 图…

python中对列表的复制操作(浅拷贝与深拷贝)

python中对列表的复制操作用的比较广泛&#xff0c;之前写过一篇博客Python&#xff1a;复制列表&#xff0c;禁止函数修改列表&#xff08;副本&#xff0c;切片表示法[:]&#xff09;详细讲述了python中的 [:] 操作&#xff0c;但是 [:] 操作仅仅只是浅拷贝&#xff0c;具有很…

C++:深入理解operator new/operator delete

动态内存管理 1.语法层面1.基本语法注意点 2.new/delete和malloc/free的区别3.operator new和operator delete函数&#xff08;底层重点&#xff09;1.operator new/delete原理2.图解1.new/new[]2.delete/delete[] 3.new[n]和delete[] 4.定位new1.定义2.使用格式 1.语法层面 1…

JVM虚拟机(十)Java内存泄漏的排查思路

目录 一、可能产生内存泄露的地方二、复现堆内存泄漏三、如何排查堆内存问题&#xff1f;3.1 获取对内存快照 dump3.2 使用 Visual VM 去分析 dump 文件3.3 定位内存溢出问题 一、可能产生内存泄露的地方 在进行排查 Java 的内存泄漏问题之前&#xff0c;首先我们要知道哪里可…

Vue接收接口返回的mp3格式数据并支持在页面播放音频

一、背景简介 在实际工作中需要开发一个转音频工具&#xff0c;并且能够在平台页面点击播放按钮播放音频 二、相关知识介绍 2.1 JS内置对象Blob Blob对象通常用于处理大量的二进制数据&#xff0c;可以读取/写入/操作文件、音视频等二进制数据流。Blob表示了一段不可变的二…

AI热潮下,公链基础设施赛道都有哪些变化?

最近在一级市场&#xff0c;最火热的赛道无疑是AI&#xff0c;其次是BTC&#xff0c;每天聊的项目80%都集中在这两个赛道&#xff0c;我个人最多的时候一天可以聊5&#xff0c;6个AI项目。 可以预见的是AI泡沫会在明后年达到顶峰&#xff0c;随着数以百计的AI新项目上线&#…

【EI会议征稿通知】2024年图像处理、机器学习与模式识别国际学术会议(IPMLP 2024)

2024年图像处理、机器学习与模式识别国际学术会议&#xff08;IPMLP 2024) 2024 International Conference on Image Processing, Machine Learning and Pattern Recognition 重要信息 大会官网&#xff1a;www.ipmlp.net&#xff08;点击参会/投稿/了解会议详情&#xff09;…