C语言编写基于mysql数据库的简单数据管理系统
来源:互联网 发布:华夏免费版服务端源码 编辑:程序博客网 时间:2024/04/29 19:30
系统环境: Ubuntu 14.04
安装mysql数据库
sudo apt-get install mysql-server mysql-client
安装mysql开发包SDK
sudo apt-get install libmysqlclient15-dev
功能:
在终端下, 通过输入不同的数字,进行数据的插入,修改,删除,查询。
在使用前,需要先在mysql中创建一个数据库,数据库中包含一个表table1,其结构为
name sex age class
删除功能:
根据输入对应的name,来删除数据库中的相应数据:
其中getInput为:
插入功能:
修改功能:根据name的值来修改数据
查询功能:输入任意的SELECT语句进行查询
主函数:
安装mysql数据库
sudo apt-get install mysql-server mysql-client
安装mysql开发包SDK
sudo apt-get install libmysqlclient15-dev
功能:
在终端下, 通过输入不同的数字,进行数据的插入,修改,删除,查询。
在使用前,需要先在mysql中创建一个数据库,数据库中包含一个表table1,其结构为
name sex age class
删除功能:
根据输入对应的name,来删除数据库中的相应数据:
void deleteName(MYSQL *mysql, MYSQL *connection){ if(NULL == mysql || NULL == connection) { printf("fucn deleteName error: (NULL == mysql || NULL == connection)\n"); return ; } char name[1024]; getInput(name, "请输入要删除的名字", sizeof(name)); //整理SQL语句 char SQL[1024]; memset(SQL, 0, sizeof(SQL)); sprintf(SQL, "delete from table1 WHERE name = '%s'", name); printf("%s\n", SQL); //执行SQL语句 if(mysql_query(connection, SQL) !=0) { printf("query error:%s\n", mysql_error(mysql)); return ; }}
其中getInput为:
int getInput(char *data, char *info, int length){ if(NULL == data || NULL == info) { printf("fucn getInput error: (NULL == data || NULL == info)\n"); return -1; } char tmp[1024]; memset(tmp, 0, sizeof(tmp)); sprintf(tmp, "%s", info); //输出提示信息,用此方法可以避免printf的缺点,不用遇到\n或输出缓冲区满了才向屏幕打印信息 write(STDOUT_FILENO, tmp, strlen(tmp)); memset(data, 0, length); read(STDIN_FILENO, data, length); //从键盘输入内容 data[strlen(data) - 1] = 0; //把输入最后一个字符\n替换为整数0,而不是字符'0' return 0;}
插入功能:
void insertData(MYSQL *mysql, MYSQL *connection){ if(NULL == mysql || NULL == connection) { printf("fucn insertData error: (NULL == mysql || NULL == connection)\n"); return ; } char SQL[1024]; //输入要插入的名字 char name[1024]; getInput(name, "请输入要插入的名字:", sizeof(name)); //输入要插入的sex char sex[1024]; getInput(sex, "请输入要插入的性别:", sizeof(sex)); //输入要插入的age char age[1024]; getInput(age, "请输入要插入的年龄:", sizeof(age)); //输入要插入的sex char class[1024]; getInput(class, "请输入要插入的班级:", sizeof(class)); memset(SQL, 0, sizeof(SQL)); sprintf(SQL, "INSERT INTO table1 (name, sex, age, class) VALUES ('%s', '%s', %s, '%s')", name, sex, age, class); printf("%s\n", SQL); //执行SQL语句 if(mysql_query(connection, SQL) !=0) { printf("query error:%s\n", mysql_error(mysql)); }}
修改功能:根据name的值来修改数据
void updateByName(MYSQL *mysql, MYSQL *connection){ if(NULL == mysql || NULL == connection) { printf("fucn updateByName error: (NULL == mysql || NULL == connection)\n"); return ; } char SQL[1024]; //输入要修改数据项的名字 char name[1024]; getInput(name, "请输入要修改内容所在的名字:", sizeof(name)); //输入要插入的sex char sex[1024]; getInput(sex, "请输入要修改的性别:", sizeof(sex)); //输入要插入的age char age[1024]; getInput(age, "请输入要修改的年龄:", sizeof(age)); //输入要插入的sex char class[1024]; getInput(class, "请输入要修改的班级:", sizeof(class)); memset(SQL, 0, sizeof(SQL)); sprintf(SQL, "UPDATE table1 SET sex = '%s', age = %s, class = '%s' WHERE name = '%s'", sex, age, class, name); printf("%s\n", SQL); //执行SQL语句 if(mysql_query(connection, SQL) !=0) { printf("query error:%s\n", mysql_error(mysql)); }}
查询功能:输入任意的SELECT语句进行查询
void selectName(MYSQL *mysql, MYSQL *connection){ if(NULL == mysql || NULL == connection) { printf("fucn selectName error: (NULL == mysql || NULL == connection)\n"); return ; } char SQL[1024]; memset(SQL, 0, sizeof(SQL)); getInput(SQL, "请输入任意SELECT语句>", sizeof(SQL)); printf("%s\n", SQL); //执行SQL语句 if(mysql_query(connection, SQL) !=0) { printf("query error :%s\n", mysql_error(mysql)); return ; } //获得查询结果 MYSQL_RES *result = mysql_store_result(connection); MYSQL_FIELD *field; //获取字段 int iFieldCount= 0; //记录有多少字段 while(1) { field = mysql_fetch_field(result); if(field == NULL) break; printf("%-15s\t", field->name); iFieldCount++; } printf("\n"); MYSQL_ROW row ; while(1) //获得具体的数据 { row= mysql_fetch_row(result); if(row ==NULL) break; for(int i=0; i< iFieldCount; i++) { printf("%-15s\t", (char *)row[i]); } printf("\n"); } mysql_free_result(result);}
主函数:
int main(int arg, char **args){ if(arg < 5) { printf("usage: mysql1 host user password database\n"); return -1; } MYSQL mysql, *connection; mysql_init(&mysql); //初始化client //连接mysql服务器 connection = mysql_real_connect(&mysql, args[1], args[2], args[3],args[4], 0, 0, 0); if(connection == NULL) { printf("connect error:%s\n", mysql_error(&mysql)); return -1; } if(mysql_query(connection, "SET NAMES utf8") !=0) { printf("设置字符集错误, %s\n", mysql_error(&mysql)); } while(1) { printf("请输入相应的数字:\n"); printf("0:退出程序\n"); printf("1:插入数据\n"); printf("2:修改数据\n"); printf("3:删除数据\n"); printf("4:查询数据\n"); char input[1024]; read(STDIN_FILENO, input, sizeof(input)); switch(input[0]) { case '0': goto End; break; case '1': insertData(&mysql, connection); break; case '2': updateByName(&mysql, connection); break; case '3': deleteName(&mysql, connection); break; case '4': selectName(&mysql, connection); break; default: continue; } } End: mysql_close(connection); //关闭连接 printf("close connection\n"); return 0;}
完整源代码以及makefiel文件:
http://download.csdn.net/detail/a572137191/9471143
0 0
- C语言编写基于mysql数据库的简单数据管理系统
- 基于c语言的简单的mysql数据库操作
- c语言编写的简单信息管理系统
- 简单的学籍管理系统(C语言编写)
- Java 基于MySQL数据库的简单学生管理系统
- 基于报表系统的的企业数据管理
- 基于空间数据库的空间数据管理
- 基于Aerospike的用户数据管理系统实践
- 基于链表的学生信息管理系统和基于MySQL的学生信息管理系统 -C语言
- C语言也能做大事;MYSQL简单的数据库操作;
- C 语言访问MySQL数据库的简单实验
- C语言简单操作MYSQL数据库的增删查找
- 用C语言编写简单的病毒
- 用C语言编写简单的病毒
- 用C语言编写简单的病毒
- C语言简单算法的编写
- C语言编写简单的一元二次方程
- C语言编写的简单计算器程序
- 改变iOS系统自带返回按钮事件
- 在数组中选择k
- LeetCode 211.Add and Search Word - Data structure design(trie树)
- 1006-贪心算法acm
- 参观百度有感
- C语言编写基于mysql数据库的简单数据管理系统
- 创建了一个自己的博客git
- tomcat监控工具
- 第三周练习-3 递归求最大公约数
- 记录成长之路一
- github 开源代码托管
- 第4周项目4(3)递归
- ns-3 models
- 优化UITableViewCell高度计算的那些事