VS2019连接MySQL操作详解

第1步: 打开 mysql 的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server 8.0,确认 lib 目录和 include 目录是否存在。

在这里插入图片描述

第2步:打开 VS2019,新建一个空工程,控制台应用程序即可,注意:解决方案平台选择 X64

请添加图片描述

第3步:右击工程名,打开属性页

在这里插入图片描述

第4步:打开 VC++目录,在包含目录中,将 mysql 安装文件中的 include 文件的路径添加到这里

在这里插入图片描述
在这里插入图片描述

第5步:打开 VC++目录,在库目录中将 mysql 文件中的 lib 文件路径添加进来

在这里插入图片描述
在这里插入图片描述

第6步:在属性页的链接器中,点击“输入”,将 mysql 安装文件夹中 lib 目录下的 libmysql.lib 文件加到“附 加依赖项”中,注意,这里直接把 libmysql.lib 这个依赖名加进去即可,不要加路径。

在这里插入图片描述
在这里插入图片描述

第7步:把 mysql 安装目录里的 lib\libmysql.dll 复制到 c:\windows\system32 下

第8步:在mysql创建shool库并建立student表添加些记录,编译如下代码,启动 mysql 80, 将代码中连接数据库的用户名和密码改成自己的设定,顺利获取到 student 表中的结果即表示连接成功!(这里mysql登录密码"123456789"换成你的mysql登录密码)

#include <stdio.h> 
#include <mysql.h> // mysql 文件 

int main(void) { 
	MYSQL mysql;    //数据库句柄	 
	MYSQL_RES* res; //查询结果集 
	MYSQL_ROW row;  ![请添加图片描述](https://img-blog.csdnimg.cn/b2f3bd9f25a04ff4b19b9663cdd556d9.png)
//记录结构体
	 
	//初始化数据库 
	mysql_init(&mysql); 

	//设置字符编码
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库 
	if (mysql_real_connect(&mysql, "127.0.0.1", "root", "123456789", "school", 3306, NULL, 0) == NULL) {
		printf("错误原因: %s\n", mysql_error(&mysql));
		printf("连接失败!\n"); exit(-1); }
		//查询数据 
		int ret = mysql_query(&mysql, "select * from student;"); 
		printf("ret: %d\n", ret);

	//获取结果集 
	res = mysql_store_result(&mysql); 

	//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。 
	while (row = mysql_fetch_row(res)) { 
		 printf("%s ", row[0]); 
		 //打印 ID 
		 printf("%s ", row[1]);
		 //打印姓名 
		 printf("%s ", row[2]); 
		 //打印班级 
		 printf("%s \n", row[3]);
		 //打印性别 
	}
	//释放结果集 
	mysql_free_result(res); 
	//关闭数据库 
	mysql_close(&mysql); 
	system("pause"); 
	return 0; 
}




请添加图片描述

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
MySQL连接是将两个或多个表中的数据关联起来的一种方法。连接在数据检索中扮演着非常重要的角色,因为它允许我们从多个相关的表中检索数据。MySQL支持多种类型的连接,包括内连接、外连接等。下面分别对内连接和外连接进行详细的讲解。 1. 内连接连接也称为等值连接,它是通过比较两个或多个表中的列值来匹配行的连接。内连接只返回两个表中都存在匹配行的数据,其他行将被忽略。 内连接的语法如下: ``` SELECT 列名 FROM 表名1 INNER JOIN 表名2 ON 表名1.列名 = 表名2.列名; ``` 其中,INNER JOIN表示内连接操作。 例如,有两个表students和scores,students表中包含学生的信息,scores表中包含学生成绩信息。现在需要查询所有学生的姓名和成绩,可以使用内连接进行查询,语句如下: ``` SELECT students.name, scores.score FROM students INNER JOIN scores ON students.id = scores.id; ``` 其中,students.id与scores.id为连接条件,只有两个表中都存在该条件的数据才会进行连接。 2. 外连接连接可以分为左外连接、右外连接和全外连接。它们的区别在于返回的结果集中是否包含没有匹配的行数据。 (1)左外连接 左外连接返回左表中的所有行,以及右表中符合条件的行。如果右表中没有符合条件的行,将返回NULL值。 左外连接的语法如下: ``` SELECT 列名 FROM 表名1 LEFT JOIN 表名2 ON 表名1.列名 = 表名2.列名; ``` 其中,LEFT JOIN表示左外连接操作。 例如,有两个表students和scores,现在需要查询所有学生的姓名和成绩,包括没有成绩的学生,可以使用左外连接进行查询,语句如下: ``` SELECT students.name, scores.score FROM students LEFT JOIN scores ON students.id = scores.id; ``` 其中,students.id与scores.id为连接条件,如果scores表中没有与students表中相同id的数据,则返回NULL值。 (2)右外连接 右外连接与左外连接相反,它返回右表中的所有行,以及左表中符合条件的行。如果左表中没有符合条件的行,将返回NULL值。 右外连接的语法如下: ``` SELECT 列名 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.列名 = 表名2.列名; ``` 其中,RIGHT JOIN表示右外连接操作。 例如,有两个表students和scores,现在需要查询所有学生的姓名和成绩,包括没有姓名的成绩,可以使用右外连接进行查询,语句如下: ``` SELECT students.name, scores.score FROM students RIGHT JOIN scores ON students.id = scores.id; ``` 其中,students.id与scores.id为连接条件,如果students表中没有与scores表中相同id的数据,则返回NULL值。 (3)全外连接 全外连接可以返回左右两个表中的所有行,如果某个表中没有符合条件的行,则返回NULL值。 全外连接的语法如下: ``` SELECT 列名 FROM 表名1 FULL JOIN 表名2 ON 表名1.列名 = 表名2.列名; ``` 其中,FULL JOIN表示全外连接操作。 例如,有两个表students和scores,现在需要查询所有学生的姓名和成绩,包括没有姓名或成绩的数据,可以使用全外连接进行查询,语句如下: ``` SELECT students.name, scores.score FROM students FULL JOIN scores ON students.id = scores.id; ``` 其中,students.id与scores.id为连接条件,如果students表中没有与scores表中相同id的数据,则返回NULL值;如果scores表中没有与students表中相同id的数据,则返回NULL值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江凡心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值