MySQL | 常用命令示例
MySQL | 常用命令示例
- 一、启停MySQL数据库服务
- 二、连接MySQL数据库
- 三、创建和管理数据库
- 四、创建和管理数据表
- 五、数据备份和恢复
- 六、查询与优化
MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚本来进行数据操作和管理。本文将介绍一些常用的MySQL脚本,帮助更好地使用MySQL。
一、启停MySQL数据库服务
- 启动MySQL数据库服务
systemctl start mysqld
- 停止MySQL数据库服务
systemctl stop mysqld
- MySQL数据库服务状态查看
systemctl status mysqld
- MySQL数据库服务开机自启
systemctl enable mysqld
- MySQL数据库服务禁止开机自启
systemctl disable mysqld
二、连接MySQL数据库
在使用MySQL之前,我们需要先连接到数据库。可以使用以下脚本进行连接:
- 使用用户名和密码连接MySQL数据库
mysql -u username -p password
或者
mysql -u username -p
其中,username为数据库用户名,password为数据库密码。
- 使用主机名、用户名和密码连接MySQL数据库
mysql -h 主机名 -P 端口号 -u 用户名 -p 密码
或者
mysql -h 主机名 -P 端口号 -u 用户名 -p
- 使用数据库
连接到 MySQL 数据库后,可能有多个可以操作的数据库,可使用use 命令选择你要操作的数据库。
use 数据库名;
- 关闭MySQL数据库连接的SQL语句
exit;
或者
quit;
三、创建和管理数据库
- 创建数据库:使用CREATE DATABASE语句可以创建新的数据库(mydatabase),例如:
mysql> CREATE DATABASE mydatabase;
Query OK, 1 row affected (0.00 sec)mysql>
- 删除数据库(慎用):使用DROP DATABASE语句可以删除指定的数据库(mydatabase),例如:
mysql> DROP DATABASE mydatabase;
Query OK, 0 rows affected (0.01 sec)mysql>
- 查看数据库:使用SHOW DATABASES语句可以列出当前所有的数据库,例如:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydatabase |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)mysql>
- 查看当前使用的数据库:
mysql> select database();
+------------+
| database() |
+------------+
| mydatabase |
+------------+
1 row in set (0.00 sec)mysql>
- 查看当前数据库包含的表信息
mysql> show tables;
+----------------------+
| Tables_in_mydatabase |
+----------------------+
| users |
+----------------------+
1 row in set (0.00 sec)mysql>
- 获取表结构
mysql> desc users;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
| email | varchar(50) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)mysql>
- 查看数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.32 |
+-----------+
1 row in set (0.00 sec)mysql>
四、创建和管理数据表
- 创建数据表
数据表是数据库中存储数据的主要方式。可以使用以下脚本创建一个名为users
的数据表:
mysql> use mydatabase
Database changed
mysql> mysql> CREATE TABLE users (-> id INT AUTO_INCREMENT PRIMARY KEY,-> name VARCHAR(50),-> age INT,-> email VARCHAR(50)-> );
Query OK, 0 rows affected (0.01 sec)mysql>
- 插入数据
插入数据是将数据添加到数据库中的关键操作。可以使用以下脚本向users
表中插入一条数据:
mysql> INSERT INTO users (name, age, email) VALUES ('John', 25, 'john@example.com');
Query OK, 1 row affected (0.01 sec)mysql>
- 查询数据
查询数据是使用MySQL的常见操作之一。可以使用以下脚本查询users
表中的所有数据:
mysql> SELECT * FROM users;
+----+------+------+------------------+
| id | name | age | email |
+----+------+------+------------------+
| 1 | John | 25 | john@example.com |
+----+------+------+------------------+
1 row in set (0.00 sec)mysql>
- 更新数据
更新数据是在数据库中修改现有数据的操作。可以使用以下脚本将users
表中id
为1的记录的age
字段更新为30:
mysql> UPDATE users SET age = 30 WHERE id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM users;
+----+------+------+------------------+
| id | name | age | email |
+----+------+------+------------------+
| 1 | John | 30 | john@example.com |
+----+------+------+------------------+
1 row in set (0.00 sec)mysql>
- 删除数据
删除数据是从数据库中删除不再需要的数据的操作。可以使用以下脚本删除users
表中id
为1的记录:
DELETE FROM users WHERE id = 1;
- 排序数据:使用ORDER BY子句可以对查询结果进行排序。以下是按照年龄从小到大对"users"表中的记录进行排序的示例:
SELECT * FROM users ORDER BY age ASC;
- 连接表:使用JOIN语句可以将多个表连接起来进行查询。以下是连接"users"表和"orders"表,并检索用户和订单信息的示例:
SELECT users.name, orders.order_number FROM users JOIN orders ON users.id = orders.user_id;
- 创建索引:使用CREATE INDEX语句可以为表中的列创建索引,以提高查询效率。以下是为"users"表中的name列创建索引的示例:
CREATE INDEX idx_name ON users (name);
- 删除表和数据库(慎用):使用DROP TABLE语句可以删除表,使用DROP DATABASE语句可以删除数据库。以下是删除"users"表和"mydatabase"数据库的示例:
DROP TABLE users;
DROP DATABASE mydatabase;
- 更改表名
rename table 原表名 to 新表名;mysql> rename table users to t_users;
Query OK, 0 rows affected (0.01 sec)mysql> select * from t_users;
+----+------+------+-------------------+
| id | name | age | email |
+----+------+------+-------------------+| 1 | John | 30 | john.com|2 | Tom | 25 | tom.com|3 | Zyl | 18 | zyl.com
+----+------+------+-------------------+
3 rows in set (0.00 sec)mysql>
- mysql的表中增加字段
###表t_users 中添加了一个字段address ,类型为 varchar(255)。mysql> alter table t_users add column address varchar(255);
Query OK, 0 rows affected (0.01 sec)
- 授权
MySQL8.0 以上将创建账户和赋予权限分开了,需要用两个语句创建账号,赋予远程权限;
###1、创建test用户
create user 'test'@'%' identified by 'Test##2023';###授权所有权限
grant all privileges on *.* to 'test'@'%' with grant option;###部分权限(select, insert),这个用户只能连接到数据库,并拥有select, insert权限。
mysql> grant select, insert on mydatabase.* to 'test'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> ###验证test用户权限
mysql> show grants for 'test'@'%';mysql> delete from t_users;
ERROR 1142 (42000): DELETE command denied to user 'test'@'localhost' for table 't_users'
mysql> ###---->该用户目前没有DELETE 的权限
五、数据备份和恢复
备份数据库:使用mysqldump命令可以备份整个数据库,例如:
mysqldump -u username -p mydatabase > backup.sql
[root-server ~]# mysqldump -u root -p mydatabase > backup.sql
Enter password:
[root-server ~]# ll
total 1964180
-rw-r--r--. 1 root root 2036 Jul 29 17:35 backup.sql
恢复数据库:使用mysql命令可以从备份文件中恢复数据库,例如:
mysql -u username -p mydatabase < backup.sql
###删除表数据
mysql> delete from users;
Query OK, 3 rows affected (0.02 sec)###恢复
[root-server ~]# mysql -u root -p mydatabase < backup.sql
Enter password:
[root-server ~]# ###验证
mysql> select * from users;
+----+------+------+-------------------+
| id | name | age | email |
+----+------+------+-------------------+| 1 | John | 30 | john.com|2 | Tom | 25 | tom.com|3 | Zyl | 18 | zyl.com
+----+------+------+-------------------+
3 rows in set (0.00 sec)mysql>
导出数据到csv文件:
###创建目录、赋权
[root-server ~]# mkdir -p /path/to
[root-server ~]# chmod -R 777 /path/to/
[root-server ~]# cd /path/
[root-server path]# ll
total 0
drwxrwxrwx. 2 root root 6 Jul 29 17:20 to
[root-server path]#
配置 secure_file_priv 变量,在/etc/my.cnf文件中加入
secure_file_priv=/path/to
重启数据库服务:
systemctl restart mysqld
导出数据是将数据库中的数据导出到文件的操作。可以使用以下脚本将users
表中的数据导出到users.csv
文件中:
mysql> SELECT * INTO OUTFILE '/path/to/users.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM users;
Query OK, 1 row affected (0.00 sec)mysql>
从csv文件导入数据:
导入数据是将文件中的数据导入到数据库中的操作。可以使用以下脚本将users.csv
文件中的数据导入到users
表中:
mysql> LOAD DATA INFILE '/path/to/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
Query OK, 3 rows affected (0.01 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0mysql>
导出数据到txt文件:
使用SELECT INTO OUTFILE语句可以将查询结果导出为文件,例如:
mysql> SELECT * INTO OUTFILE '/path/to/result.txt' FROM users;
Query OK, 3 rows affected (0.01 sec)mysql>
从txt文件导入导入数据:
使用LOAD DATA INFILE语句可以将数据从文件导入到表中,例如:
LOAD DATA INFILE '/path/to/result.txt' INTO TABLE users;
导出一个表:
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名[root-server ~]# mysqldump -u root -p mydatabase users > mydatabases_users.sql
Enter password:
[root-server ~]# ll
total 1964184
-rw-r--r--. 1 root root 2036 Jul 29 18:07 mydatabases_users.sql
导出一个数据库结构:
###参数: -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table[root-server ~]# mysqldump -u root -p -d --add-drop-table mydatabase > mydatabase-tab.sql
Enter password:
[root-server ~]# ll
total 1964196
-rw-r--r--. 1 root root 2036 Jul 29 17:35 backup.sql
-rw-r--r--. 1 root root 2036 Jul 29 18:07 mydatabases_users.sql
-rw-r--r--. 1 root root 1732 Jul 29 18:12 mydatabase-tab.sql
source 命令导入数据:
mysql> delete from users;
Query OK, 3 rows affected (0.00 sec)####备份文件位置
mysql> source /root/backup.sql
Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0Query OK, 0 rows affected (0.04 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql> ###验证:
mysql> select * from users;
+----+------+------+-------------------+
| id | name | age | email |
+----+------+------+-------------------+| 1 | John | 30 | john.com|2 | Tom | 25 | tom.com|3 | Zyl | 18 | zyl.com
+----+------+------+-------------------+
3 rows in set (0.00 sec)mysql>
注意:
mysqldump导出mysql数据库中某个数据库的数据,用mysqldump只要把输出符号换为输入符号。那样导入后,虽说不报错,但是数据库中是没有任何数据的!需要直接通过mysql命令来实现。
恢复数据库:使用mysql命令可以从备份文件中恢复数据库,例如:
mysql -u username -p mydatabase < backup.sql
###删除表数据
mysql> delete from users;
Query OK, 3 rows affected (0.02 sec)###恢复
[root-server ~]# mysql -u root -p mydatabase < backup.sql
Enter password:
[root-server ~]# ###验证
mysql> select * from users;
+----+------+------+-------------------+
| id | name | age | email |
+----+------+------+-------------------+| 1 | John | 30 | john.com|2 | Tom | 25 | tom.com|3 | Zyl | 18 | zyl.com
+----+------+------+-------------------+
3 rows in set (0.00 sec)mysql>
六、查询与优化
查询数据:使用SELECT语句可以从表中查询数据,例如:
mysql> SELECT * FROM users WHERE id = 1;
+----+------+------+-------------------+
| id | name | age | email |
+----+------+------+-------------------+| 1 | John | 30 | john@example.com
+----+------+------+-------------------+
1 row in set (0.00 sec)mysql>
优化查询:使用EXPLAIN语句可以分析查询语句的执行计划,例如:
mysql> EXPLAIN SELECT * FROM users WHERE id = 1;
+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| 1 | SIMPLE | users | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | NULL |
+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)mysql>
相关文章:

MySQL | 常用命令示例
MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚…...

常见网关对比
常见网关对比 目前常见的开源网关大致上按照语言分类有如下几类: Nginxlua :OpenResty、Kong、Orange、Abtesting gateway 等 Java :Zuul/Zuul2、Spring Cloud Gateway、Kaazing KWG、gravitee、Dromara soul 等 Go :Janus、fa…...
机器学习动量优化算法笔记
动量优化算法(Momentum Optimization)是一种常用于训练神经网络的优化算法。它通过模拟物体在惯性作用下的运动来加速梯度下降过程,从而加快神经网络的收敛速度并提高训练效率。 在梯度下降算法中,每次更新权重时都是根据当前批次…...
asp.net与asp.net优缺点及示例
Asp.net Mvc架构模式是一种低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP .NET MVC不支持 ViewState和服务器控件。 Asp.net优点: 1.架构降低了程序间的耦合性,M VC,分层,目标明确 2.性能不支持viewsta…...
php 年月日 分组分页
//年月日 //分组 分页$type $this->request->type;$dateType "%Y-%m";//月$dateType1 "CONCAT(tmp.date,-01 00:00:00)";$dateType2 "CONCAT(LAST_DAY(CONCAT(tmp.date, -15)), 23:59:59)";if ($type day) {//日$dateType "%Y-…...
flutter开发实战-请求dio设置Cookie
flutter开发实战-请求dio设置Cookie 在最近开发中碰到了需要websocket长链接收到响应的auth,在之后的请求中需要将其设置为cookie中。 如Cookie:authDHSfQQSAXf89xZqJTLdEDVI2hwzc7p2lUmSNNdUSlgW2MyfQINpYr7jUbkX/; 设置cookie用到了dio_cookie_manager组件 一、…...

C语言第十一课--------操作符的使用与分类-------基本操作
作者前言 作者介绍: 作者id:老秦包你会, 简单介绍: 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们…...

2,继承、内联函数、虚继承、友元、构造析构函数、初始化列表
继承 2.1结构体成员权限2.1.1访问权限2.1.2类与结构体 2.2类的成员函数2.2.1类内规则2.2.2类成员内联函数inline 2.3类的继承2.3.1类的继承与成员函数2.3.2类的多继承2.3.2.1类的多继承:菱形问题提出 2.3.3类的虚继承(关键字virtual) 2.4友元…...

Mkdocs中利用Js实现大小圈鼠标拖动样式
在docs/javascripts/extra.js下复制粘贴: var CURSOR;Math.lerp (a, b, n) > (1 - n) * a n * b;const getStyle (el, attr) > {try {return window.getComputedStyle? window.getComputedStyle(el)[attr]: el.currentStyle[attr];} catch (e) {}return …...

pytorch(6)——神经网络基本骨架nn.module的使用
1 神经网络框架 1.1 Module类的使用 NN (Neural network): 神经网络 Containers: 容器 Convolution Layers: 卷积层 Pooling layers: 池化层 Padding Layers: 填充层 Non-linear Activations (weighted sum, nonlinearity): 非线性激活 Non-linear Activations (other): 非线…...

论文精读之BERT
目录 1.摘要(Abstract) 2.引言(Introduction): 3.结论(Conlusion): 4.BERT模型算法: 5.总结 1.摘要(Abstract) 与别的文章的区别是什么:BERT是用来设计去…...

实战:Docker+Jenkins+Gitee构建CICD流水线
文章目录 前言Jenkins部署创建Jenkins docker-compose配置maven源启动Jenkins容器安装插件Gitee ssh公匙配置与测试项目提交 Jenkins创建流水线写在最后 前言 持续集成和持续交付一直是当下流行的开发运维方式,CICD省去了大量的运维时间,也能够提高开发…...

7.25 Qt
制作一个登陆界面 login.pro文件 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on …...
P1420 最长连号
题目描述 输入长度为 n n n 的一个正整数序列,要求输出序列中最长连号的长度。 连号指在序列中,从小到大的连续自然数。 输入格式 第一行,一个整数 n n n。 第二行, n n n 个整数 a i a_i ai,之间用空格隔开…...
UVA-1354 天平难题 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题需要: 1. 遍历二叉树的每种构成方式。我这里每次把当前所有结点列出,然后遍历选取两个组合构成一个新结点,原来的结点剔除,新结点加入。…...

电机故障诊断(python程序,模型为CNN结合LSTM)
代码运行环境要求:TensorFlow版本>2.4.0,python版本>3.6.0 运行效果视频:电机故障诊断(python代码)_哔哩哔哩_bilibili 1.电机常见的故障类型有以下几种: 轴承故障:轴承是电机运转时最容…...

ubuntu 20.04 rtc时间显示问题探究
1、硬件与软件 本次测试的硬件为RK3568芯片,操作系统为ubuntu 20.04。 2、RTC与系统时间 先说结果,如果RTC驱动不可用或者RTC内部存储的时间非法, 那么操作系统会存储上一次有效的时间,当再次上电时,date命令会使用存储…...

数值分析第七章节 用Python实现非线性方程与方程组的数值解法
参考书籍:数值分析 第五版 李庆杨 王能超 易大义编 第7章 非线性方程与方程组的数值解法 文章声明:如有发现错误,欢迎批评指正 文章目录 迭代法求解 x e x − 1 0 xe^x-10 xex−10牛顿法求解 x e x − 1 0 xe^x-10 xex−10简化牛顿法求解 …...

利用MATLAB制作DEM山体阴影
在地理绘图中,我们使用的DEM数据添加山体阴影使得绘制的图件显得更加的美观。 GIS中使用ArcGIS软件就可以达到这一目的,或者使用GMT,同样可以得到山体阴影的效果。 本文提供了一个MATLAB的函数,可以得到山体阴影。 clear all;c…...
ubuntu 使用 rsync 的 SSH 方式同步备份远程WEB服务器
ubuntu 20.04 自带 rsync ,对于 WEB 服务器这种更新频率不高的情况,直接使用定时同步复制远程服务器的方法,比较直接和简单! $ rsync --version rsync version 3.1.3 protocol version 31 参考: Ubuntu20.04中的rsyn…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...