数据编程基础知识,掌握C语言,熟悉简单的SQL语句,能够实现简单的增、删、查、改即INSERT、DELETE 、SELECT、UPDATE语句,其中SELECT语句尤为重要,面试笔试中经常被问及。默认都懂的SQL语言,mysql数据库在不同的系统下包含的头文件也不同windows下加以下头文件:

#include//因为数据库通信用的socket技术

#include //加mysql.h文件所在的路径

linux下加:#include

并且在链接的时候要加-lmysqlclient选项意思是链接到libmysqlclient.so这个库文件

数据库编程的步骤:

1.初始化client;

2.client和server建立连接

3.接收发送(client向server发送SQL语句,server将执行SQL语句的结果返回给client)

4.断开连接;

一、初始化client;

通过调用函数MYSQL* mysql_init( MYSQL *Pmysql)函数来实现

MYSQL*封装好的结构指针,该函数的传入参数通常为NULL即可,返回一个指向新分配的链接句柄结构的指针,失败则返回NULL;

两种常用的方法:

' MYSQL * mysql1;

mysql1=mysql_init(NULL);

或者

MYSQL mysql1;

mysql_init(&mysql1);

'

二、建立连接

建立连接的API是:

函数原型:MYSQL * mysql_real_connect(MYSQL * Pmysql, const char * hostname,const char * usename,const char * passwd, const char * dbname,0,0,0);

使用方法:

‘MYSQL* connection;

connection = mysql_real_connect(&mysql1,“localhost”, "dbuser1", "dbuser1", "db1", 0, 0, 0);

//连接时需要那本机做实验即先连接localhost即127.0.0.1,待连接成功后再改为要连接的数据库所在服务器的IP地址,第三个参数表示用户名,第四个表示用户对应的密码,第五个参数表示使用的数据库名称。

三、连接成功后对数据库进行一系列的操作:

函数:

mysql_query(MYSQL * pmysql, const char * sql )

至少包含一条SQL语句,并且句末不必添加分号分隔符。貌似添加也没影响:

mysql_query(&mysql1, “UPDATE table1 SET name=’张三’ WHERE name=’李四’” )//执行该语句把李四修改为张三

但是这条语句直接写死在程序中,如果要进行其他操作就得重新写代码,很是不方便,于是升级一下,用户输入什么SQL语句就执行什么操作

char name1[1024];

memset(name1,0,sizeof(name1));

read(STDIN_FILENO, name1, sizeof(name1));//从屏幕上读取输入的SQL语句

name1[strlen(name1) - 1] = 0;//去除换行符的影响

char SQL[1024];

memset(SQL, 0, sizeof(SQL));

sprintf(SQL, "UPDATE table1 SET name='%s' WHERE name='%s'", name1, name);//初始化SQL数组

printf("%s\n", SQL);

if (mysql_query(&mysql1, SQL))//执行SQL语句

{

printf("INSERT error: %s", mysql_error(&mysql1));//执行失败打印错误消息;

}

注意:登录数据库后必须设置数据库的字符集否则SQL语句无法执行。

windows下设置字符集为GBK:mysql_query(connection, "SET NAMES GBK");

linux下设置的字符集为UTF8:mysql_query(connection, "SET NAMES utf8");

如果执行select查询语句,如何才能得到查询的结果并显示出来呢?

执行SELECT语句的到的查询的结果:

函数:

`MYSQL_RES * mysql _store_result(MYSQL * Pmysql执行成功则返回一个查询结果的指针,查询无果则返回NULL;

注意:使用该函数到最后一定mysql_free_result(MYSQL_RES *res)//释放相关资源

eg:MYSQL_RES * result = mysql_store_result(&mysql1);

//此函数一定要和执行SQL语句中的SELECT 语句结合使用

查看查询结果中的记录信息:

MYSQL_ROW mysql _fetch _row(MYSQL_RES *result) ;

使用:

int rowcount = mysql_affected_rows(connection);//返回执行SQL语句后有多少行(记录)。

MYSQL_ROW row ;

int i=0;

int j=0;

for(i=0;i

{

row=mysql_fetch_row(result);//显示每一行

for(j=0;j

{

printf("%s\t",row[j]);//打印第i行的第j个字段

}

printf("\n");

}

查看查询结果中的字段信息:

使用函数

`:MYSQL_FIELD_ * mysql_fetch_field(MYSQL_RES * result)//接受查询结果的地址作为参数`

int filecount = mysql_field_count(connection);//这个函数返回执行 SQL语句后有多少列

MYSQL_FIELD *filed=NULL;

int i=0;

for(i=0;i

{

filed=mysql_fetch_field(result);

printf("%s\t",filed->name);

}

//name 可以根据需要修改

name-栏位名称

table-栏位所在的table名称

max_length-栏位的最大长度

not_null- 1表示栏位不能为空(null)的

primary_key-1表示栏位是主要键(primary key)

unique_key-1表示栏位是唯一键(unique key)

multiple_key-1表示栏位非唯一键(non-unique key)

numeric-1表示栏位为数值的

blob-1表示栏位为BLOB

type-栏位的型态

unsigned-1表示栏位为无记号(unsigned)

zerofill-1表示栏位被零填满(zero-filled)

四、断开连接

直接调用函数 mysql_close(MYSQL* pmysql);

c语言sqlserver数据库头文件,Mysql的C语言API进行数据库编程相关推荐

  1. C语言 define 防止头文件重复包含 - C语言零基础入门教程

    目录 一.头文件重复包含编译器报错 1.简单的理解头文件重复包 2.老流氓的理解头文件重复包 二.通过宏定义解决头文件重复包含 1.通过 #ifndef / #define 解决头文件重复包含 2.通 ...

  2. 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )

    文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...

  3. C语言基础专题 - 头文件引用

    C语言基础专题 - 头文件引用 本文介绍了C语言中头文件的引用方法 阅读本文前推荐阅读C语言预处理 1.

  4. 单片机C语言常用的头文件与库函数

    单片机C语言常用的头文件与库函数 以下头文件与库函数,只用头文件包含以下相应头文件即可调用. 持续更新中 Intrins.h头文件 函数名 函数原型 功能 返回值 _crol_ unsigned ch ...

  5. c语言中的头文件stdlib.h的作用,C语言中你可能不熟悉的头文件(stdlib.h)

    C语言中你可能不熟悉的头文件(stdlib.h) C Standard General Utilities Library (header) C标准通用工具库(头文件) 此头文件定义了一些通用功能函数 ...

  6. c语言字符型头文件,C语言头文件大全Word版

    <C语言头文件大全Word版>由会员分享,可在线阅读,更多相关<C语言头文件大全Word版(7页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有帮助, ...

  7. c++ ofstream 文件不存在_使用C语言中的头文件有什么技巧和注意事项吗?为什么不直接包含C文件呢?...

    从事嵌入式开发多年,对于C语言使用的频率比较多,现在讲讲C语言在平时编程工作中经常出现的一些问题,就以楼主的题目为切入点分析归纳下,分享给正在使用或者学习C语言的小伙伴 C语言头文件有什么用处 在平时 ...

  8. c语言 自动包含头文件,C语言不要重复包含.h头文件和.c文件

    http://blog.csdn.net/unix21/article/details/8450235 2012 1.不要重复包含头文件 --以上出自<C语言程序设计:现代方法(第2版)> ...

  9. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)

    iOS开发 -- C语言基础12(预处理指令) 宏定义 预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源 ...

最新文章

  1. 使用System Center DPM 2012 SP1保护企业关键数据(二)备份及恢复AD
  2. 蚂蚁王旭:开源协作如何提升业界的安全?
  3. linux创建sudo用户_Linux终极指南-创建Sudo用户
  4. java 文本排序_如何使用Java按最高编号对文本文件进行排序
  5. linux wheel用户组,Linux的用户和组之详解用户和组的分类
  6. 红橙Darren视频笔记 UML图简介
  7. 【JVM】JVM的生命周期
  8. 自定义的Spinner文字居中
  9. CompositeUI Demo BankBranchWorkbench
  10. 2017-2018-2 20165218 实验五《网络编程与安全》实验报告
  11. 第二季-专题19-移植tftp客户端
  12. 如何锁定计算机桌面图标,解决win7、win10系统怎么锁定电脑桌面图标
  13. 三因子两水平doe_温故而知新 | DOE实验设计学习系列之(三):多因子DOE的魅力 (附视频)...
  14. ruoyi vue 其功能介绍
  15. IP地址和子网的划分详解
  16. android bp文件_理解Android.bp
  17. 加速汽车行业转型,云计算到底扮演了什么角色?
  18. ATF源码篇(十):docs文件夹-Components组件(9)Measured Boot Driver (MBD)
  19. java面试答题软件,Java面试题库
  20. MAC OSX打开文件提示cannot be opened because the developer cannot be verified问题的解决办法

热门文章

  1. 英文邮件:greetings
  2. python安装成功可为什么打不开_python为什么安装了运行不了?
  3. [版本发布]OpenNCC百度定制版VCAM发布
  4. 经度纬度 正则表达式
  5. SpringBoot JPA使用Specification多表查询LEFT JOIN
  6. 清华大学计算机系董教授,董占民-清华大学物理系
  7. Kubernetes学习
  8. #185. [NOIP2016 提高组] 蚯蚓题解
  9. 大气湍流退化图像复原技术研究及DSP实现
  10. angular在IE下报object doesn't support property or method matches问题,以及router-outlet切换时不删除原组件而是添加一个新组件