MySQL系列教程之使用C语言来连接数据库

目录
  • 写在前面
  • 一、准备工作
    • 1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下
    • 1.2 添加 libmysql.lib
    • 1.3 添加 include目录
    • 1.4 包含头文件
    • 1.5 其他准备工作
      • 1.5.1 代码准备
      • 1.5.2 创建数据库连接
    • 1.6 选择相应方案配置 Release,解决方案平台 x64
  • 二、代码测试案例
    • 2.1 向数据库插入数据
    • 2.2 向数据库删除数据
    • 2.3 修改数据
    • 2.4 查询数据,打印出来
  • 三、使用C语言连接MySQL数据库 的测试案例代码
  • 总结

写在前面

知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~

立即安排一波使用 C语言连接 MySQL数据库的教程~

一、准备工作

1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下

首先,我们要找到刚刚开始下载的 MySQL数据库 的安装目录,打开目录,并且将 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下~

我安装MySQL的路径:C:\Program Files\MySQL\MySQL Server 5.7\lib

1.2 添加 libmysql.lib

1.3 添加 include目录

我的这个路径是:C:\Program Files\MySQL\MySQL Server 5.7\include 

来到 VS2019 页面,和上述操作一样~

右键MySQL工程,选择属性 右键,选择 C/C++,选择常规,选择 附加包含目录,同时进行编辑,将刚刚复制的 include路径 给粘贴上去~

1.4 包含头文件

接下来 在VS2019里面,先后敲出代码:

#include <WinSock.h> 和 #include <mysql.h> ,需要注意的是,两行代码的顺序不可以改变~

1.5 其他准备工作

1.5.1 代码准备

#include <iostream>
using namespace std;
#include <WinSock.h>
#include <mysql.h>

void test();

int main()
{
	cout << "main" << endl;

	test();
	getchar();
	return 0;
}

void test()
{
	printf("test\n");

	MYSQL m;        //mysql连接
	MYSQL_RES* res; //查询结果集
	MYSQL_ROW row;  //二维数组,存放数据

	//初始化数据库
	mysql_init(&m);

	//设置编码方式
	mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库
	if (mysql_real_connect(&m, "localhost", "root", "111111", "c",      3306, NULL, 0))
	{                           //主机       用户名   密码      数据库名  端口
		printf("数据库连接成功\n");
	}
	else {
		printf("数据库连接失败:%s \n", mysql_error(&m));
		//输出错误信息
	}
}

1.5.2 创建数据库连接

第一步,Win+R,输入 cmd~

第二步,输入 musql -uroot -p,回车后,输入一开始安装MySQL数据库是设置的密码,之后回车进入数据库~

第三步,开始创建一个新的数据库,并且开始建表之类的操作~

1.6 选择相应方案配置 Release,解决方案平台 x64

最终,来运行一下代码,发现已经成功了~

二、代码测试案例

在经过上述的一系列操作之后,已经可以连接上 MySQL数据库中了~

接下来我们就可以来做一些测试案例~

2.1 向数据库插入数据

此时,再插入数据之前,我们可以来看一看 上面新建的 student表 是没有任何数据的~

但是,在加入 插入数据的代码之后,运行一下,我们就会发现 多出来一条数据~

当然,改成插入多条数据也是可以的啦~

2.2 向数据库删除数据

2.3 修改数据

没修改之前:

修改之后:

2.4 查询数据,打印出来

三、使用C语言连接MySQL数据库 的测试案例代码

/*
 	//向数据库插入数据
	const char* sql = "insert into student values(2,'李四','女'),(3,'王五','男'),"
		"(4, '赵六', '女')";
	if (mysql_query(&m, sql))
	{
		printf("插入数据失败:%s \n", mysql_error(&m));
	}
	else
	{
		printf("插入数据成功\n");
	}

	//向数据库删除数据
	const char* sql_2 = "delete from student where name = '赵六'";
	if (mysql_query(&m, sql_2))
	{
		printf("删除数据失败:%s \n", mysql_error(&m));
	}
	else
	{
		printf("删除数据成功\n");
	}

	//向数据库修改数据
	const char* sql_3 = "update student set id = 5 where name = '李四'";
	if (mysql_query(&m, sql_3))
	{
		printf("修改数据失败:%s \n", mysql_error(&m));
	}
	else
	{
		printf("修改数据成功\n");
	}
*/
	//需要注意的是,在下面的设置中,所查询到的数据 与打印出来的数据要相互匹配,
	//不然就会出现乱码的
	//查询数据
	const char* sql_4 = "select id,sex,name from student where name = '张三'";
	if (mysql_query(&m, sql_4))
	{
		printf("未查到记录:%s \n", mysql_error(&m));
	}
	else
	{
		printf("查询成功 \n");
	}
	//获取查询结果集
	res = mysql_store_result(&m);
	if (res)
	{
		printf("获取到数据\n");
	}
	else
	{
		printf("未获取到数据:%s \n", mysql_error(&m));
	}
	//打印获取到的数据
	printf("id\tname\tsex\n");
	while (row = mysql_fetch_row(res))
	{
		printf("%s\t%s\t%s\n", row[0], row[1], row[2]);
	}
	//释放资源
	mysql_free_result(res);//释放结果集
	mysql_close(&m);//关闭数据库
}

使用 C语言 连接 MySQL数据库,正好可以和 Java 连接 MySQL数据库 相互映衬~

总结

到此这篇关于MySQL系列教程之使用C语言来连接数据库的文章就介绍到这了,更多相关C语言连接MySQL数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 用C语言操作MySQL数据库的通用方法

    在我们的web应用中,虽然PHP.JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,在这篇文章中能够有所体现. 先看结构体: 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for S

  • linux安装mysql和使用c语言操作数据库的方法 c语言连接mysql

    1. MySQL的安装与配置: 在Ubuntu下安装MySQL方法很简单,使用如下命令: 复制代码 代码如下: sudo apt-get install mysql-server 安装的过程中系统会提示设置root密码,此过程可以跳过,但是建议在安装时提示设置root密码的时候自行设置,免得后面设置麻烦.安装结束之后,系统会启动mysql服务,可以使用命令去查看来验证mysql服务是否已经安装成功: 复制代码 代码如下: ps -el | grep mysql 如果mysql服务没有正常的运行,

  • c语言连接mysql数据库的实现方法

    我这里也有一份网上找到的:/201205/other/C_link_mySql51.rar C连接MySql5.1所需文件.rar 附带一个不错的例子: #include <string.h> #include <stdlib.h> #include <stdio.h> #include <winsock2.h> #include <mysql/mysql.h>/*注意要包含这个头文件*/ #pragma comment(lib,"li

  • nodejs和C语言插入mysql数据库乱码问题的解决方法

    在这里记录了nodejs过程中的一些乱码情况,这里的乱码主要是由于网页的编码方式与nodejs的默认解码方式(utf8)不一致所造成的.这一次要说一下的是在C语言和nodejs与MySQL进行交互的时候出现的乱码问题. 1,由于爬虫程序在多个Docker中执行,因此我需要定期的同步每一个docker中的mysql数据到一个全局的mysql数据表中.使用nodejs进行数据同步,出现中文乱码.要知道在每一docker中的中文是不存在乱码的.原因是nodejs默认处理字符是utf8,而mysql默认

  • C语言实现访问及查询MySQL数据库的方法

    本文实例讲述了C语言实现访问及查询MySQL数据库的方法.分享给大家供大家参考,具体如下: 1.添加头文件路径(MySQL安装路径中的include路径) 2.添加库文件(直接从MySQL安装路径中copy libmysql.lib即可) 3.编程操作数据库 代码 // AccessToMySQL.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <mysql.h>

  • MySQL系列教程之使用C语言来连接数据库

    目录 写在前面 一.准备工作 1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下 1.2 添加 libmysql.lib 1.3 添加 include目录 1.4 包含头文件 1.5 其他准备工作 1.5.1 代码准备 1.5.2 创建数据库连接 1.6 选择相应方案配置 Release,解决方案平台 x64 二.代码测试案例 2.1 向数据库插入数据 2.2 向数据库删除数据 2.3 修改数据 2.4 查询数据,打印出来 三.使用C语言连接MySQL数据库

  • MySQL系列教程小白数据库基础

    目录 1.基础概念与基础命令 1)基础概念 2)基础命令 2.SQL语句的书写顺序和执行顺序 1)一个完整SQL查询语句的书写顺序 2)一个完整的SQL语句执行顺序 3)关于select和having执行顺序谁前谁后的说明 这里介绍的MySQL相关知识,并不是针对那些想学习DBA的同学,而是针对那些想转行.从事数据分析行业的同学. 下面这些知识点,是我学习MySQL数据库时,觉得有必要掌握的一些知识点. 1.基础概念与基础命令 1)基础概念 ① 数据库 按照一定数据结构,存储和管理数据的仓库.

  • MySQL系列多表连接查询92及99语法示例详解教程

    目录 1.笛卡尔积现象 2.连接查询知识点概括 1)什么是连接查询? 2)连接查询的分类 3.内连接讲解 1)等值连接:最大特点是,连接条件为等量关系. 2)sql92语法和sql99语法的区别. 3)非等值连接:最大特点是,连接条件为非等量关系. 4)自连接:最大特点是,一张表看作两张表. 4.外连接讲解 1)什么是外连接,和内连接有什么区别? 2)外连接的分类 前面两天带着大家换了一个口味,带着大家学习了pyecharts的原理和部分图形制作.今天我们继续回归带你学MySQL系列,带着大家继

  • MySQL系列理解运用union(all)与limit及exists关键字教程

    目录 1.union:可以将查询结果相加 1)union all:不能去重 2)union:可以达到去重的效果. 2.limit:分页查询全靠它 1)对limit用法的一些说明 2)案例说明 3)通用的标准分页SQL 3.exists用法:又称"相关子查询" 1)带你理解exists的执行原理 2)案例演示 3)一张图说明exists子查询的原理 1.union:可以将查询结果相加 union用于将查询结果相加,尤其是将两张毫无关系的表中的数据,拼接在一起显示的时候. 但是有一个前提条

  • MySQL系列数据库设计三范式教程示例

    目录 一.数据库设计三范式相关知识说明 1.什么是设计范式? 2.为什么要学习数据库的三个范式? 3.三范式都有哪些? 二.数据库表的经典设计方案 一对一怎么设计? 一.数据库设计三范式相关知识说明 1.什么是设计范式? 设计表的依据,按照这三个范式设计出来的表,不会出现数据的冗余. 2.为什么要学习数据库的三个范式? 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反

  • MySQL系列关于NUll值的经验总结分析教程

    目录 1.测试数据 2.null值带给我们的不便影响 3.空格.空值和null,我们应该怎么判断呢? 1)空格.空值和null的区别 2)出现了null值,我应该怎么办? 1.测试数据 create table test_null ( id int, name varchar(20), chinese int, math int, english int ) charset=utf8; insert into test_null values (1,null,80,70,68), (2,'张三'

  • js es6系列教程 - 新的类语法实战选项卡(详解)

    其实es6的面向对象很多原理和机制还是ES5的,只不过把语法改成类似php和java老牌后端语言中的面向对象语法. 一.用es6封装一个基本的类 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return this.userName; } } 是不是很向php和java中的类, 其实本质还是原型链,我们往下看就知道了 首先说下语法规则: class Person中的Person就是类名,可以自定义

  • 21分钟 MySQL 入门教程

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

  • SpringBoot系列教程JPA之基础环境搭建的方法

    JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Spring Data JPA是在 Hibernate 基础上封装的一款框架.JPA作为标准,实际上并没有说局限于某个固定的数据源,事实上mysql,mongo, solr都是ok的.接下来我们将介绍下springboot结合jpa 来实现mysql的curd以及更加复杂一点的sql支持 jpa系列教程将包含以下几块 环境搭建 基础的插入.修改.删除

  • Windows下MySQL安装教程图文详解

    MySQL安装说明MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品. MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件. MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语

随机推荐