MySQL基础——SQL语句
目录
1.SQL通用语法
2.SQL分类
3 DDL
3.1数据库操作
3.1.1查询
3.1.2创建
3.1.3删除
3.1.4使用
3.2表操作
3.2.1查询
3.2.2创建
3.2.3数据类型
3.2.4表修改(alter打头)
3.2.5表删除(drop/truncate打头)
3.3 DDL总结
3.3.1 DDL-数据库操作
3.3.2.DDL-表操作
4 DML
4.1添加数据(INSERT)
4.2修改数据(UPDATE)
4.3删除数据(DELETE)
4.4 DML总结
5 DQL(查询)
5.1基本查询
5.2条件查询(where)
5.3聚合函数
5.4 分组查询(group by)
5.5排序查询(order by)
5.6 分页查询(limit)
5.7 DQL语句总结
6 DCL语句
6.1用户管理
6.2权限控制
1.SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾。
2. SQL语句可以使用空格/缩进来增强语句的可读性。
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4.注释:
(1)单行注释:--注释内容或#注释内容(MySQL特有)
(2)多行注释:/*注释内容*/
2.SQL分类
SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

3 DDL
对数据库、表、字段的定义操作。
3.1数据库操作
3.1.1查询
查询所有数据库:SHOW DATABASES;
例:输入,就可查询当前数据库服务器中所有的数据库,包括我刚刚新建的两个。

查询当前正在使用的数据库:SELECT DATABASE(); #注意括号()不能少!

3.1.2创建
CREATE DATABASE [IF NOT EXISTS]数据库名「 DEFAULT CHARSET字符集][COLLATE 排序规则];
例1:输入create database itcast;
就会创建好名为itcas的数据库:

例2:输入CREATE DATABASE if not exists ithe default charset utf8mb4;
3.1.3删除
DROP DATABASE [ IF EXISTS]数据库名;
例:输入drop DATABASE ithe
然后查询:show DATABASEs
发现就没有ithe这个表了

3.1.4使用
USE 数据库名;
切换到指定的这个数据库,进行使用。
例:输入use library
再查询:SELECT DATABASE()
结果为:

3.2表操作
3.2.1查询
查询当前数据库所有表

也可以用use切换指定数据库,再查询。
查询表结构
DESC表名;
查询指定表的建表语句
SHOW CREATE TABLE表名;
3.2.2创建
逗号分离,最后一个字段没有逗号。通过comment加上对应字段的注释。

示例:

可以用desc+表名 查询表结构:

3.2.3数据类型
(1)数值类型

(2)字符串类型

VARCHAR——VS——CHAR
1)VARCHAR类型用于存储可变长度字符串,是最常见的字符串数据类型。它比固定长度类型更节省空间,因为它仅使用必要的空间(根据实际字符串的长度改变存储空间)。
有一种情况例外,如果MySQL表使用ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储。
2)CHAR类型用于存储固定长度字符串:MySQL总是根据定义的字符串长度分配足够的空间。当存储CHAR值时,MySQL会删除字符串中的末尾空格(在MySQL 4.1和更老版本中VARCHAR 也是这样实现的——也就是说这些版本中CHAR和VARCHAR在逻辑上是一样的,区别只是在存储格式上)。
同时,CHAR值会根据需要采用空格进行剩余空间填充,以方便比较和检索。但正因为其长度固定,所以会占据多余的空间,也是一种空间换时间的策略;
如:
用户名username varchar(50)
性别gender char(1)
(3)日期时间类型

没有负数,就要用无符号的,加上关键字unsigned。
例:设计一张员工信息表,要求如下:
1.编号(纯数字)
2.员工工号(字符串类型,长度不超过10位)
3.员工姓名(字符串类型,长度不超过10位)
4.性别(男/女,存储一个汉字)
5.年龄(正常人年龄,不可能存储负数)
6.身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7.入职时间(取值年月日即可)
代码如下:
create table emp(id int comment '编号',empid varchar(10) comment '员工工号',empname varchar(10) comment '员工姓名',sex char(1) comment '性别',age tinyint unsigned comment'年龄',idcard char(18) comment'身份证号',entime date comment'入职时间')

3.2.4表修改(alter打头)
(1)添加字段add
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT注释][约束];
案例:
为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)
代码:
alter table emp add nickname varchar(20) comment'昵称'
查询可知已成功添加:

(2)修改字段
1)修改字段数据类型(modify)
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
2)修改字段名和字段类型(change)
ALTER TABLE表名CHANGE旧字段名 新字段名 类型(长度)[COMMENT注释][约束];
案例:
将emp表的nickname字段修改为username,类型为varchar(30)
代码:在添加字段的代码上修改就是将add改为change,原本一个字段名,改为包含旧和新的两个字段名。
alter table emp change nickname username varchar(20) comment'昵称'

(3)修改表名(rename to)
ALTER TABLE 表名 RENAME TO 新表名;
例:改emp为employee
代码:
alter table emp rename to employee

(4)删除字段
ALTER TABLE表名DROP字段名;
3.2.5表删除(drop/truncate打头)
(1)删除表
DROP TABLE [ IF EXISTS]表名;
(2)删除指定表,并重新创建该表。
TRUNCATE TABLE表名; (数据没有了只有一张空表了)
例:drop table if exists employee
查询显示无employee表了。

3.3 DDL总结
3.3.1 DDL-数据库操作
SHOW DATABASES;
CREATE DATABASE数据库名;
USE数据库名;
SELECT DATABASE();
DROP DATABASE数据库名;
3.3.2.DDL-表操作
SHOW TABLES ;
CREATE TABLE表名(字段字段类型,字段字段类型);
DESC表名;
SHOW CREATE TABLE表名;
ALTER TABLE表名 ADD/MODIFY/CHANGE/DROP/RENAME TO ...;
DROP TABLE表名;
4 DML
MySQL图形化工具,DataGrip>Navicat
但是DataGrip是收费的,有30天免费,可以申请学生邮箱!!!

链接数据库成功,跟我Navicat里面是一样的了。安装并链接好DataGrip后,学习DML。
DataGrip中的schema = database
在上面+操作,下面自己生成SQL语句,真香。

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
4.1添加数据(INSERT)
(1)给指定字段添加数据
INSERT INTO表名(字段名1,字段名2,.….)VALUES(值1,值2,....);
(2)给全部字段添加数据(不用写字段名了)
INSERT INTO表名VALUES(值1,值2,...);
(3)批量添加数据(用括号和逗号分隔)
INSERT INTO表名(字段名1,字段名2,...))VALUES(值1,值2,...),(值1,值2...).(值1,值2,...);
INSERT INTO表名VALUES(值1,值2,...).(值1,值2,...), (值1,值2,...);
注意:
·插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
·字符串和日期型数据应该包含在引号中。
·插入的数据大小,应该在字段的规定范围内。
例:
#指定全部字段insert into employee(id, empid, empname,gender,age, idcard, entime) values(1,'1','zhg','n',10,'1234567889','2000-01-12');#指定部分字段
insert into employee (id, empid) values(3,'3');#不用指定,插入全部字段
insert into employee values(2,'2','zhg','n',10,'1234567889','2000-01-12');#批量插入insert into employee values(4,'4','zhg','n',10,'1234567889','2000-01-12'), (5,'5','zhg','n',10,'1234567889','2000-01-12'), (6,'6','zhg','n',10,'1234567889','2000-01-12'), (7,'7','zhg','n',10,'1234567889','2000-01-12');
结果如下:

4.2修改数据(UPDATE)
修改“表名”这个表总的字段数据信息:
UPDATE 表名 SET字段名1=值1 ,字段名2=值2,....[ WHERE条件];
例:
#将id=1的员工名字改为xixiupdate employee set empname='xixi' where id = 1;#将所有员工入职时间改为2008-02-13update employee set entime='2008-02-13'
修改结果如下:

4.3删除数据(DELETE)
DELETE FROM表名[WHERE条件]
注意:
·DELETE语句的条件可有可无,如果没有条件,则会删除整张表的所有数据。
·DELETE语句不能删除某一个字段的值(可以使用URDATE)。
例:
#删除id = 1的员工
delete from employee where id = 1

4.4 DML总结
1.添加数据
INSERT INTO 表名(字段1,字段2,...) VALUES(值1,值2,..)[,,(值1,值2,...)...];
2.修改数据
UPDATE 表名 SET字段1=值1,字段2=值2[ WHERE条件];
3.删除数据
DELETE FROM 表名 [WHERE条件];
5 DQL(查询)
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。查询关键字:SELECT
·DQL-语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
# 新建emp表
create table emp(id int comment '编号',workno varchar(10) comment '员工工号',name varchar(10) comment '员工姓名',gender char comment '性别',age tinyint unsigned comment'年龄',idcard char(18) comment'身份证号',workaddress varchar(50) comment '工作地址',endate date comment'入职时间');
# 解决DataGrip对出现中文报错,使用如下语句,否则name和gender中只能是英文不能是中文。alter table emp convert to charset utf8;#插入数据
insert into emp (id,workno,name,gender,age,idcard , workaddress,endate)values (1,'1','柳岩','女',20,'123456789012345678','北京','2000-01-01'),(2,'2','张无忌','男',18,'123456789012345670','北京','2005-09-01'),(3,'3','韦一笑','男',38,'123456789712345670','上海','2005-08-01'),(4,'4','赵敏','女',18,'123456757123845670','北京','2009-12-01'),(5,'5','小昭','女',16,'123456769012345678 ','上海','2007-07-01'),(6,'6','杨道','男',28,'12345678931234567X','北京','2006-01-01 '),(7,'7','范瑶','男',40,'123456789212345670','北京','2005-05-01 '),(8,'8','黛绮丝','女',38,'123456157123645670','天津','2015-05-01 '),(9,'9','范凉凉','女',45,'123156789012345678','北京','2010-04-01 '),(10,'10','陈友谅','男',53,'123456789012345670','上海','2011-01-01'),(11,'11','张士诚','男',55,'123567897123465670','江苏','2015-05-01'),(12,'12','常遇春','男',32,'123446757152345670','北京','2004-02-01 '),(13,'13','张三丰','男',88,'123656789012345678','江苏','2020-11-01 '),(14,'14','灭绝','女',65,'123456719012345670','西安','2019-05-01 '),(15,'15','胡青牛','男',70,'12345674971234567X','西安','2018-04-01 '),(16,'16 ','周芷若','女',18, null,'北京','2012-06-01 ');

5.1基本查询
查询例:
#查询多个字段
select name,workno,workaddress adr from emp;

#查询员工地址不能重复并起别名
select distinct workaddress adr from emp;
(distinct好像只能紧跟select)

5.2条件查询(where)
语法:SELECT 字段列表 FROM 表名 WHERE 条件列表;

案例:


一个下划线_代表一个字符,%匹配任意个字符。
#查询姓名为两个字的员工
select * from emp where name like'__';

#查询身份证最后一位为X的员工
select * from emp where idcard like'%X';

5.3聚合函数
将一列数据作为一个整体,进行纵向计算。
常见聚合函数:

语法:SELECT聚合函数(字段列表)FROM表名;
注意:null值不参与所有聚合函数运算。
案例:


5.4 分组查询(group by)
有些情况不分组也可以进行聚合运算,只有当前数据记录可以进行该纵向计算。

1.语法
SELECT字段列表FROM表名[ WHERE条件 ] GROUP BY分组字段名[HAVING分组后过滤条件];
2. where与having区别
执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。判断条件不同: where不能对聚合函数进行判断,而having可以。
注意
·执行顺序: where >聚合函数>having 。
·分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
案例:查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于1的工作地址。
分析:
分组前过滤:年龄小于45的员工——where
分组:工作地址——group by
分组后过滤:员工数量大于等于3的工作地址——having
代码:
select workaddress,count(id) countid from emp where age<45 group by workaddress having count(id) >=1;
分组后,有些字段就是不能同时输出了。

5.5排序查询(order by)
1.语法
SELECT字段列表FROM表名
ORDER BY字段1排序方式1,字段2排序方式2;
2.排序方式
ASC:升序(默认值,所以asc可以省略)
DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
案例:根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序.
代码:
select * from emp order by age,endate desc;

5.6 分页查询(limit)
(1)语法:
SELECT字段列表FROM 表名LIMIT起始索引,查询记录数;
(2)注意:
·起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
·分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
·如果查询的是第一页数据,起始索引0可以省略,直接简写为limit 10。
(3)案例:
#查询第1页员工数据,每页展示10条记录
select * from emp limit 0,10;select * from emp limit 10; #起始页为0时可省略,效果同上

#查询第2页员工数据,每页展示10条记录#起始索引 =(页码-1)*页展示记录数 =(2-1)*10 =10,所以这里其实索引为10
select * from emp limit 10,10;

5.7 DQL语句总结

6 DCL语句
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。因此开发人员不用掌握,主要是DBA数据库管理员进行操作。
6.1用户管理
1.查询用户
USE mysql;
SELECT * FROM user;
2.创建用户
CREATE USER ‘用户名'@'主机名’IDENTIFIED BY‘密码’;
3.修改用户密码
ALTER USER '用户名'@'主机名’ IDENTIFIED WITH mysql_native_password BY‘新密码’;
4.删除用户
DROP USER '用户名'@'主机名';
6.2权限控制
1.查询权限
SHOW GRANTS FOR‘用户名'@'主机名’;
2.授予权限
GRANT权限列表ON数据库名.表名TO‘用户名'@'主机名';
3.撤销权限
REVOKE 权限列表ON数据库名.表名FROM‘'用户名'@'主机名';
相关文章:
MySQL基础——SQL语句
目录 1.SQL通用语法 2.SQL分类 3 DDL 3.1数据库操作 3.1.1查询 3.1.2创建 3.1.3删除 3.1.4使用 3.2表操作 3.2.1查询 3.2.2创建 3.2.3数据类型 3.2.4表修改(alter打头) 3.2.5表删除(drop/truncate打头) 3.3 DDL总结…...
比特币通用API服务
Bitcoin 通用API服务 exlectrs: API后台服务(Rust语言编写) https://github.com/Blockstream/electrs.git 使用electr作为后台的区块链浏览器:https://github.com/Blockstream/esplora.git https://github.com/Blockstream/electrs https://github.com/romanz/electrs/blo…...
Spock mock私有方法
mock私有方法 被测试的方法是MiddleGroundAppListBO类下的getPromptIdKeyAppPromptInfoMap方法 private Map<Long, AppPromptInfoModel> getPromptIdKeyAppPromptInfoMap(String cubeAppIdentity) {List<AppPromptInfoDO> promptByApp knowledgeCubeQueryR…...
网络协议四
一、云中网络 物理机的劣势: 1)一旦需要扩容 CPU、内存、硬盘,都需要去机房手动弄,非常麻烦 2)采购的机器往往动不动几百 G 的内存,而每个应用往往可能只需要 4 核 8G 3)一台机器,…...
大数据入门实践一:mac安装Hadoop,Hbase,FLume
一、安装Hadoop 安装hadoop参考此文,关键点是安装JDK和Hadoop的配置,为避免引用文章变收费,我把关键信息摘录如下: jdk安装和配置就不说了(我本机安装了1.8/15/17/21,以17为主),hadoop安装过程…...
openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步
一、前言 openGauss 6.0.0-RC1是openGauss 2024年3月发布的创新版本,该版本生命周期为0.5年。根据openGauss官网介绍,6.0.0-RC1与之前的版本特性功能保持兼容,另外,在和之前版本兼容的基础上增加了很多新功能,比如分区表性能优化…...
0118__C语言——float.h文件
C语言——float.h文件_c float.h-CSDN博客...
settings和toolchains.xml 区别用法配置
在 IntelliJ IDEA 中配置 Maven 项目时,settings.xml 和 toolchains.xml 的使用场景有所不同。以下是具体的使用情景和配置方法: 1. 使用 settings.xml 使用场景 全局或用户级别的配置:包括设置本地仓库位置、远程仓库、代理服务器、认证信…...
leetcode打卡#day43 携带研究材料(第六期模拟笔试)、416. 分割等和子集
携带研究材料(第六期模拟笔试) #include<iostream> #include<algorithm> #include<vector>using namespace std;int getMaxValue(vector<int>& weights, vector<int>& values, int n, int m) {vector<vector&…...
MPLS的配置
1、IP可达--- 使用路由协议全网可达 2、配置 MPLS ——LDP [r2]mpls lsr-id 2.2.2.2 必须先定义 mpls 的router-id,要为本地设备的真实ip地址,且邻居可达,因为该地址将用于建立 TCP 会话,建议使用环回地址 [r2]mpls 再开…...
【机器学习】机器学习与教育科技在个性化教学中的融合应用与性能优化新探索
文章目录 引言机器学习与教育科技的基本概念机器学习概述监督学习无监督学习强化学习 教育科技概述学生学习行为分析个性化学习路径推荐智能化教育评估 机器学习与教育科技的融合应用实时学习数据分析数据预处理特征工程 学生成绩预测与优化模型训练模型评估 个性化学习路径推荐…...
C++:十大排序
目录 时间复杂度分析 选择排序 引言 算法思想 动图展示 代码实现 (升序) 优化 代码实现 分析 冒泡排序 引言 算法思想 动图展示 代码实现 插入排序 引言 算法思想 动图展示 代码实现 计数排序 引言 算法思想 动图展示 代码实现 桶排序 引言 算法思…...
Python武器库开发-武器库篇之Mongodb未授权漏洞扫描器(五十六)
Python武器库开发-武器库篇之Mongodb未授权漏洞扫描器(五十六) MongoDB 未授权访问漏洞简介以及危害 MongoDB是一款非常受欢迎的开源NoSQL数据库,广泛应用于各种Web应用和移动应用中。然而,由于默认配置的不当或者管理员的疏忽,导致不少Mon…...
【论文速读,找找启发点】2024/6/16
ICME 2023 End-To-End Part-Level Action Parsing With Transformer 类似 DETR,通过 加 query的方式实现 端到端 ELAN: Enhancing Temporal Action Detection with Location Awareness 如何实现位置感知? > 重叠的卷积核? Do we really …...
canal监控mysql变化
目录 概述实践代码总结表创建插入一行数据更新一行数据删除一笔数据 概述 本文测试 canal 监控 mysql 表变化。canal 1.1.7 mysql 8.0.x 版本。 实践 代码 public static void main(String[] args) {// 创建一个 CanalConnector 连接器// username:字符串类型,Canal使用该用…...
MySQLWorkbench导出sql文件
MySQLWorkbench导出sql文件 前言效果图导出操作选择要导出的数据库遇到的问题解决问题 查看mysql路径 前言 在完成数据库搭建之后,需要为上线做准备,那么就需要导出数据库的建库sql了 本篇文章讲解的是mysql Workbench 导出数据建库脚本 效果图 导出操…...
不一样的SYSTEM APP(SYSTEM flag和system_prop区别)
1.问题引入 在Android开发中, 1)Framework中PackageManager扫包后,会把app归类为SYSTEM, SYSTEM_EXT, PRIVILEGED 类别. 2)同样的, SeAndroid也会把APP归类程platform_app, system_app, untrusted_app(甚至还有其他,mediaprovider,gmscore_app). flag SYSTEM和system_app我们…...
C++ 和 JAVA 位运算符
C 和 JAVA 位运算符...
项目进度和成本管理
1.如何正确标识出软件项目活动? 正确标识软件项目活动是项目管理中的一个重要步骤,它有助于确保项目的顺利进行和成功完成。以下是一些标识软件项目活动的步骤和建议: 项目范围定义:首先明确项目的目标和范围,这将帮助…...
Dorkish:一款针对OSINT和网络侦查任务的Chrome扩展
关于Dorkish Dorkish是一款功能强大的Chrome扩展工具,该工具可以为广大研究人员在执行OSINT和网络侦查任务期间提供强大帮助。 一般来说,广大研究人员在执行网络侦查或进行OSINT信息收集任务过程中,通常会使用到Google Dorking和Shodan&…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
