首先创建一个表和插入多行数据,如下

Create database demo;
Use demo;
DROP TABLE IF EXISTS `Students`;
CREATE TABLE `Students`
(`id` int(11) NOT NULL AUTO_INCREMENT,`name` char(20) NOT NULL,`sex` char(5) DEFAULT NULL,`address` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

如下图所示:

随后插入数据:

insert  into `Students`(`id`,`name`,`sex`,`address`) values (1,'小白','男','北京市-定海区'),(2,'小黑','女','湖南省-长沙市-岳麓区'),(3,'小黄','男','江苏省-扬州市-邗江区'),(4,'小红','女','雅苗蝶-雅苗蝶');

查询结果如下图所示:

然后我们介绍下如下函数:

1.int mysql_set_character_set(MYSQL *mysql, char *csname):函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。

2.mysql_query() : 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

4.MYSQL_RES *mysql_store_result(MYSQL *mysql):对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等),必须调用mysql_store_result()或mysql_use_result() 。通过检查mysql_store_result()是否返回0,可检测查询是否没有结果集。

5.mysql_num_rows:其表示取得结果集中行的数目。此命令只对SELECT语句有效。

6.mysql_num_fields() :函数返回结果集中字段的数

7.MYSQL_ROW mysql_fetch_row(MYSQL_RES *result):检索一个结果集合的下一行。当在mysql_store_result()之后使用时,如果没有更多的行可检索时,mysql_fetch_row()返回NULL。当在mysql_use_result()之后使用时,当没有更多的行可检索时或如果出现一个错误,mysql_fetch_row()返回NULL。

8.mysql_fetch_lengths(): 函数取得一行中每个字段的内容的长度。

下面是程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
#include <mysql.h>
#pragma  comment(lib,"libmysql")int my_select(MYSQL *conn)
{const char *sql = "select * from Students";int ret = mysql_query(conn, sql);if (ret != 0){printf_s("error:%s\n", mysql_error(conn));system("pause");exit(1);}MYSQL_RES *result = mysql_store_result(conn);if (NULL == result){printf("error(%d):%s\n", mysql_errno(conn), mysql_error(conn));system("pause");exit(1);}else{my_ulonglong num_rows = mysql_num_rows(result);printf_s("got:%d row:\n", (int)num_rows);unsigned int num_fields = mysql_num_fields(result);printf_s("number of fields:%d\n", (int)num_fields);MYSQL_ROW row;char szBuffer[1024];while (row = mysql_fetch_row(result)){unsigned long *lengths = mysql_fetch_lengths(result);for (int i = 0; i < num_fields; i++){char *filed = row[i];unsigned int field_length = lengths[i];printf_s("column[%d],length[%d],data[%s]\n", i, field_length, filed ? filed : "null");}printf_s("\n");}mysql_free_result(result);}system("pause");return 0;
}int main()
{if (mysql_library_init(0, NULL, NULL)){printf("could not initialize MySQL library\n");system("pause");exit(1);}MYSQL conn;mysql_init(&conn);MYSQL *ret = mysql_real_connect(&conn, "127.0.0.1", "root", "123456","demo", 0, NULL, 0);if (!ret){printf("Failed to connect to database:  %s\n",mysql_error(&conn));system("pause");exit(1);}if (!mysql_set_character_set(&conn, "gbk")){printf("Character for the connection : %s\n",mysql_character_set_name(&conn));}my_select(&conn);mysql_close(&conn);mysql_library_end();system("pause");return 0;
}

运行结果如下:

C/C++使用Select检索MySQL中的数据相关推荐

  1. mysql中的dump,从mysql中dump数据到本地

    方法一:使用mysqldump命令,如: mysqldump -h10.90.6.237 -uf_insplat2car_r -P3306 -pxxxxxxxxx nbmp tb_tag_log -- ...

  2. 利用Ajax实现数据的同步传输,从mysql中提取数据,通过echarts可视化

    如何将mysql数据库中的方式通过echarts可视化呢,以下面这个简单的例子向大家进行演示:   步骤一:mysql的创表和插入数据,当然这些数据也可以是你通过爬虫抓取的.     步骤二:   创 ...

  3. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  4. 使用logstash将Mysql中的数据导入到ElasticSearch中(详细步骤,win_Elasticsearch)

    在之前转载的一腾讯高级工程师<一文彻底了解Logstash>对logstach有这详细的介绍,这里我只说明一下,将mysql中的数据使用logstash导入到es中,如何操作,具体步骤见下 ...

  5. MySQL_(Java)分页查询MySQL中的数据

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC创建用户名和密码校验查询方法 传送门 MySQL_(Java)使用preparestatement ...

  6. logstash增量读取mysql中的数据到es中

    在工作中,需要把mysql中的数据写入到es中进行分析: 官方文档:https://www.elastic.co/guide/en/logstash/6.3/plugins-inputs-jdbc.h ...

  7. python批量导入mysql_用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...

  8. python读取mysql中的数据_Python笔记:用Python读取MySQL中的数据

    Python处理数据分析的优势,很多人都知道(可以实现更复杂.更灵活的操作,包括数据预处理.数据可视化输出等),但是加载到Python中的数据,只是临时存储在内存中的一张虚拟表(退出之后就会被释放掉了 ...

  9. mysql中创建数据表

    从今天开始学习mysql数据库,希望以后能够记录自己学习的点点滴滴 mysql中创建数据表 1.创建一个数据库为test_db mysql> create database test_db; Q ...

最新文章

  1. pdf怎么转html?
  2. insightface mxnet训练 out of Memory
  3. 大学python用什么教材-数据结构 Python语言描述 大学教材
  4. VCS-bilibili教程篇1-Simulation Basics
  5. shell脚本实现检測回文字符串
  6. java instanceof运算符_Java instanceof 运算符的使用方法
  7. sd卡linux错误检测,android系统正在准备SD卡正在检测是否有错误且SD卡无法读取解决办法...
  8. 【HTML】输入密码访问
  9. html报错页面,多页面配置生成的html报错
  10. 下列网络设备中,能够抑制网络风暴的是( )
  11. 【Linux】系统移植篇一--linux系统移植导学
  12. 安居客头部导航栏的编写
  13. HTML5是不是解决跨平台问题的终极密钥
  14. c语言编译器怎么防止优化变量,volatile关键字的作用:防止变量被编译器优化
  15. 使用Go清理数据:第1部分
  16. Mac OS X 通知中心彻底删除网站的通知
  17. emoji表情无法显示在html,微信分享页面Andriod手机emoji表情符无法显示问题?
  18. 一只喵的西行记-4 蛋蛋的忧桑
  19. c语言中char类型转int类型
  20. XAMPP简介、安转、使用

热门文章

  1. 如果可以,我们一起留在竹山。
  2. 【飞秋教程】查找/备份/还原
  3. 充分地享受母爱的飞鸽传书
  4. 最优食品处方:14种改变你一生的食品
  5. 史上最NB程序员的自白
  6. 学不动的前端人,该如何跟上前端技术的发展
  7. 新手程序员如何找一个靠谱的公司
  8. eclipse中的java包awt_Eclipse中打包java程序
  9. ip 十进制 整型 java_IP地址转换成10进制整数(zt)
  10. requestparam的作用_Spring MVC:请解释@RequestParam和@ModelAttribute之间的区别