0

0

MySQL怎样使用条件查询 WHERE子句的多种用法演示

看不見的法師

看不見的法師

发布时间:2025-08-05 12:36:02

|

313人浏览过

|

来源于php中文网

原创

mysql中使用where子句进行条件查询的核心是通过精确条件筛选数据行,其主要用法包括:1. 使用基本比较运算符(如=、>、ain分析执行计划,并注意防范sql注入,推荐使用参数化查询、输入验证、最小权限原则等安全措施。此外,可在where中使用case语句实现多条件分支判断,提升查询灵活性,但需注意其对性能的影响。掌握这些方法可有效提升数据查询效率与安全性。

MySQL怎样使用条件查询 WHERE子句的多种用法演示

MySQL中使用WHERE子句进行条件查询,核心在于精确筛选出符合特定标准的数据行。它允许你基于一个或多个条件过滤数据,是数据分析和报表生成的基础。

WHERE子句的多样用法演示:

条件查询是数据库操作中最基础,也是最重要的组成部分之一。在MySQL中,

WHERE
子句提供了强大的过滤功能,允许我们根据指定的条件检索数据。下面,我们深入探讨
WHERE
子句的多种用法,并结合实际案例进行演示。

1. 基本比较运算符:等于、不等于、大于、小于

最常见的用法是使用比较运算符。例如,我们想找出

employees
表中所有
salary
大于50000的员工:

SELECT * FROM employees WHERE salary > 50000;

类似地,我们可以使用

=
!=
<
>=
<=
等运算符进行精确匹配或范围查询。

2. 范围查询:BETWEEN AND

BETWEEN AND
允许我们定义一个值的范围。比如,要查找
employees
表中
salary
在60000到80000之间的员工:

SELECT * FROM employees WHERE salary BETWEEN 60000 AND 80000;

3. 集合查询:IN 和 NOT IN

IN
运算符用于判断一个值是否在一个给定的集合中。例如,找出
department_id
为10、20或30的员工:

SELECT * FROM employees WHERE department_id IN (10, 20, 30);

NOT IN
则相反,用于排除集合中的值。

4. 模糊查询:LIKE

LIKE
运算符用于模糊匹配字符串。它通常与通配符
%
(匹配任意字符)和
_
(匹配单个字符)一起使用。比如,查找所有名字以"A"开头的员工:

SELECT * FROM employees WHERE first_name LIKE 'A%';

要查找名字中包含"an"的员工:

SELECT * FROM employees WHERE first_name LIKE '%an%';

5. 空值查询:IS NULL 和 IS NOT NULL

由于

NULL
表示未知或缺失的值,所以不能直接使用
=
!=
来判断。我们需要使用
IS NULL
IS NOT NULL
。例如,查找所有
commission_pct
为空的员工:

SELECT * FROM employees WHERE commission_pct IS NULL;

6. 逻辑运算符:AND、OR、NOT

可以使用

AND
OR
NOT
组合多个条件。例如,查找
department_id
为10,且
salary
大于60000的员工:

SELECT * FROM employees WHERE department_id = 10 AND salary > 60000;

查找

department_id
为10或
salary
大于60000的员工:

SELECT * FROM employees WHERE department_id = 10 OR salary > 60000;

7. 子查询:在WHERE子句中使用SELECT语句

WHERE
子句中可以使用子查询,这允许我们基于另一个查询的结果来过滤数据。例如,查找所有
salary
高于平均
salary
的员工:

SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

8. EXISTS 和 NOT EXISTS

EXISTS
用于判断子查询是否返回任何行。如果子查询返回至少一行,则
EXISTS
为真。例如,查找至少有一个员工的部门:

SELECT * FROM departments WHERE EXISTS (SELECT 1 FROM employees WHERE employees.department_id = departments.department_id);

9. 结合函数使用

WHERE
子句可以与MySQL的内置函数结合使用,以实现更复杂的过滤。例如,使用
YEAR()
函数查找所有在2000年之后入职的员工:

SELECT * FROM employees WHERE YEAR(hire_date) > 2000;

实际案例:复杂条件查询

假设我们需要查找

employees
表中,
department_id
为50或80,且
salary
在50000到70000之间,且
commission_pct
不为空的员工。

SELECT *
FROM employees
WHERE (department_id = 50 OR department_id = 80)
  AND salary BETWEEN 50000 AND 70000
  AND commission_pct IS NOT NULL;

通过灵活运用

WHERE
子句,我们可以精确地从数据库中提取所需的数据,为数据分析、报表生成和业务决策提供支持。掌握这些用法,是成为一名合格的MySQL开发者的基础。

MySQL WHERE子句的性能优化技巧有哪些?

优化

WHERE
子句的性能,主要围绕索引的使用和查询条件的编写。以下是一些关键技巧:

  1. 利用索引:

    • 确保相关列已索引:
      WHERE
      子句中常用的列应建立索引。例如,如果经常根据
      department_id
      进行查询,就应该在
      department_id
      列上创建索引。
    • 避免在索引列上使用函数或计算: 在索引列上使用函数(如
      YEAR(hire_date)
      )会导致索引失效,应尽量避免。如果必须使用函数,考虑创建函数索引(MySQL 5.7及以上版本支持)。
    • 复合索引的顺序: 如果使用复合索引,
      WHERE
      子句中的条件应尽可能匹配索引的顺序。例如,如果有一个
      (department_id, salary)
      的复合索引,那么
      WHERE department_id = 10 AND salary > 50000
      会比
      WHERE salary > 50000 AND department_id = 10
      更有效率。
  2. 优化查询条件:

    • 避免
      OR
      条件:
      OR
      条件通常会导致全表扫描,效率较低。可以考虑使用
      UNION
      IN
      来替代。例如,
      WHERE department_id = 10 OR department_id = 20
      可以改写为
      WHERE department_id IN (10, 20)
    • 避免
      NOT IN
      !=
      NOT IN
      !=
      也可能导致全表扫描。可以考虑使用
      LEFT JOIN
      或子查询来替代。
    • *使用
      EXISTS
      代替`COUNT(
      )
      :**  如果只需要判断是否存在满足条件的记录,使用
      EXISTS
      COUNT(*)`更有效率。
    • 缩小查询范围: 尽量使用范围更窄的条件。例如,
      WHERE date BETWEEN '2023-01-01' AND '2023-01-31'
      WHERE date >= '2023-01-01'
      更有效率。
    • 避免隐式类型转换 确保
      WHERE
      子句中的数据类型与列的数据类型一致,避免MySQL进行隐式类型转换,这会导致索引失效。
  3. 使用

    EXPLAIN
    分析查询:

    • 使用
      EXPLAIN
      命令分析查询的执行计划,查看是否使用了索引,以及扫描的行数。根据
      EXPLAIN
      的结果,可以调整索引和查询条件,以提高查询效率。
  4. 考虑数据量和硬件:

    • 数据量: 对于小表,全表扫描可能比使用索引更快。
    • 硬件: 硬件性能也会影响查询效率。例如,使用SSD硬盘可以显著提高查询速度。
  5. 查询重写:

  • 提前过滤: 如果可能,在连接操作之前先对单个表进行过滤,减少连接的数据量。
  • 子查询优化: 将某些子查询转换为连接操作,特别是当子查询返回大量数据时。

实际案例:索引优化

假设

employees
表有一个
hire_date
列,并且经常需要根据
hire_date
进行范围查询。如果
hire_date
列没有索引,可以创建一个索引:

CREATE INDEX idx_hire_date ON employees (hire_date);

然后,使用

EXPLAIN
分析查询:

EXPLAIN SELECT * FROM employees WHERE hire_date BETWEEN '2022-01-01' AND '2022-12-31';

如果

EXPLAIN
结果显示使用了
idx_hire_date
索引,并且扫描的行数较少,说明索引优化有效。

通过以上技巧,可以显著提高

WHERE
子句的查询效率,从而提升整个数据库的性能。但需要注意的是,索引并非越多越好,过多的索引会增加写操作的负担,因此需要根据实际情况进行权衡。

如何在WHERE子句中使用子查询和连接查询?

WHERE
子句中使用子查询和连接查询,可以实现更复杂的条件过滤,从不同的表或同一张表中提取数据,并将其作为筛选条件。

1. 子查询:

子查询是指嵌套在另一个查询中的查询。在

WHERE
子句中使用子查询,可以将子查询的结果作为条件来过滤主查询的数据。

  • 标量子查询: 返回单个值的子查询。例如,查找所有

    salary
    高于平均
    salary
    的员工:

    SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
  • 列子查询: 返回一列值的子查询。通常与

    IN
    NOT IN
    EXISTS
    NOT EXISTS
    等运算符一起使用。例如,查找所有
    department_id
    departments
    表中存在的员工:

    SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments);

    或者,查找所有

    department_id
    不在
    departments
    表中存在的员工:

    SELECT * FROM employees WHERE department_id NOT IN (SELECT department_id FROM departments);
  • 行子查询: 返回一行的子查询。通常用于比较多个列的值。例如:

    SELECT * FROM employees WHERE (department_id, salary) = (SELECT department_id, MAX(salary) FROM employees GROUP BY department_id);
  • EXISTS
    NOT EXISTS
    子查询:
    用于判断子查询是否返回任何行。例如,查找至少有一个员工的部门:

    SELECT * FROM departments WHERE EXISTS (SELECT 1 FROM employees WHERE employees.department_id = departments.department_id);

2. 连接查询:

连接查询是将多个表连接在一起,然后根据连接条件进行过滤。在

WHERE
子句中使用连接查询,可以将连接的结果作为条件来过滤数据。

  • INNER JOIN
    返回两个表中满足连接条件的记录。例如,查找所有
    employee
    first_name
    和对应的
    department_name
    ,并且只返回有
    department
    employee

    SELECT e.first_name, d.department_name
    FROM employees e
    INNER JOIN departments d ON e.department_id = d.department_id
    WHERE d.location_id = 1700;
  • LEFT JOIN
    返回左表的所有记录,以及右表中满足连接条件的记录。如果右表中没有满足条件的记录,则返回
    NULL
    。例如,查找所有
    employee
    first_name
    和对应的
    department_name
    ,并且返回所有的
    employee
    ,即使他们没有
    department

    SELECT e.first_name, d.department_name
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.department_id
    WHERE d.location_id = 1700 OR d.location_id IS NULL;
  • RIGHT JOIN
    返回右表的所有记录,以及左表中满足连接条件的记录。如果左表中没有满足条件的记录,则返回
    NULL

  • FULL JOIN
    返回左表和右表的所有记录。如果左表中没有满足条件的记录,则右表返回
    NULL
    ;如果右表中没有满足条件的记录,则左表返回
    NULL
    。MySQL本身不支持
    FULL JOIN
    ,但可以通过
    UNION
    来实现:

    SELECT e.first_name, d.department_name
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.department_id
    UNION
    SELECT e.first_name, d.department_name
    FROM employees e
    RIGHT JOIN departments d ON e.department_id = d.department_id
    WHERE e.department_id IS NULL;

实际案例:复杂条件查询

假设我们需要查找所有

salary
高于其所在
department
的平均
salary
的员工,并且
department
location_id
为1700。

SELECT e.*
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE e.salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id)
  AND d.location_id = 1700;

这个查询首先使用

JOIN
employees
表和
departments
表连接在一起,然后在
WHERE
子句中使用子查询来计算每个
department
的平均
salary
,并将
employee
salary
与该平均
salary
进行比较。同时,还使用
AND
条件来限制
department
location_id
为1700。

Video Ocean
Video Ocean

人人皆导演,让视频创作变得轻松自如

下载

通过灵活运用子查询和连接查询,我们可以实现非常复杂的条件过滤,从多个表中提取相关数据,并进行组合和比较。这对于数据分析、报表生成和业务决策非常有用。需要注意的是,复杂的查询可能会影响性能,因此需要进行优化,例如使用索引、避免全表扫描等。

MySQL WHERE子句中的安全问题,如何防范SQL注入?

SQL注入是Web应用程序中常见的安全漏洞,它允许攻击者通过在输入字段中插入恶意的SQL代码来操纵数据库查询。

WHERE
子句是SQL注入攻击的常见目标,因为攻击者可以通过修改
WHERE
子句中的条件来绕过身份验证、访问敏感数据或执行恶意操作。

SQL注入攻击原理:

攻击者通过在用户可控的输入点(例如,表单字段、URL参数等)中注入恶意的SQL代码,这些代码会被应用程序拼接成SQL查询语句,并发送给数据库执行。如果应用程序没有对输入进行充分的验证和过滤,攻击者就可以利用这些注入的SQL代码来执行未经授权的操作。

防范SQL注入的措施:

  1. 使用参数化查询(Prepared Statements):

    参数化查询是防范SQL注入的最有效方法。它将SQL查询语句和参数分开处理,数据库会先编译SQL语句,然后再将参数传递给数据库。这样可以防止攻击者通过注入SQL代码来修改查询语句的结构。

    • 原理: 参数化查询使用占位符(例如,

      ?
      :name
      )来代替SQL语句中的变量。在执行查询时,将实际的参数值传递给占位符。数据库会将这些参数值视为数据,而不是SQL代码,从而防止SQL注入。

    • 示例(PHP):

      $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
      $stmt->execute([$username, $password]);
      $user = $stmt->fetch();
    • 优势:

      • 安全性: 参数化查询可以有效地防止SQL注入攻击。
      • 性能: 参数化查询可以提高查询性能,因为数据库可以缓存编译后的SQL语句。
      • 可读性: 参数化查询可以提高代码的可读性,因为SQL语句和参数是分开的。
  2. 输入验证和过滤:

    对所有用户输入进行严格的验证和过滤,确保输入的数据符合预期的格式和类型。

    • 白名单: 只允许输入白名单中的字符或模式。

    • 黑名单: 禁止输入黑名单中的字符或模式(例如,

      '
      ,
      "
      ,
      --
      ,
      /*
      ,
      */
      ,
      UNION
      ,
      SELECT
      等)。

    • 转义特殊字符: 使用数据库提供的转义函数(例如,

      mysqli_real_escape_string()
      )来转义SQL语句中的特殊字符。

    • 示例(PHP):

      $username = mysqli_real_escape_string($conn, $_POST['username']);
      $password = mysqli_real_escape_string($conn, $_POST['password']);
    • 注意事项:

      • 输入验证和过滤只能作为辅助手段,不能完全依赖。
      • 应该在服务器端进行输入验证和过滤,而不是在客户端。
      • 应该对所有用户输入进行验证和过滤,包括表单字段、URL参数、Cookie等。
  3. 最小权限原则:

    为数据库用户分配最小的权限,只允许用户执行必要的操作。

    • 原理: 如果攻击者成功注入了SQL代码,但数据库用户没有执行该操作的权限,攻击就会失败。

    • 示例:

      • 不要使用
        root
        用户连接数据库。
      • 为每个应用程序创建单独的数据库用户,并分配必要的权限。
      • 限制数据库用户的权限,例如只允许
        SELECT
        INSERT
        操作。
  4. 定期更新数据库和应用程序:

    及时安装数据库和应用程序的安全补丁,修复已知的安全漏洞。

  5. 使用Web应用程序防火墙(WAF):

    WAF可以检测和阻止SQL注入攻击。

SQL注入示例和防范:

假设有一个登录页面,用户需要输入用户名和密码。应用程序使用以下SQL查询语句来验证用户:

SELECT * FROM users WHERE username = '$username' AND password = '$password';

如果攻击者在

username
字段中输入以下内容:

' OR '1'='1

那么SQL查询语句会变成:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '$password';

由于

'1'='1'
永远为真,攻击者就可以绕过身份验证,直接登录系统。

使用参数化查询防范:

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->execute([$username, $password]);
$user = $stmt->fetch();

使用参数化查询后,攻击者输入的

' OR '1'='1'
会被视为字符串,而不是SQL代码,从而防止SQL注入。

总结:

防范SQL注入需要多方面的措施,其中最重要的是使用参数化查询。同时,还需要进行输入验证和过滤、遵循最小权限原则、定期更新数据库和应用程序,以及使用WAF等安全工具。只有综合运用这些措施,才能有效地保护数据库的安全。

如何使用MySQL的CASE语句在WHERE子句中进行条件判断?

CASE
语句在MySQL中是一种强大的控制流工具,允许你在SQL查询中执行条件判断,并根据不同的条件返回不同的值。在
WHERE
子句中使用
CASE
语句,可以实现更灵活的条件过滤,根据不同的情况应用不同的筛选规则。

基本语法:

CASE
语句的基本语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END

CASE
语句会依次评估
WHEN
子句中的条件,如果某个条件为真,则返回对应的
THEN
子句中的结果。如果所有条件都为假,则返回
ELSE
子句中的结果。如果没有
ELSE
子句,且所有条件都为假,则返回
NULL

在WHERE子句中使用CASE语句:

WHERE
子句中使用
CASE
语句,可以将
CASE
语句的结果作为条件来过滤数据。

示例1:根据不同的条件筛选不同的数据

假设我们有一个

products
表,其中包含
product_id
product_name
category
price
等列。我们需要根据
category
的不同,应用不同的价格范围筛选规则。

  • 如果
    category
    为'Electronics',则筛选
    price
    大于1000的产品。
  • 如果
    category
    为'Clothing',则筛选
    price
    小于100的产品。
  • 否则,筛选
    price
    在500到800之间的产品。

可以使用以下SQL查询语句:

SELECT *
FROM products
WHERE
    CASE
        WHEN category = 'Electronics' THEN price > 1000
        WHEN category = 'Clothing' THEN price < 100
        ELSE price BETWEEN 500 AND 800
    END;

在这个例子中,

CASE
语句的结果是一个布尔值,表示是否满足对应的价格范围条件。
WHERE
子句会根据这个布尔值来过滤数据。

示例2:根据不同的条件使用不同的列进行筛选

假设我们有一个

users
表,其中包含
user_id
username
email
phone
等列。我们需要根据用户的
user_id
的不同,使用不同的列进行筛选。

  • 如果
    user_id
    小于100,则使用
    email
    列进行筛选。
  • 否则,使用
    phone
    列进行筛选。

可以使用以下SQL查询语句:

SELECT *
FROM users
WHERE
    CASE
        WHEN user_id < 100 THEN email LIKE '%@example.com'
        ELSE phone LIKE '138%'
    END;

在这个例子中,

CASE
语句的结果是一个布尔表达式,表示是否满足对应的筛选条件。
WHERE
子句会根据这个布尔表达式来过滤数据。

示例3:结合其他条件使用CASE语句

CASE
语句可以与其他条件结合使用,以实现更复杂的筛选逻辑。

假设我们需要查找

products
表中,
category
为'Electronics'且
price
大于1000,或者
category
为'Clothing'且
price
小于100的产品。

可以使用以下SQL查询语句:

SELECT *
FROM products
WHERE
    (category = 'Electronics' AND price > 1000)
    OR (category = 'Clothing' AND price < 100)
    OR CASE
        WHEN category NOT IN ('Electronics', 'Clothing') THEN price BETWEEN 500 AND 800
    END;

或者使用CASE语句简化:

SELECT *
FROM products
WHERE
    CASE
        WHEN category = 'Electronics' THEN price > 1000
        WHEN category = 'Clothing' THEN price < 100
        ELSE price BETWEEN 500 AND 800
    END;

注意事项:

  • CASE
    语句可以嵌套使用,以实现更复杂的条件判断。
  • CASE
    语句可以与其他SQL语句(例如,
    JOIN
    GROUP BY
    等)结合使用。
  • CASE
    语句可能会影响查询性能,因此需要进行优化。

总结:

CASE
语句在
WHERE
子句中提供了一种灵活的条件判断机制,可以根据不同的条件应用不同的筛选规则。通过灵活运用
CASE
语句,我们可以实现更复杂的查询逻辑,满足不同的业务需求。但需要注意的是,复杂的
CASE
语句可能会影响查询性能,因此需要进行优化。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1133

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

381

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2152

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

380

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1663

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

440

2024.04.29

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 846人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号