linux编程mysql

使用mysql的root登入后设置

mysql -u root -p

先创建新的数据库

create database db1;

建立db数据库的用户

grant all on.* to dbuser1 identified by '123456';

退出

quit

使用新用户登入

mysql -u dbuser1 -p

use db1

create table table3 (id int primary key auto_increment, name varchar(20), age int)

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <error.h>
#include <mysql/mysql.h>

#define BUFSIZE 1024

MYSQL mysql;
MYSQL *connection;

void leselect()
{
	char sql[BUFSIZE];
	memset(sql, 0, sizeof(sql));
	strcpy(sql, "please input select SQL\n");
	write(STDOUT_FILENO, sql, strlen(sql));
	char name[BUFSIZE];
	memset(name, 0, sizeof(name));
	read(STDIN_FILENO, name, sizeof(name));
	name[strlen(name)-1] = 0;
	memset(sql, 0, sizeof(sql));
	sprintf(sql, "select * from table3 where name = '%s'",name);
	if(mysql_query(connection, sql) != 0)
	{
		printf("select failed");
	}
	MYSQL_RES *result = mysql_store_result(connection);
	MYSQL_FIELD *field;
	MYSQL_ROW row;
	int count = 0;
	while(1)
	{
		field = mysql_fetch_field(result);
		if(field == NULL)
			break;
		printf("%s\t",field->name);
		count ++;
	}
	printf("\n");
	while(1)
	{
		row = mysql_fetch_row(result);
		if( row == NULL)
			break;
		int i;
		for(i =0; i<count; i++)
		{
			printf("%s\t",(const char*)row[i]);
		}
		printf("\n");
	}
	mysql_free_result(result);

}

void insert()
{
	char sql[BUFSIZE];
	memset(sql, 0, sizeof(sql));
	strcpy(sql, "please input insert SQL is name and age\n");
	write(STDOUT_FILENO, sql, strlen(sql));
	
	char name[BUFSIZE];
	memset(name, 0, sizeof(name));
	read(STDIN_FILENO, name, sizeof(name));
	name[strlen(name)-1] = 0;
	memset(sql, 0, sizeof(sql));
	
	char age[BUFSIZE];
	memset(age, 0, sizeof(age));
	read(STDIN_FILENO, age, sizeof(age));
	age[strlen(age)-1] = 0;
	
	sprintf(sql, "insert into table3 (name,age)values('%s', '%s');",name,age);	
	printf("%s",sql);
	if(mysql_query(connection, sql) != 0)
	{
		printf("insert failed\n");
	}else
	{
		printf("insert success\n");
	}
}
void delete()
{
	char sql[BUFSIZE];
	memset(sql, 0, sizeof(sql));
	strcpy(sql, "please input delete name\n");
	write(STDOUT_FILENO, sql, strlen(sql));
	
	char name[BUFSIZE];
	memset(name, 0, sizeof(name));
	read(STDIN_FILENO, name, sizeof(name));
	name[strlen(name)-1] = 0;
	
	memset(sql, 0, sizeof(sql));
	sprintf(sql, "delete from table3 where name = '%s'",name);	
	if(mysql_query(connection, sql) != 0)
	{
		printf("success failed\n");
	}
	else
	{
		printf("delete success\n");
	}
}
void alter()
{
	char sql[BUFSIZE];
	memset(sql, 0, sizeof(sql));
	strcpy(sql, "please input update name\n");
	write(STDOUT_FILENO, sql, strlen(sql));
	
	char name[BUFSIZE];
	memset(name, 0, sizeof(name));
	read(STDIN_FILENO, name, sizeof(name));
	name[strlen(name)-1] = 0;
	
	char age[BUFSIZE];
	memset(age, 0, sizeof(age));
	read(STDIN_FILENO, age, sizeof(age));
	age[strlen(age)-1] = 0;

	memset(sql, 0, sizeof(sql));
	sprintf(sql, "update table3 set age = '%s' where name = '%s'",age,name);	
	if(mysql_query(connection, sql) != 0)
	{
		printf("update failed\n");
	}
	else
	{
		printf("update success\n");
	}
}
int main()
{	
	mysql_init(&mysql);
	connection = mysql_real_connect(&mysql, "localhost", "dbuser1", "123456", "db1", 0, 0, 0);
	if ( connection == NULL)
	{
		printf("connect failed, %s\n", mysql_error(&mysql));
		return -1;
	}
	if (  mysql_query(connection, "set names utf8") != 0)
	{
		printf("set names failed, %s\n", mysql_error(&mysql));
	}
	char buf[BUFSIZE];
	memset(buf, 0, sizeof(buf));
	strcpy(buf, "please choose\n1:insert\n2:delete\n3:alter\n4:select\n");
	write(STDOUT_FILENO, buf, strlen(buf));
	memset(buf, 0, sizeof(buf));
	read(STDIN_FILENO, buf, sizeof(buf));
	if(strncmp(buf, "4", 1) == 0)
	{	
		leselect();
	}
	if(strncmp(buf, "3", 1) == 0)
	{
		alter();
	}
	if(strncmp(buf, "2", 1) == 0)
	{
		delete();
	}
	if(strncmp(buf, "1", 1) == 0)
	{
		insert();
	}

	mysql_close(connection);
	return 0;

}
gcc -o lesql lesql.c -lmysqlclient编译


内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值