当前位置: 首页 > news >正文

C语言:C语言实现对MySQL数据库表增删改查功能

基础DOME可以用于学习借鉴;

具体代码

#include <stdio.h> 
#include <mysql.h> // mysql 文件,如果配置ok就可以直接包含这个文件//宏定义 连接MySQL必要参数
#define SERVER "localhost" //或 127.0.0.1
#define USER "root"
#define PASSWORD "W113416w+" //password
#define DATABASE "domedata" //your_database
int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集 MYSQL_ROW row; //记录结构体//初始化数据库 mysql_init(&mysql);if (&mysql == NULL) {//fprintf(stderr, "%s\n", mysql_error(&mysql));exit(1);}//设置字符编码mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");//连接数据库if (mysql_real_connect(&mysql, SERVER, "root",//"password", "database_name"分别填写自己的的数据库登录密码和表所在的数据库名称//这里替换成自己的的数据库等路密码和自己所建的数据库名称即可PASSWORD, DATABASE, 3306, NULL, 0) == NULL) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);printf("错误原因: %s\n", mysql_error(&mysql));printf("连接失败!\n");exit(-1);}//查询数据int ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);printf("第一次打印数据库 \n"); //打印//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 插入数据if (mysql_query(&mysql, "INSERT INTO student (id,name,age,grade,iphone) VALUES (2,'Alice', 20,92,'15555556666')")) {fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Inserted successfully.\n");// 查询数据printf("——插入数据后:——第二次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 更新数据if (mysql_query(&mysql, "UPDATE student SET grade = 99 WHERE name = 'Alice'")) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Updated successfully.\n");// 查询数据printf("——修改数据后:——第三次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}// 删除数据if (mysql_query(&mysql, "DELETE FROM student WHERE name = 'Alice'")) {//fprintf(stderr, "%s\n", mysql_error(&mysql));mysql_close(&mysql);exit(1);}printf("Deleted successfully.\n");// 查询数据printf("——删除数据后:——第四次打印数据库 \n"); //打印 ret = mysql_query(&mysql, "select * from student;");//student是自己在数据库中所建的表名printf("ret: %d\n", ret);//获取结果集res = mysql_store_result(&mysql);//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。while (row = mysql_fetch_row(res)) {printf("%s ", row[0]); //打印 IDprintf("%s ", row[1]); //打印姓名printf("%s ", row[2]); //打印班级printf("%s \n", row[3]);//打印性别}//释放结果集 mysql_free_result(res);//关闭数据库mysql_close(&mysql);system("pause");return 0;
}

输出结果:

ret: 0
第一次打印数据库
0 李四 21 98
1 王五 20 85
Inserted successfully.
——插入数据后:——第二次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 92
Updated successfully.
——修改数据后:——第三次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 99
Deleted successfully.
——删除数据后:——第四次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
请按任意键继续. . .

在这里插入图片描述

相关链接

  1. SQL:Windows下C/C++连接访问MySQL数据库(亲测有效!一遍过!)

相关文章:

C语言:C语言实现对MySQL数据库表增删改查功能

基础DOME可以用于学习借鉴&#xff1b; 具体代码 #include <stdio.h> #include <mysql.h> // mysql 文件&#xff0c;如果配置ok就可以直接包含这个文件//宏定义 连接MySQL必要参数 #define SERVER "localhost" //或 127.0.0.1 #define USER "roo…...

C++ 二叉搜索树(Binary Search Tree, BST)深度解析与全面指南:从基础概念到高级应用、算法优化及实战案例

&#x1f31f;个人主页&#xff1a;落叶 &#x1f31f;当前专栏: C专栏 目录 ⼆叉搜索树的概念 ⼆叉搜索树的性能分析 ⼆叉搜索树的插⼊ ⼆叉搜索树的查找 二叉搜索树中序遍历 ⼆叉搜索树的删除 cur的左节点为空的情况 cur的右节点为空的情况 左&#xff0c;右节点都不为…...

刷题日常(移动零,盛最多水的容器,三数之和,无重复字符的最长子串)

移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 俩种情况&#xff1a; 1.当nums[i]为0的时候 直接i 2.当nums[i]不为0的时候 此时 …...

深入了解决策树---机器学习中的经典算法

引言 决策树&#xff08;Decision Tree&#xff09;是一种重要的机器学习模型&#xff0c;以直观的分层决策方式和简单高效的特点成为分类和回归任务中广泛应用的工具。作为解释性和透明性强的算法&#xff0c;决策树不仅适用于小规模数据&#xff0c;也可作为复杂模型的基石&…...

Elasticsearch对于大数据量(上亿量级)的聚合如何实现?

大家好&#xff0c;我是锋哥。今天分享关于【Elasticsearch对于大数据量&#xff08;上亿量级&#xff09;的聚合如何实现&#xff1f;】面试题。希望对大家有帮助&#xff1b; Elasticsearch对于大数据量&#xff08;上亿量级&#xff09;的聚合如何实现&#xff1f; 1000道 …...

深度学习模型:循环神经网络(RNN)

一、引言 在深度学习的浩瀚海洋里&#xff0c;循环神经网络&#xff08;RNN&#xff09;宛如一颗独特的明珠&#xff0c;专门用于剖析序列数据&#xff0c;如文本、语音、时间序列等。无论是预测股票走势&#xff0c;还是理解自然语言&#xff0c;RNN 都发挥着举足轻重的作用。…...

前端---HTML(一)

HTML_网络的三大基石和html普通文本标签 1.我们要访问网络&#xff0c;需不需要知道&#xff0c;网络上的东西在哪&#xff1f; 为什么我们写&#xff0c;www.baidu.com就能找到百度了呢&#xff1f; 我一拼ping www.baidu.com 就拼到了ip地址&#xff1a; [119.75.218.70]…...

SQL 复杂查询

目录 复杂查询 一、目的和要求 二、实验内容 &#xff08;1&#xff09;查询出所有水果产品的类别及详情。 查询出编号为“00000001”的消费者用户的姓名及其所下订单。&#xff08;分别采用子查询和连接方式实现&#xff09; 查询出每个订单的消费者姓名及联系方式。 在…...

银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法

银河麒麟桌面系统——桌面鼠标变成x&#xff0c;窗口无关闭按钮的解决办法 1、支持环境2、详细操作说明步骤1&#xff1a;用root账户登录电脑步骤2&#xff1a;导航到kylin-wm-chooser目录步骤3&#xff1a;编辑default.conf文件步骤4&#xff1a;重启电脑 3、结语 &#x1f49…...

抓包之使用chrome的network面板

写在前面 本文看下工作中非常非常常用的chrome的network面板功能。 官方介绍&#xff1a;地址。 1&#xff1a;前置 1.1&#xff1a;打开 右键-》检查&#xff0c;或者F12。 1.2&#xff1a;组成部分 2&#xff1a;控制器常用功能 详细如下图&#xff1a; 接着我们挑选其…...

避坑ffmpeg直接获取视频fps不准确

最近在做视频相关的任务&#xff0c;调试代码发现一个非常坑的点&#xff0c;就是直接用ffmpeg获取fps是有很大误差的&#xff0c;如下&#xff1a; # GPT4o generated import ffmpegprobe ffmpeg.probe(video_path, v"error", select_streams"v:0", sho…...

大数据新视界 -- 大数据大厂之 Hive 函数库:丰富函数助力数据处理(上)(11/ 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

深入解析 Django 中数据删除的最佳实践:以动态管理镜像版本为例

文章目录 引言场景与模型设计场景描述 删除操作详解1. 删除单个 Tag2. 批量删除 Tags3. 删除前确认4. 日志记录 高阶优化与问题分析1. 外键约束与误删保护2. 并发删除的冲突处理3. 使用软删除 结合 Django Admin 的实现总结与实践思考 引言 在现代应用开发中&#xff0c;服务和…...

【java】sdkman-java多环境切换工具

#java #env #sdk #lcshand 首先我们来复习一下&#xff0c;可参考我原来的文章&#xff1a; python多个版本的切换可用pyenv nodejs多个版本的切换可用nvm 同样&#xff0c;java多个版本的切换可用sdkman和jenv&#xff0c;我偏重于使用sdkman&#xff0c;因为有时候我也需要…...

11.25c++继承、多态

练习&#xff1a; 编写一个 武器类 class Weapon{int atk; }编写3个武器派生类&#xff1a;短剑&#xff0c;斧头&#xff0c;长剑 class knife{int spd; }class axe{int hp; }class sword{int def; }编写一个英雄类 class Hero{int atk;int def;int spd;int hp; public:所有的…...

STM32F103外部中断配置

一、外部中断 在上一节我们介绍了STM32f103的嵌套向量中断控制器&#xff0c;其中包括中断的使能、失能、中断优先级分组以及中断优先级配置等内容。 1.1 外部中断/事件控制器 在STM32f103支持的60个可屏蔽中断中&#xff0c;有一些比较特殊的中断&#xff1a; 中断编号13 EXTI…...

阿里电商大整合,驶向价值竞争新航道

阿里一出手就是王炸。11月21日&#xff0c;阿里公布了最新动作&#xff1a;将国内和海外电商业务整合&#xff0c;成立新的电商事业群。这是阿里首次将所有电商业务整合到一起&#xff0c;也对电商行业未来发展有着借鉴意义。阿里为何要这么干&#xff1f;未来又将给行业带来哪…...

等保测评在云计算方面的应用讲解

等保测评&#xff08;信息安全等级保护测评&#xff09;在云计算方面的应用主要聚焦于如何满足等级保护相关要求&#xff0c;并确保云计算平台及其上运行的业务系统的安全性。以下是主要内容的讲解&#xff1a; 1. 云计算中的等保测评概述 等保测评是在我国网络安全等级保护制…...

QML TableView 实例演示 + 可能遇到的一些问题(Qt_6_5_3)

一、可能遇到的一些问题 Q1&#xff1a;如何禁用拖动&#xff1f; 在TableView下加一句代码即可&#xff1a; interactive: false 补充&#xff1a;这个属性并不专属于TableView&#xff0c;而是一个通用属性。很多Controls下的控件都可以使用&#xff0c;其主要作用就是控…...

SpringBoot(三十九)SpringBoot集成RabbitMQ实现流量削峰添谷

前边我们有具体的学习过RabbitMQ的安装和基本使用的情况。 但是呢&#xff0c;没有演示具体应用到项目中的实例。 这里使用RabbitMQ来实现流量的削峰添谷。 一&#xff1a;添加pom依赖 <!--rabbitmq-需要的 AMQP 依赖--> <dependency><groupId>org.springfr…...

性价比高可代理的油烟分离油烟机的厂家

最近跟10多个开厨电店的老板喝茶&#xff0c;一半人唉声叹气&#xff1a;去年赚的钱全压库存里了&#xff0c;3个做了十几年的老老板说&#xff0c;再找不到好产品&#xff0c;今年打算把店转了。为啥好好的店做成这样&#xff1f;说白了就是选品选错了&#xff0c;风口变了&am…...

从零构建开源语音AI交互中枢:EchoKit Server部署与调优指南

1. 项目概述&#xff1a;构建你自己的语音AI交互中枢 如果你对智能音箱、语音助手这类设备感兴趣&#xff0c;但又觉得市面上的产品要么功能封闭&#xff0c;要么隐私堪忧&#xff0c;那么今天聊的这个项目——EchoKit Server&#xff0c;可能会让你眼前一亮。简单来说&#x…...

白起杀降将卒,项羽杀降,黄巢他们有的选择吗?

杀降不是暴君的个人意志&#xff0c;而是一场场被逼到极限的“系统自保”。 白起要为40万战俘找活路&#xff0c;项羽要喂活20万张嘴并防止后院起火&#xff0c;黄巢要让自己和十几万兄弟明天不饿死。杀降本身这份“答卷”固然是反人类的&#xff0c;但那份出题人的冷酷与无情&…...

51单片机内存空间全解析:从data、xdata到far,手把手教你用Keil C51访问任意地址

51单片机内存空间全解析&#xff1a;从data、xdata到far&#xff0c;手把手教你用Keil C51访问任意地址 在嵌入式开发领域&#xff0c;51单片机因其经典架构和广泛的应用基础&#xff0c;依然是许多工程师入门的首选。然而&#xff0c;当开发者从简单的GPIO控制进阶到复杂的内存…...

5分钟快速上手:XUnity.AutoTranslator游戏实时翻译插件终极指南

5分钟快速上手&#xff1a;XUnity.AutoTranslator游戏实时翻译插件终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为语言障碍而无法畅玩海外Unity游戏吗&#xff1f;XUnity.AutoTranslator正…...

3分钟搞定TrollStore:iOS 14-16.6.1一键安装终极指南

3分钟搞定TrollStore&#xff1a;iOS 14-16.6.1一键安装终极指南 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾为在iOS设备上安装TrollStore而烦恼&#xff1…...

秋招编程面试,应届生必备的面试技巧,通过率直接翻倍

文章目录前言一、2026秋招编程面试新趋势&#xff1a;别再用老方法准备&#xff0c;踩坑就出局1.1 八股文不再是核心&#xff0c;底层理解才是硬通货1.2 代码手撕重思路轻结果&#xff0c;工程思维成加分项1.3 项目经历拒绝烂大街&#xff0c;真实落地细节把控是关键二、简历优…...

多智能体安全协调中的约束推断与CBF应用

1. 多智能体安全协调中的约束推断方法概述在分布式多智能体系统中&#xff0c;安全协调一直是个极具挑战性的问题。想象一下&#xff0c;当一群机器人在仓库中协同搬运货物时&#xff0c;每个机器人可能只知道部分环境信息&#xff08;比如某些障碍物的位置&#xff09;&#x…...

AsyncRun.vim 项目根目录管理:智能识别和高效利用

AsyncRun.vim 项目根目录管理&#xff1a;智能识别和高效利用 【免费下载链接】asyncrun.vim :rocket: Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !! 项目地址: https://gitcode.com/gh_mirrors/as/asyncrun.vim AsyncRun.vim 是…...

从零构建AI智能体编排平台:TalonOS架构解析与实战指南

1. 项目概述&#xff1a;从零构建一个自主智能体编排平台如果你正在寻找一个能将多个AI智能体像交响乐团一样组织起来&#xff0c;协同完成复杂任务的解决方案&#xff0c;那么你很可能已经接触过或听说过TalonOS。这个项目&#xff0c;或者说这个愿景&#xff0c;代表了一种全…...