MySQL的简单介绍
文章目录
- 数据库
- 关系型数据库
- 非关系型数据”
- 数据库的概念和用途
- MySQL数据库服务器、数据库和表的关系
- 数据库的创建和删除
- 表创建
- 表修改
- 常见的数据类型和约束
- 字符串类型
- 日期和时间类型
- PRIMARY KEY使用
- AUTO_INCREMENT使用
- UNIQUE使用
- FOREIGN KEY使用
- SQL语言基础
- SQL语言简介
- SQL分类
- SELECT语句的使用
- INSERT语句的使用
- UPDATE语句的使用
- DELETE语句的使用
- 基本查询
- WHERE子句的使用
- ORDER BY使用
- GROUP BY和HAVING子句使用
- LIMIT和OFFSET子句的使用
MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于Oracle公司。MySQL以其高性能、可靠性、扩展性和安全性而著称,广泛应用于Web开发、企业应用、数据分析等领域。
数据库
- 数据库是数据的仓库
- 与普通的数据仓库不同的是,数据库依据数据结构来组织数据,因为数据结构的存在,所以看到的数据是条理化的
- 数据库和普通文件系统的区别在与:数据库拥有数据结构,能都快速查找对应的数据
- 常说的MySQL数据库,其实就是MySQL数据库管理系统:数据库管理系统是一个软件,是数据库服务的体现
- 根据数据结构的不同,数据库分为关系型数据库和非关系型数据库
关系型数据库
- 关系型数据库是依据关系模型创建数据库
- 关系模型就是一对一,一对多,多对多等关系模型,关系模型就是存储格式是以行列组成的二维表格,所以一个关系型数据库就是由二维表之间的联系所组成的一个数据组织
- 关系型数据库可以很好的存储一些关系模型的数据,比如老师对应学生的数据(“多对多”),一本书对应多个作者(“一对多”),一个人对应一个身份证号码(“一对一”)
非关系型数据”
由于关系型太大和复杂,所以一般使用“非关系型数据”来表示其他类型的数据库
非关系型的模型比如:
- 列模型:存储的数据是一列一列,关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录
- 键值对模型:存储的数据是一个个键值对,比如name:lisi
- 文档类模型:以一个个文档来存储数据,类似于键值对
数据库的概念和用途
数据库是一个有组织的数据集合,它们被存储在计算机上以便于管理和访问。数据库的主要目的是为了存储和管理数据,同时使数据能够被高效地访问、检索和更新。
数据库的主要用途包括:
- 数据存储和管理:数据库可以帮助组织和存储大量的数据,包括结构化数据(如表格)和非结构化数据(如文本、图片和视频等)。
- 数据访问:数据库可以提供高效的数据访问方式,包括查询、过滤、排序等操作,以便用户能够轻松地检索所需的数据。
- 数据共享:多个用户可以同时访问数据库中的数据,从而实现数据的共享和协作。
- 数据安全性:数据库可以提供安全性控制,包括访问控制和数据加密等,以保护数据的机密性和完整性。
- 数据备份和恢复:数据库可以提供备份和恢复功能,以确保数据的可靠性和完整性。
- 数据分析和挖掘:数据库可以提供高级数据分析和挖掘功能,包括统计分析、数据挖掘和机器学习等,以便用户可以从数据中获得更多的价值。
MySQL数据库服务器、数据库和表的关系
数据库使用步骤:登录MySQL => 创建数据库 => 切换到指定数据库 => 创建表 => 使用表。
关系:数据库服务器 => 数据库 => 表,从左到右为一对多的关系。
数据库的创建和删除
创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name
显示数据库语句:
SHOW DATABASES
显示数据库创建语句:
SHOW CREATE DATABASE db_name
数据库删除语句:
DROP DATABASE [IF EXISTS] db_name
DEFAULT CHARSET :指定数据库采用的字符集
切换数据库
use db_name;
查看当前使用的数据库
select database();
表创建
要创建一个新的表,需要使用SQL中的CREATE TABLE语句,并指定表名、列名和数据类型等信息。以下是一个基本的创建表的语法示例:
CREATE TABLE [IF NOT EXISTS] students(id VARCHAR(255) PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,gender VARCHAR(255),clazz VARCHAR(255)
);
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据表时如果输入该字段的数据为NULL ,就会报错。
加载本地数据:LOAD DATA local INFILE ‘students.txt’ INTO TABLE students FIELDS TERMINATED BY ‘,’ ;
表修改
使用 ALTER TABLE 语句追加, 修改, 或删除列的语法。
-- 增加列
alter table students add length float;
-- 修改列类型,属性
alter table students modify length int not null;
-- 删除列
alter table students drop length;
--修改表的名称
rename table students to student;
--修改列的名称
alter table student change id sid varchar(255);
--修改表的字符集
alter table student character set utf8;
常见的数据类型和约束
数据类型
-
数值类型:INT、BIGINT、FLOAT、DOUBLE,DECIMAL等。
-
字符串类型:CHAR、VARCHAR、TEXT等。
-
日期和时间类型:DATE、DATETIME、TIMESTAMP等。
-
二进制类型:BLOB、LONGBLOB、VARBINARY等。
-
枚举类型:ENUM。
-
集合类型:SET。
约束
- 主键约束(PRIMARY KEY):用于唯一标识表中的每一行数据,通常使用整数类型的列。
- 唯一约束(UNIQUE):保证列中的所有值都是唯一的,可以包含空值。
- 外键约束(FOREIGN KEY):用于定义列与其他表的关系,保证引用完整性。
- 非空约束(NOT NULL):确保列中不包含空值。
- 默认值约束(DEFAULT ):在插入新行时,如果没有指定列的值,则使用默认值。
- 检查约束(CHECK):用于确保列中的值满足特定的条件,可以使用各种表达式和运算符来定义。
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
字符串类型 主要是:varchar和char, UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR
示例:
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,password VARCHAR(100) NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,age INT CHECK(age >= 18),address TEXT,role ENUM('admin', 'user') DEFAULT 'user'
);
这个语句将创建一个名为users的表,包含多个列和约束。其中id列是主键,name列是非空字符串,email列是唯一的,password列是非空字符串,created_at列是日期时间类型,updated_at列是日期时间类型,但在更新时会自动更新,age列使用检查约束以确保其值大于等于18,address列是文本类型,role列是枚举类型,且默认值为’user’。
PRIMARY KEY使用
PRIMARY KEY 是一列或一组列,其值唯一标识表中的每一行。一个表只能有一个PRIMARY KEY。在表创建时,可以指定其中的一列为主键,也可以使用多列来组合作为主键。对于多列组合主键,它们的值的组合必须是唯一的。
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT
);
AUTO_INCREMENT使用
AUTO_INCREMENT是一种MySQL特有的属性,它允许一个整数列自动增长,每次插入新行时自动递增。这通常用于为表创建一个唯一的、自动生成的数字标识符。必须将AUTO_INCREMENT属性与INTEGER数据类型一起使用,通常是使用INT或BIGINT数据类型。
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50)
);
在上面的代码中,每次插入一行时,MySQL将自动为id列生成一个新的唯一值,而不需要手动为该列指定一个值。这使得插入新行时更加方便,同时也确保每个行都有一个唯一的标识符。
UNIQUE使用
假设有一个“学生”数据表,其中包含学生ID、姓名和电子邮件地址。为了确保每个学生的电子邮件地址是唯一的,可以在“电子邮件地址”列上创建UNIQUE约束。
CREATE TABLE students (student_id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE
);
在上面的代码中,我们创建了一个名为“students”的数据表,并在“email”列上创建了一个UNIQUE约束。这将确保每个学生的电子邮件地址是唯一的。
FOREIGN KEY使用
假设有一个“订单”数据表和一个“产品”数据表,其中“订单”表包含订单ID、订单日期和产品ID,而“产品”表包含产品ID、产品名称和产品价格。为了确保订单中的每个产品ID都是有效的,可以在“订单”表中为“产品ID”列创建FOREIGN KEY约束,该约束参照“产品”表中的“产品ID”列。
CREATE TABLE products (product_id INT PRIMARY KEY,product_name VARCHAR(50) NOT NULL,price DECIMAL(8, 2) NOT NULL
);CREATE TABLE orders (order_id INT PRIMARY KEY,order_date DATE NOT NULL,product_id INT,FOREIGN KEY (product_id) REFERENCES products(product_id)
);
在上面的代码中,我们创建了一个名为“products”的数据表和一个名为“orders”的数据表,并在“orders”表中为“product_id”列创建了一个FOREIGN KEY约束。这将确保订单中的每个产品ID都是有效的,并且参照了“products”表中的产品ID列。
SQL语言基础
SQL(Structured Query Language)是一种标准化的关系型数据库管理系统,主要用于管理和查询数据库中的数据。
SQL语言简介
Structured Query Language, 结构化查询语言
非过程性语言
为加强SQL的语言能力,各厂商增强了过程性语言的特征
如Oracle的PL/SQL 过程性处理能力
SQL Server、Sybase的T-SQL
SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能
SQL分类
DDL
- 数据定义语言 - Data Definition Language
- 用来定义数据库的对象,如数据表、视图、索引等
DML
- 数据处理语言 - Data Manipulation Language
- 在数据库表中更新,增加和删除记录
- 如 update, insert, delete
DCL
- 数据控制语言 – Data Control Language
- 指用于设置用户权限和控制事务语句
- 如grant,revoke,if…else,while,begin transaction
DQL
- 数据查询语言 – Data Query Language
SELECT语句的使用
SELECT语法是一种用于查询数据库中数据的SQL语句。其基本语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition;
其中,SELECT关键字用于指定要查询的列,可以使用*代表所有列;FROM关键字用于指定要查询的表;WHERE关键字用于指定查询的条件。
select * from student where sex=’男’;
INSERT语句的使用
INSERT语句用于向数据库中插入新的数据行。其基本语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
其中,table_name是要插入数据的表名,column1、column2等是表中的列名,value1、value2等是要插入的值。
UPDATE语句的使用
UPDATE语句用于修改数据库中已有的数据行。其基本语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE some_column = some_value;
其中,table_name是要更新数据的表名,column1、column2等是要修改的列名,value1、value2等是要修改的值,WHERE子句是用于指定要更新的行的条件。
DELETE语句的使用
DELETE语句用于删除数据库中的数据行。其基本语法如下:
DELETE FROM table_name
WHERE some_column = some_value;
其中,table_name是要删除数据的表名,WHERE子句是用于指定要删除的行的条件。
注意:如果不指定条件相当于删除表中所有数据
基本查询
基本查询是SQL中最常用的操作之一,它允许用户从数据库表中检索数据。这些查询通常使用SELECT语句来执行。
WHERE子句的使用
模糊搜索
WHERE子句还可以使用LIKE运算符进行模糊搜索。例如:
SELECT * FROM students WHERE clazz like ‘文科%’
返回名字以字母“文科”开头的所有学生。
select * from students where clazz in ('文科一班','文科二班','文科三班');
返回名字以字母”文科一班’,‘文科二班’,'文科三班’的学生。
--BETWEEN AND
select * from students where age BETWEEN 22 AND 24;
返回年龄在22到24的学生
ORDER BY使用
ORDER BY子句用于对查询结果按照一个或多个列进行排序。它接受一个或多个列名或表达式作为参数,并可指定每个列的排序方式(升序或降序)。语法如下:
--ASC:升序,DESC:降序
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...
GROUP BY和HAVING子句使用
GROUP BY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合计算(如COUNT、SUM、AVG等)。语法如下:
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
GROUP BY column1, column2, ...
HAVING子句用于对分组后的结果进行过滤,只返回符合条件的分组。它接受一个或多个聚合函数作为参数,并可指定每个函数的过滤条件。语法如下:
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
GROUP BY column1, column2, ...
HAVING condition;
LIMIT和OFFSET子句的使用
LIMIT用于限制查询结果集的行数。其语法如下:
SELECT column1, column2, ...
FROM table_name
LIMIT number;
其中,number是你想要返回的行数。
OFFSET用于指定查询结果集的偏移量。其语法如下:
SELECT column1, column2, ...
FROM table_name
LIMIT number OFFSET offset;
其中,number是你想要返回的行数,offset是从查询结果集的起始位置偏移的行数。
相关文章:

MySQL的简单介绍
文章目录 数据库关系型数据库非关系型数据”数据库的概念和用途MySQL数据库服务器、数据库和表的关系数据库的创建和删除表创建表修改常见的数据类型和约束字符串类型日期和时间类型PRIMARY KEY使用AUTO_INCREMENT使用UNIQUE使用FOREIGN KEY使用 SQL语言基础SQL语言简介SQL分类…...

leetcode 116.填充每个节点的下一个右侧结点指针
1.题目要求: 给定一个二叉树:struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。初始状态下,所有 ne…...

『 Linux 』网络基础
文章目录 协议分层OSI 七层模型TCP/IP 四层(五层)模型网络协议栈与操作系统的联系报文TCP/IP 通讯过程以太网通信的过程以太网的数据碰撞 协议分层 协议分层是计算机网络中奖网络协议进行组织和管理的方法; 通过将网络通信过程分成多个层次,每个层次负责特定的功能从而简化网络…...

Python酷库之旅-第三方库Pandas(070)
目录 一、用法精讲 281、pandas.Series.dt.daysinmonth属性 281-1、语法 281-2、参数 281-3、功能 281-4、返回值 281-5、说明 281-6、用法 281-6-1、数据准备 281-6-2、代码示例 281-6-3、结果输出 282、pandas.Series.dt.tz属性 282-1、语法 282-2、参数 282-…...

第一篇Linux介绍
目录 1、操作系统 2、Windows和Linux操作系统的区别 3、 Linux 的发行版本 4、 linux 分支 5、 Linux 的含义 6、Linux 特点 1、操作系统 常见操作系统有:Windows、MacOS、Unix/Linux。 类 UNIX Windows:其是微软公司研发的收费操作系统ÿ…...
在Windows编程中,MFC\C++中OnCopyData如何传递基础类型数据?
在C中,OnCopyData 并不是一个标准的C库或框架中的成员函数,它更常见于Windows编程中,特别是使用Win32 API或MFC(Microsoft Foundation Classes)时。OnCopyData 是一个在MFC应用程序中常用于处理来自其他应用程序的WM_C…...

10款超好用的图纸加密软件推荐,2024企业常用图纸加密软件分享
在现代企业中,设计图纸和敏感数据的安全性至关重要。一旦图纸泄露,可能会对企业造成不可估量的损失。因此,选择一款高效、可靠的图纸加密软件显得尤为重要。 1. 安秉图纸加密软件 安秉图纸加密软件是一款专为保护工程图纸和设计文件安全的软…...

BUUCTF [安洵杯 2019]easy_serialize_php 1
打开题目,看到一串php代码,试着代码审计一下,看一下有用信息 可以看出是通过$_SESSION[img]来读取文件 extract可以将数组中的变量导入当前变量表 也就是说我们可以伪造$_SESSION 数组中的所有数据 这里传递一个参数fphpinfo 先用hackbar进…...
前端面试宝典【CSS篇】【5】
在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…...
stem32江科大自学笔记
江科大B站教程连接:【STM32入门教程-2023版 细致讲解 中文字幕】 系列文章目录 提示:收集stem32江科大自学笔记,方便自己和他人查看 视频对应目录STM32入门教程P1-3 [1-2]&[2-1]1.STM32简介、系统介绍、软件安装P4 [2-2]2.基于标准库(库…...

C++-类与对象基础
一,类的定义 1.1类定义格式 class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为mian类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者…...

嵌入式day20
feof: 检测文件是否到达结尾 ferroe: 检测文件是否发生错误 标准IO之文件定位 fseek() SEEK_END 指向最后一个字节的后一个,继续加,写文件,会将文件扩大 ftell() 获取…...

UE4 SLUA IOS打包报错解决办法
IOS打包报错:Fatal error "lua.h" file not found : SLua Unreal 在IOS远程打包编译的时候 Exteral没有copy过去,导致lua.h文件报错找不到,看了网上也没有写解决办法 错误信息截图: github上也有很多遇到改…...
SpringDI(依赖注入) 以及SpringIOC容器对Bean管理
一、SpringDI(依赖注入) 1.DI依赖注入 1.1 Spring DI的理解 关键字:名词解释 DI( Dependecy Inject,中文释义:依赖注入)是对Ioc概念的不同角度的描述,是指应用程序在运行时,每一个bean对象都依赖IoC 容器…...

伯克利Linux系统管理: 脚本编写学习 课堂与实验(系统简洁保姆级学习)
Linux系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 第二章(上) Vim课堂与实验 文章目录 Linux系列文章目录一、前言二、学习内容:2.1 上课内容2.1.1 为什么要学习脚本编写?2.1.2 Bash编程语言2.1.3 SheBang2.…...

探索腾讯云AI代码助手的效能与实用性
前言开发环境配置项目实例应用一:功能介绍二:项目测试FFmpeg二次开发SDL应用加密播放器 帮助提升建议结语 前言 腾讯云的AI代码助手是一款强大的编码辅助工具,利用混元代码大模型技术,提供技术对话、代码补全、代码诊断和优化…...

清华大学终于把Python整理成了《漫画书》
前言 随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?小编这里整理了一套python编程零基础自学教程,清华大佬196小时讲完的,全程干货无废…...

有关Linux操作系统中僵尸进程与孤儿进程的理解
目录 一、僵尸进程(僵死状态)1.概念2.进程PID与退出码3.僵尸进程举例4.僵尸进程的危害5.僵尸进程的解决方案 二、孤儿进程1.概念2.特点3.孤儿进程解决僵尸进程 一、僵尸进程(僵死状态) 1.概念 僵死状态形象点说有点像是没死透的…...

Go语言实现依赖注入
文章目录 前言依赖注入是什么依赖注入的好处是什么结构图应用程序上下文接口上下文管理器暴露的功能使用示例最后 前言 你好,我是醉墨居士,欢迎来到我的博客,今天带领大伙使用Go语言实现依赖自动注入,我们不会使用其它的第三方库…...
不仅能防沉迷游戏的防沉迷软件(Python)
介绍 一个有那么一点功能但是又不太保险的防沉迷工具 我脑子进水了才会写这玩意儿 为了变强,我不择手段(笑出zhu jiao 代码 好像没什么用的设定界面 # -*- coding: utf-8 -*- # Environment PyCharm # File_name login |User Pfolg # 2024/…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...