mysql字段的结构_MySQL中表字段结构和行字段结构学习

在MySQL中对C/C++编程时使用的结构体MYSQL_FIELD、MYSQL_ROWS的实际原型定义如下:

typedefstruct st_mysql_field MYSQL_FIELD;

typedefstruct st_mysql_rows MYSQL_ROWS;

typedefstruct st_mysql_field {

char *name;                 /*列名*/

char *org_name;             /*列原来的名字,就是在指定表别名前的名字*/

char *table;                /*该字段所在的表名*/

char *org_table;            /*该表被指定别名前的名字*/

char *db;                   /*列所在的数据库*/

char *catalog;        /* Catalog for table难道是表所在的目录? */

char *def;                /*应该是该字段的默认值吧,没对这个问题调试过) */

unsigned long length;       /* Width of column (create length)列的宽度*/

unsigned long max_length;   /* Max width for selected set最大宽度*/

unsigned int name_length;   /*列名的宽度*/

unsigned int org_name_length; /*原列名的宽度*/

unsigned int table_length; /*表名的宽度*/

unsigned int org_table_length; /*原表名的宽度*/

unsigned int db_length; /*数据库名长度*/

unsigned int catalog_length; /*目录名长度*/

unsigned int def_length; /*默认值的宽度*/

unsigned int flags;         /* Div flags分隔符标志 ?*/

unsigned int decimals;      /* Number of decimals in field小数点后的数*/

unsigned int charsetnr;     /* Character set字符集*/

enum enum_field_types type; /* Type of field. See mysql_com.h for types字段类型*/

void *extension; /*用于扩展*/

} MYSQL_FIELD;

typedef struct st_mysql_rows {

struct st_mysql_rows *next;              /* list of rows链表*/

MYSQL_ROW data;

unsigned long length;

} MYSQL_ROWS;

typedef char  **MYSQL_ROW;        /* return data as array of strings数组字符串数据,晕了,开始我还以为这个结构会是多么的复制,原来就是一个字符串指针呢*/

typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field当前字段的偏移,应该就是在表中字段的偏移位置了*/

typedefMYSQL_ROWS *MYSQL_ROW_OFFSET;   /* offset to current row当前行的偏移*/

在MySQL服务器和客户端之间的数据传输是基于字段进行传输的,从classProtocol

结构中可以看到声明了一个

MYSQL_FIELD*next_mysql_field;

结构。但是MySQL从查询到一个字段到从数据库内存或文件中把这个字段发送到客户端的过程是怎样的呢?这个问题应该就是从Protocol类开始看了。当然不是说说这么简单的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值