帮助小白理解,能打注释的地方都打上了,C语言就是调用函数,而Java把这些函数都封装了,这是最大的不同
喜欢就点个赞吧,收藏不迷路
数据库表
-- MySQL dump 10.13 Distrib 8.0.30, for Win64 (x86_64)
--
-- Host: 192.168.154.141 Database: school
-- ------------------------------------------------------
-- Server version 8.0.31
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `Student_info`
--
DROP TABLE IF EXISTS `Student_info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `Student_info` (
`ID` int NOT NULL,
`Name` varchar(10) NOT NULL,
`Sex` varchar(10) NOT NULL,
`Age` int NOT NULL,
`StudyDate` date DEFAULT NULL,
`Major` varchar(10) NOT NULL,
`Class` int NOT NULL,
`Address` varchar(15) DEFAULT NULL,
`Tel` varchar(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `Student_info`
--
LOCK TABLES `Student_info` WRITE;
/*!40000 ALTER TABLE `Student_info` DISABLE KEYS */;
INSERT INTO `Student_info` VALUES (10004,'pop','girl',20,NULL,'NET',2001,'','444444'),(10005,'smith','girl',21,NULL,'DL',2101,'jinan','555555'),(10006,'bob','bog',23,NULL,'PS',2301,'shanghai','123456'),(10007,'joh','boy',23,NULL,'PS',2204,'chengdu','1234566');
/*!40000 ALTER TABLE `Student_info` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-02-28 8:23:57
c语言
#include <stdio.h>
#include <netinet/in.h>
#include <unistd.h>
#include <sys/socket.h>
#include <stdlib.h>
#include "/usr/include/linux/socket.h"
#include <string.h>
#include <arpa/inet.h>
#include <time.h>
#include <netinet/tcp.h>
#include <sys/types.h>
#include <ctype.h>
#include <signal.h>
#include <stdbool.h>
#include <fcntl.h>
#include <stdarg.h>
#include </usr/local/mysql/include/mysql.h>
int i;
char query[100];
int num_fields; // 字段
MYSQL_ROW row; // 保存行记录信息
MYSQL_FIELD *fields; // 保存字段名字信息
// 打印sql结果
void show_result(MYSQL_RES *result)
{
num_fields = mysql_num_fields(result);
fields = mysql_fetch_fields(result);
// 输出数据表表头
for (i = 0; i < num_fields; i++)
{
printf("%s\t", fields[i].name);
}
printf("\n");
// 循环输出内容
while ((row = mysql_fetch_row(result)))
{
for (i = 0; i < num_fields; i++)
{
// 看是否为空
printf("%s\t", row[i] ? row[i] : "NULL");
}
printf("\n");
}
}
// 查询指定
void SelectOne(MYSQL *mysql, char SelectById[])
{
printf("======================================\n");
sprintf(query, "select Name,Sex,Age,StudyDate,Major,Class,Address,Tel from school.Student_info where ID = '%s'",SelectById);
if (mysql_query(mysql, query) == 0)
{
printf("查询成功\n");
}
else
{
printf("错误!\n");
}
MYSQL_RES *result = mysql_store_result(mysql);
if (result != NULL)
{
// 需要打印结果集
show_result(result);
mysql_free_result(result); // 释放结果集
}
mysql_close(mysql);
printf("======================================\n");
}
// 查询所有
void SelectAll(MYSQL *mysql)
{
printf("======================================\n");
sprintf(query, "SELECT * FROM school.Student_info");
if (mysql_query(mysql, query) == 0)
{
printf("查询成功\n");
}
else
{
printf("查询失败!\n");
}
MYSQL_RES *result = mysql_store_result(mysql);
if (result != NULL)
{
// 需要打印结果集
show_result(result);
mysql_free_result(result); // 释放结果集
}
mysql_close(mysql);
}
// 删除指定
void DeleteOne(MYSQL *mysql, char DeleteById[])
{
printf("======================================\n");
sprintf(query, "delete from school.Student_info where ID='%s';", DeleteById);
if (mysql_query(mysql, query))
{
printf("删除失败:%s\n", mysql_error(mysql));
}
else
{
printf("删除成功\n");
}
printf("======================================\n");
}
// 更新指定
void UpdateOne(MYSQL *mysql, char Name[], char Sex[], int Age[], char StudyDate[], char Major[], int Class[] ,char Address[],char Tel[],char UpdateById[])
{
printf("======================================\n");
sprintf(query, "update school.Student_info set Name='%s',Sex='%s',Age='%d',StudyDate='%s',Major='%s',Class='%d',Address='%s',Tel='%s' where UpdateById ='%s'", Name, Sex, Age, StudyDate, Major, Class,Address,Tel,UpdateById);
if (mysql_query(mysql, query))
{
printf("更新失败!\n");
}
else
{
printf("更新了%d条数据!\n", mysql_affected_rows(mysql));
}
printf("======================================\n");
}
// 插入记录
void InsertOne(MYSQL *mysql, char Name[], char Sex[], int Age[], char StudyDate[], char Major[], int Class[] ,char Address[],char Tel[],char InsertById[])
{
printf("======================================\n");
printf("要更新的Id:%s\n", InsertById);
sprintf(query, "INSERT INTO school.Student_info (ID,Name,Sex,Age,StudyDate,Major,Class,Address,Tel) VALUES ('%s', '%s', '%s', '%d', '%s','%s','%d','%s','%s')",InsertById,Name,Sex,Age,StudyDate,Major,Class,Address,Tel);
if (mysql_query(mysql, query))
{
printf("插入失败:%s\n", mysql_error(mysql));
}
else
{
int a = mysql_affected_rows(mysql);
printf("插入成功%d条数据!\n", mysql_affected_rows(mysql));
}
printf("======================================\n");
}
int main(int argc, const char *argv[])
{
char DeleteById[12], UpdateById[12], SelectById[12], InsertById[12], Name[7],Sex[7],Age[7],StudyDate[7],Major[7],Class[7],Address[7],Tel[7];
// 默认数据库连接
char OLD_HOST[255] = "192.168.154.141";
char OLD_USER[255] = "root";
char OLD_PASSWORD[255] = "123456";
char OLD_DBNAME[255] = "school";
// 打印输出
printf("||===========================MySQL数据库默认配置========================||\n");
printf("|| 数据库主机地址---------------------------------------%s ||\n", &OLD_HOST);
printf("|| 用户名----------------------------------------------------------%s ||\n", &OLD_USER);
printf("|| 密码----------------------------------------------------------%s ||\n", &OLD_PASSWORD);
printf("|| 数据库----------------------------------------------------------%s ||\n", &OLD_DBNAME);
printf("||======================================================================||\n");
MYSQL mysql_con;
MYSQL *mysql = mysql_init(&mysql_con);
if (mysql == NULL)
{
printf("init err! 数据库初始化错误!\n");
}
if (mysql_real_connect(mysql, OLD_HOST, OLD_USER, OLD_PASSWORD, OLD_DBNAME, 3306, NULL, 0) == NULL)
{
printf(" connect err! 默认数据库 %s 连接失败!\n", OLD_HOST);
return -1;
}
printf("%s", mysql_error(mysql));
printf("默认数据库 %s 连接测试成功!\n", OLD_HOST);
printf("||=============================MySQL数据库操作==========================||\n");
printf("|| (1)查询全表 ||\n");
printf("|| (2)增加记录 ||\n");
printf("|| (3)删除指定记录 ||\n");
printf("|| (4)更新指定记录 ||\n");
printf("|| (5)查询指定记录 ||\n");
printf("||======================================================================||\n");
int a, name;
printf("请选择操作: ");
scanf("%d", &a);
switch (a)
{
case 1:
SelectAll(mysql);
break;
case 2:
printf("请输入 ID,Name,Sex,Age,StudyDate,Major,Class,Address,Tel (按回车换行):\n");
scanf("%s %s %s %d %s %s %d %s %s", &InsertById,&Name,&Sex,&Age,&StudyDate,&Major,&Class,&Address,&Tel);
InsertOne(mysql,InsertById,Name,Sex,Age,StudyDate,Major,Class,Address,Tel);
break;
case 3:
printf("要删除的Id为:");
scanf("%s", &DeleteById);
DeleteOne(mysql, DeleteById);
break;
case 4:
printf("请输入要更新的Id:");
scanf("%s", &UpdateById);
printf("请输入Name,Sex,Age,StudyDate,Major,Class,Address,Tel (按回车换行)\n");
scanf("%s %s %d %s %s %d %s %s",&Name,&Sex,&Age,&StudyDate,&Major,&Class,&Address,&Tel);
UpdateOne(mysql, Name, Sex, Age, StudyDate, Major, Class,Address,Tel,UpdateById);
break;
case 5:
printf("要查询的Id为:");
scanf("%s", &SelectById);
SelectOne(mysql, SelectById);
break;
default:
printf("输入错误!\n");
break;
}
}
喜欢就点个赞吧,收藏不迷路