如何获取MySQL数据库的字段的数据类型信息? 在SQL Server和Oracle数据库中均有系统表提供这些信息,在Mysql中没有系统表,如何才能得到呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 show create table tbname show columns from tbname 在C的环境下执行show create table books;的过程如下://main.c#include<stdio.h>#include <winsock2.h>#include <mysql.h>#pragma comment (lib, "libmysql.lib")int main(){ //declare structure and variables MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; int i; int j; //initialize MYSQL structure mysql_init(&mysql); //connect to database if(!(mysql_real_connect(&mysql,"localhost","root","12142022","BookDB",0,NULL,0))) { fprintf(stderr,"Error in connection: %s\n",mysql_error(&mysql)); exit(1); } //execute query mysql_query(&mysql,"set names gbk"); if(mysql_query(&mysql,"show create table books")!=0) { fprintf(stderr,"Error in query: %s\n",mysql_error(&mysql)); exit(1); } //get result set if(!(result=mysql_store_result(&mysql))) { fprintf(stderr,"Error in reading result set : %s\n",mysql_error(&mysql)); exit(2); } else { //if valid result set //iterate over rows //for each row,iterate over fields and print contents int long numRecords=mysql_num_rows(result); int numFields=mysql_num_fields(result); //process result set/* while((row=mysql_fetch_row(result))) { fprintf(stdout,"%s - %s\n",row[0],row[1]); }*/ //clean up for(i=0;i<numRecords;i++) { row=mysql_fetch_row(result); for(j=0;j<numFields;j++) { fprintf(stdout,"%s",row[j]); (j!=(numFields-1)) ? printf(", ") : printf("\n"); } } mysql_free_result(result); } mysql_close(&mysql);}输出如下:books, CREATE TABLE `books` ( `id` varchar(8) NOT NULL default '', `name` varchar(24) NOT NULL default '', `title` varchar(96) NOT NULL default '', `price` float NOT NULL default '0', `yr` int(4) unsigned NOT NULL default '0', `description` varchar(30) NOT NULL default '', `saleAmount` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=gbkPress any key to continue我想其他的也应该差不多吧,就是用query来执行相应的命令希望对你有所帮助 To:XqYuan(),mathematician(数学家)比如,我要在delphi中实现这样一个程序:在连接好MySQL数据库后,将选定的表的结构显示出来,如何实现大家提到的desc tablename;只能在MySQL的命令行显示出来,我想知道的是在我得应用程序显示出来而不是告诉我的用户自己找个MySQL的客户端,自己去敲desc tablename;命令去查看表 你用dephi不能使用这个sql语句吗?奇怪.....这不就是普通的SQL语句吗??又不是管理命令 如何去学习 MySQL Workbench? mysql如何在一个数据库所有表都增加一个字段?多谢! 请教一个SQL,小弟不才.请教公司很多同事.都不会. 高难度sql语句挑战.搜索关键字相关性查找 到广州鲲跃做数据库工程师怎么样? 请求一SQL语句!急 为什么这个查询取不到结果? mysql在创建存储过程是一直提示的一个语法问题 mysql怪问题:不能输入中文。 从winxp客户端访问LInux下的MYSQL问题 这样的日期格式怎么统计? 连接MYSQL数据库 部分乱码问题
//main.c
#include<stdio.h>
#include <winsock2.h>
#include <mysql.h>
#pragma comment (lib, "libmysql.lib")int main()
{
//declare structure and variables
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int i;
int j;
//initialize MYSQL structure
mysql_init(&mysql); //connect to database
if(!(mysql_real_connect(&mysql,"localhost","root","12142022","BookDB",0,NULL,0)))
{
fprintf(stderr,"Error in connection: %s\n",mysql_error(&mysql));
exit(1);
} //execute query
mysql_query(&mysql,"set names gbk");
if(mysql_query(&mysql,"show create table books")!=0)
{
fprintf(stderr,"Error in query: %s\n",mysql_error(&mysql));
exit(1);
} //get result set
if(!(result=mysql_store_result(&mysql)))
{
fprintf(stderr,"Error in reading result set : %s\n",mysql_error(&mysql));
exit(2);
}
else
{
//if valid result set
//iterate over rows
//for each row,iterate over fields and print contents
int long numRecords=mysql_num_rows(result);
int numFields=mysql_num_fields(result);
//process result set
/* while((row=mysql_fetch_row(result)))
{
fprintf(stdout,"%s - %s\n",row[0],row[1]);
}
*/
//clean up
for(i=0;i<numRecords;i++)
{
row=mysql_fetch_row(result);
for(j=0;j<numFields;j++)
{
fprintf(stdout,"%s",row[j]);
(j!=(numFields-1)) ? printf(", ") : printf("\n");
}
}
mysql_free_result(result);
}
mysql_close(&mysql);}输出如下:
books, CREATE TABLE `books` (
`id` varchar(8) NOT NULL default '',
`name` varchar(24) NOT NULL default '',
`title` varchar(96) NOT NULL default '',
`price` float NOT NULL default '0',
`yr` int(4) unsigned NOT NULL default '0',
`description` varchar(30) NOT NULL default '',
`saleAmount` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
Press any key to continue我想其他的也应该差不多吧,就是用query来执行相应的命令
希望对你有所帮助
在连接好MySQL数据库后,将选定的表的结构显示出来,如何实现大家提到的desc tablename;
只能在MySQL的命令行显示出来,我想知道的是在我得应用程序显示出来而不是告诉我的用户自己找个MySQL的客户端,自己去敲desc tablename;命令去查看表