0、【初始化】
MYSQL* mysql_init(MYSQL *mysql);

1、【设置连接选项】
int mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg);

2、【连接】
MYSQL* mysql_real_connect(MYSQL *mysql, const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);

3、【返回上次调用的MySQL函数的错误消息】
unsigned int mysql_errno(MYSQL *mysql)

4、【关闭连接】
void mysql_close(MYSQL *sock);

5、【执行sql语句】
int mysql_query(MYSQL *mysql, const char *q)

6、【查询】
6.1 MYSQL_RES* mysql_use_result(MYSQL *mysql)
逐条进行查询,逐条将结果返回给客户端,直到结果全部返回完毕
eg:
sprintf(sql,“select * from Dcu_Sysparm”);
mysql_query(&mysql,sql);
res = mysql_use_result(&mysql)
row = mysql_fetch_row(res)

typedef struct st_mysql_res {
my_ulonglong row_count;
MYSQL_FIELD *fields;
MYSQL_DATA *data;
MYSQL_ROWS *data_cursor;
unsigned long lengths; / column lengths of current row */
MYSQL handle; / for unbuffered reads */
const struct st_mysql_methods methods;
MYSQL_ROW row; /
If unbuffered read /
MYSQL_ROW current_row; /
buffer to current row /
MEM_ROOT field_alloc;
unsigned int field_count, current_field;
my_bool eof; /
Used by mysql_fetch_row /
/
mysql_stmt_close() had to cancel this result */
my_bool unbuffered_fetch_cancelled;
void *extension;
} MYSQL_RES;
6.2 MYSQL_RES *mysql_store_result(MYSQL *mysql)

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

8、【释放结果集使用的内存】
void mysql_free_result(MYSQL_RES *result)

9、【检查连接】
int mysql_ping(MYSQL *mysql)
描述:
检查与服务端的连接是否正常。连接断开时,如果自动重新连接功能未被禁用,则尝试重新连接服务器。该函数可被客户端用来检测闲置许久以后,与服务端的连接是否关闭,如有需要,则重新连接。
返回值:
  连接正常,返回0;如有错误发生,则返回非0值。返回非0值并不意味着服务器本身关闭掉,也有可能是网络原因导致网络不通。

10、【插入】
10.1 生成sql语句
eg:sprintf(sql,"insert into 表 values(%s…),…);
10.2 检查连接
mysql_ping(&mysql)
如果连接断开,手动关闭非正常连接
mysql_close(&mysql); // 先关闭非正常连接
再次连接
mysql_real_connect
10.3 执行sql
mysql_query(&mysql,sql)

11、【删除】
11.1 生成qsl语句
eg:sprintf(sql,"delete from 表 where 条件%s,值);
11.2 检查连接
mysql_ping(&mysql)
如果连接断开,手动关闭非正常连接
mysql_close(&mysql); // 先关闭非正常连接
再次连接
mysql_real_connect
11.3 执行sql
mysql_query(&mysql,sql)

12、【查找】
12.1 生成sql语句
eg:sprintf(sql,“select * from 表 where 条件”,变量值);
12.2 执行sql,并判断是否成功
mysql_query(&mysql,sql)
12.3 获取查询结果给MYSQL_RES *res;
res = mysql_use_result(&mysql)
12.4 逐条处理
while ((row = mysql_fetch_row(res)) != NULL)
12.5 释放资源
mysql_free_result(res)

13、【更新】
13.1 生成sql语句
sprintf(sql,“update 表 set 变量=值”,值)
13.2 执行sql
mysql_query(&mysql,sql)

14、【创建表】
14.1 生成sql语句
sprintf(sql,"create table if not exists 表(变量 类型 not null primary key, 变量 类型 not null, … ) );
14.2 执行sql
mysql_query(&mysql,sql)

【数据库】MySQL的C语言接口学习相关推荐

  1. 数据库MYSQL详细教程----千锋学习笔记

    目录 目录 -.引言 1.1现有的数据存储方式有哪些? 1.2以上存储方式存在哪些缺点? 二.数据库 2.1概念 2.2数据库的分类 三.数据库管理系统 3.1概念 3.2常见数据库管理系统 四.My ...

  2. MYSQL的C 语言接口

    要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql {  NET           net;         ...

  3. 数据库Mysql的基本语言手册

    这是看过的课程内容,用他们给的笔记做记录.mysql8.0,视图软件:navicat 1.操作数据库 /*查询所有数据库标准语法:SHOW DATABASES; */ -- 查询所有数据库 SHOW ...

  4. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

  5. 数据库MYSQL学习系列一

    数据库MYSQL学习系列一 一.MYSQL数据库基础 1.1-认识MYSQL 什么是数据库 计算机处理和存储的一切信息都是数据 计算机系统中一种用于存取数据的程序 一种: 计算机系统中有很多种能够存取 ...

  6. Mysql DBA 高级运维学习之路-mysql数据库入门知识

    1.MySQL数据库介绍 MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,在将这些表放在不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样设计增加了MySQL ...

  7. 数据库mysql性能优化-学习笔记

    数据库mysql性能优化 1. 数据库设计范式 2. 常见关系数据库 3. MySQL 的版本 4. mysql存储计划 5 . mysql查询配置 和 设置配置 6 . mysql基本参数 7 .m ...

  8. 易语言外部数据库MySQL支持库Access数据库Sqlite数据应用

    语言虽然有自己的数据库, 但易数据库只是以简单的.类似表格的形式组织数据信息,是一个小型数据库管理系统.有时编程中必须使用其它数据库.易语言支持以ODBC方式和ADO方式操作外部数据库. 一.ODBC ...

  9. JSP贸易管理系统myeclipse开发mysql数据库struts编程java语言

    一.源码特点  JSP贸易管理系统 是一套完善的web设计系统,系统采用struts2框架进行开发一套源码,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库 系统主要采用B/S模 ...

最新文章

  1. 【直播】耿远昊:Pandas入门讲解(安泰第四届数据科学训练营)
  2. Ubuntu16.04默认安装了Python2.7和3.5 升级python3.5为3.6
  3. 2018-1-20:左移和右移运算以及和(无符号右移)的区别以及位运算的小题目...
  4. C#常用42个操作类
  5. 常用css样式属性大全(中文注释)
  6. decimal转换为int_“System.InvalidCastException 指定的转换无效”问题的反思和总结
  7. matlab 中一些对数组或矩阵的处理
  8. 布同:pdf自定义分割(断章)
  9. Bailian2726 采药【模拟】
  10. Linux命令详解词典高频命令(1)
  11. python大麦网抢票_抢票攻略-大麦网
  12. catalina java opts,catalina.bat中适当的位置设置JAVA_OPTS
  13. 遥感数据存储格式 ----BSQ、 BIL、BIP及相互转换
  14. 收费外贸企业邮箱的好处?外贸企业该如何选择更好的邮箱服务呢?
  15. 学校选课系统服务器繁忙,大学选课没选到怎么办
  16. 没项目实战经验?分享自学练手的软件测试项目实战+数据库+接口,部署超级简单
  17. 拉格朗日对偶问题的解释
  18. 题目 1026: [编程入门]数字逆序输出
  19. 唉,早知如此,何必当初
  20. c语言创建空顺序表的程序,C语言实现顺序表的创建与增删改查操作

热门文章

  1. Linux那些事儿 之 戏说USB(16)配置
  2. db2删除大量数据_Python 连接数据库的多种方法
  3. Udacity机器人软件工程师课程笔记(十)-ROS-Catkin-包(package)和gazebo
  4. 【汇总】ElementUI中高频次使用代码片段
  5. OpenResty中的upstream healthcheck功能沉思录
  6. ATS 4.2.3隐藏服务器名称及版本号的方法
  7. 永成科技C++笔试题
  8. Blender赛车动画制作学习教程 Learn Race Car Animation with Blender
  9. P1066 2^k进制数 NOIP 2006 提高组 第四题
  10. C# 篇基础知识11——泛型和集合