当前位置: 首页 > news >正文

【MySQL基础篇】概述及SQL指令:DDL及DML

数据库是一个按照数据结构来组织、存储和管理数据的仓库。以下是对数据库概念的详细解释:
定义与基本概念:
数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。
数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。
数据库的作用:
数据库作为计算机系统中最重要的组件之一,被广泛用于各种应用程序和业务领域。
数据库能够高效地管理和处理大量数据,提供数据的存储、查询、更新和删除等功能。

名称全称简称
数据库存储数据的仓库,数据是有组织地进行存储DB
数据库管理系统操纵和管理数据库的大型软件DBMS
SQL操作关系型数据库的编程语言,定义了一套操作挂机呢习性数据库统一标准SQL

数据模型:

 关系型数据库(RDBMS)

概念:建立在关系模型上,由多张相互连接的二维表组成的数据库。

特点:

1、使用表存储数据,格式统一便于维护

2、使用SQL语言操作,便于统一,使用方便

1、SQL通用语法

1、SQL语句可以单行或多行书写,以分号结尾。

2、SQL可以使用空格/缩进来增强语句的可读性。

3、MySQL数据库和SQL语句不区分大小写,关键字建议使用大写

4、注释:

·        单行注释:--注释内容 或 # 注释内容(MySQL独有)

·        多行注释:/*注释内容*/

2、SQL分类

分类全称说明
DDLDate Definition Language数据定义语句,用来定义数据库对象(数据库、表、字段)
DMLDate Manipulation Language数据操作语言,用于对数据库表中的数据进行增删改
DQLDate Query Language数据查询语言,用于查询数据库中表的记录
DCLDate Control Language数据控制语言,用于创建数据库用户、控制数据库的访问权限

3、DDL

·  DDL - 数据库操作

查询:

查询所有数据库:

show databases;

查询当前数据库

select database();

创建

create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

删除

drop database [if exists] 数据库名;

使用

use 数据库名;

show databases;

我们可以看到一共有四个数据库,这四个数据库是安装MySQL成功后自带的数据库 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)mysql> create database if not exists test;/*字符集内容是可以省略的因为MySQL有一套自己的字符集,排序顺序也可以省略*/
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)mysql> drop database if exists test;
Query OK, 0 rows affected (0.01 sec)mysql> /*假如我们想要使用某一个数据库所需要的指令为*/
mysql> use mysql
Database changed
mysql> /*假如数据库创建太多,我们想要知道我们目前正在使用的数据库所需要的指令*/
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

·  DDL - 表操作 - 查询

 查询当前数据库所有表

show tables; 

mysql> create database if not exists test;
Query OK, 1 row affected (0.01 sec)mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)/*刚创建出的数据库没有表结构*/
mysql> use mysql;
Database changed
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| ndb_binlog_index                                     |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
38 rows in set (0.00 sec)

查询表结构 

 desc 表名

mysql> desc tr_user-> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
| sex   | varchar(1)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

 查询指定表的建表语句

show create table 表名;

mysql> show create table tr_user;
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table|
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tr_user | CREATE TABLE `tr_user` (`id` int DEFAULT NULL COMMENT '编号',`name` varchar(50) DEFAULT NULL COMMENT '姓名',`age` int DEFAULT NULL COMMENT '年龄',`sex` varchar(1) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表' |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

·  DDL - 表操作 - 创建 

create table 表名(

        字段1 字段1类型[comment 字段1注释],

         字段2 字段2类型[comment 字段2注释],

        ......

        字段n 字段n类型[comment 字段n注释]

)[comment 表注释];

mysql> use test;
Database changed
mysql> create table tr_user(-> id int comment '编号',-> name varchar(50) comment '姓名',-> age int comment '年龄',-> sex varchar(1) comment '性别'-> )comment '用户表';
Query OK, 0 rows affected (0.03 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tr_user        |
+----------------+
1 row in set (0.00 sec)

 ·  DDL - 表操作 - 数据类型

分类类型大小有符号范围无符号范围描述
数值类型TINYINT1byte(-128,127)(0,255)小整数值
SMALLINT3byte(-32768,32767)(0,65535)大整数值
MEDIUMINT3byte(-8388608,8388607)(0,16777215)大整数值
INT或INTEGER4byte(-2147483648,-2147483647)(0,4294967259)大整数值
BIGINT8byte(-2^63,2^63-1)(0,2^64-1)极大整数值
FLOAT4byte(-3.402823466 E+308,402823466351 E+308)0和(1.175494351 E-38,402823466 E+38)单精度浮点数
DOUBLE8byte(-1.7976931348623157 E+308,1.7976931348623157 E+308)0和(2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值
分类类型大小描述
字符串类型CHAR0-255 byte定长字符串
VARCHAR0-65535 byte变长字符串
TINYBLOB0-255 byte不超过255个字符的二进制数据
TINYTEXT0-255 byte短文本字符串
BLOB0-65535 byte二进制形式的长文本数据
TEXT0-65535 byte长文本数据
MEDIUMBLOB0-16777215 byte二进制形式的中等长度文本数据
MEDIUMTEXT0-16777215 byte中等长度文本数据
LONGBLOB0-4294967259 byte二进制形式的极大文本形式
LONGTEXT0-4294967259 byte极大文本数据

注意:char(10)代表当前字符串能够存储的最大长度即10个字符,一旦超出就会报错与varchar(10)的区别是char(10)是不管我们存储多大字节的数据,都占用10个字节(其他位置用空格代替);而varchar(10)会根据数据的大小确定,但最大不能超过10个字节,大大节省了空间占用。 但char的性能更好,varchar的性能较差这是因为varchar需要内容来计算所占空间的大小。

分类类型大小范围格式描述
日期类型DATE31000- 01- 01至9999- 12- 31YYYY-MM-DD日期值
TIME3-838:59:59至839:59:59HH:MM:SS时间值或持续时间
YEAR11901至2155YYYY年份值
DATATIME81000- 01- 01 00:00:00至9999- 12- 31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970- 01- 01 00:00:01至2038- 01- 19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值、时间戳

 ·  DDL - 表操作 - 修改

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

比如:为tr_user表添加一个新的字段’昵称‘为nickname,类型为varchar(20)

mysql> alter table tr_user add nickname varchar(20) comment'昵称';
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc tr_user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int         | YES  |     | NULL    |       |
| name     | varchar(50) | YES  |     | NULL    |       |
| age      | int         | YES  |     | NULL    |       |
| sex      | varchar(1)  | YES  |     | NULL    |       |
| nickname | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [comment 注释] [约束]; 

比如:将tr_user表中的nickname修改为username,类型为varchar(30)

alter table tr_user change nickname username varchar(30) comment'昵称';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc tr_user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int         | YES  |     | NULL    |       |
| name     | varchar(50) | YES  |     | NULL    |       |
| age      | int         | YES  |     | NULL    |       |
| sex      | varchar(1)  | YES  |     | NULL    |       |
| username | varchar(30) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

删除字段 

 ALTER TABLE 表名 DROP 字段名;

比如:将tr_user表的username删除

alter table tr_user drop username;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

 修改表名

ALTER TABLE 表名 RENAME TO 新表名;

比如:将表名tr_user修改为新表名user_tr 

 alter table tr_user rename to user_tr;
Query OK, 0 rows affected (0.01 sec)

  ·  DDL - 表操作 - 删除

删除表

DROP TABLE [IF EXISTS] 表名; 

删除指定表,并重新创建该表

TRUNCATE TABLE 表名; 

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tr_user        |
| user           |
+----------------+
2 rows in set (0.00 sec)

 比如:我们想要删除user这个表名

 drop table if exists user;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tr_user        |
+----------------+
1 row in set (0.00 sec)
 truncate table tr_user;
Query OK, 0 rows affected (0.02 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tr_user        |
+----------------+
1 row in set (0.00 sec)
/*truncate的这种形式删除指定表,表名还在,但表的内容已经不存在了,仅仅留下了空表*/

4、MySQL图形化界面(DataGrip)

下载安装:

DataGrip下载安装及使用教程(详细版)-CSDN博客 

激活:DataGtip如何跳过试用设置永久使用?(Windows2021-2023版本通用)_datagrip无限试用-CSDN博客

5、DML

 DML全称为Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

· DML - 添加数据

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 tr_user(id, name, age, sex) values(1,'李三',68,'男');
#给全部字段添加数据
insert into tr_user values(2,'狗蛋',20,'男');
#批量添加数据
insert into tr_user value(3,'二狗',18,'男'),(4,'林黛玉',25,'女');
select * from tr_user;

· DML - 修改数据

UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。 

update tr_user set name='张无忌' where id=1;
#修改id为1的数据,将name修改为小昭,sex改为女
update tr_user set name='小昭',sex='女' where id=1;
#修改表中的sex,全部改为男
update tr_user set sex='男' where id;
select * from tr_user;

 · DML - 删除数据

DELETE FROM 表名 [WHERE 条件]

注意:

DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据;

DELETE语句不能删除某一个字段的值(可以使用UPDATE) 。

#删除id=1的数据
delete from tr_user where id=1;
#删除所有数据
delete from tr_user where id;

相关文章:

【MySQL基础篇】概述及SQL指令:DDL及DML

数据库是一个按照数据结构来组织、存储和管理数据的仓库。以下是对数据库概念的详细解释:定义与基本概念: 数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库不仅仅是数据的简单堆积,而是遵循一定的规则…...

计算机网络 —— 网络字节序

网络字节序 1、网络字节序 (Network Byte Order)和本机转换 1、大端、小端字节序 “大端” 和” 小端” 表示多字节值的哪一端存储在该值的起始地址处;小端存储在起始地址处,即是小端字节序;大端存储在起始地址处,即是大端字节…...

区块链不可能三角

区块链不可能三角:探索去中心化、安全与可扩展性的权衡 引言 区块链技术自诞生以来,以其去中心化、透明、安全等特点吸引了全球的关注,成为金融科技领域的重要革新力量。然而,随着区块链应用的日益广泛,一个核心问题…...

新手第一个漏洞复现:MS17-010(永恒之蓝)

文章目录 漏洞原理漏洞影响范围复现环境复现步骤 漏洞原理 漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时。该函数在将FEA list转换成NTFEA(Windows NT FEA)list前&am…...

代码随想录Day64

98.所有可达路径 题目&#xff1a;98. 所有可达路径 (kamacoder.com) 思路&#xff1a;果断放弃 答案 import java.util.*;public class Main {private static List<List<Integer>> adjList;private static List<List<Integer>> allPaths;private sta…...

Angular 指令

Angular 指令是 Angular 框架中的一项核心功能&#xff0c;它允许开发人员扩展 HTML 的功能&#xff0c;并创建可复用的组件和行为。以下是一些常见的 Angular 指令&#xff1a; 1. 组件指令 (Component Directives) 组件指令是最常用的一种指令&#xff0c;用于创建可复用的 U…...

移动端 UI 风格,书写华丽篇章

移动端 UI 风格&#xff0c;书写华丽篇章...

flutter开发实战-ListWheelScrollView与自定义TimePicker时间选择器

flutter开发实战-ListWheelScrollView与自定义TimePicker 最近在使用时间选择器的时候&#xff0c;需要自定义一个TimePicker效果&#xff0c;当然这里就使用了ListWheelScrollView。ListWheelScrollView与ListView类似&#xff0c;但ListWheelScrollView渲染效果类似滚筒效果…...

stable diffusion 模型和lora融合

炜哥的AI学习笔记——SuperMerger插件学习 - 哔哩哔哩接下来学习的插件名字叫做 SuperMerger,它的作用正如其名,可以融合大模型或者 LoRA,一般来说会结合之前的插件 LoRA Block Weight 使用,在调整完成 LoRA 模型的权重后使用改插件进行重新打包。除了 LoRA ,Checkpoint 也…...

Spring Boot中的分布式缓存方案

Spring Boot中的分布式缓存方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨在Spring Boot应用中实现分布式缓存的方案&#xff0c;以提升系统…...

AI写作革命:如何用AI工具轻松搞定700+学科的论文?

不知道大家有没有发现&#xff0c;随着人工智能技术的快速发展&#xff0c;AI工具正逐渐渗透到我们日常生活的各个方面&#xff0c;极大地提高了我们的工作和学习效率。无论是AI写作、AI绘画、AI思维导图&#xff0c;还是AI幻灯片制作&#xff0c;这些工具已成为我们不可或缺的…...

v-for中key的原理以及用法

在 Vue.js 中&#xff0c;v-for 指令用于基于源数据多次渲染元素或模板块。当使用 v-for 渲染列表时&#xff0c;为每个列表项提供一个唯一的 key 属性是非常重要的。key 的主要作用是帮助 Vue 跟踪每个节点的身份&#xff0c;从而重用和重新排序现有元素。 先来张原理图&#…...

基于强化学习的目标跟踪论文合集

文章目录 2020UAV Maneuvering Target Tracking in Uncertain Environments Based on Deep Reinforcement Learning and Meta-LearningUAV Target Tracking in Urban Environments Using Deep Reinforcement Learning 2021Research on Vehicle Dispatch Problem Based on Kuhn-…...

高质量AIGC/ChatGPT/大模型资料分享

2023年要说科技圈什么最火爆&#xff0c;一定是ChatGPT、AIGC&#xff08;人工智能生成内容&#xff09;和大型语言模型。这些技术前沿如同科技世界的新潮流&#xff0c;巨浪拍岸&#xff0c;引发各界关注。ChatGPT的互动性和逼真度让人们瞠目&#xff0c;它能与用户展开流畅对…...

使用Python进行Socket接口测试

大家好&#xff0c;在现代软件开发中&#xff0c;网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯&#xff0c;都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中&#xff0c;Socket&#xff08;套接字&#xff09;技术扮演了重要角色…...

C++编程逻辑讲解step by step:存折和信用卡类。

题目 存折和信用卡类&#xff0c;信用卡是一种存折&#xff0c;可以透支&#xff0c;可以存款。 代码 #include<iostream> #include<string> using namespace std; class passbook {public: passbook(string nam,int n,float m) {namenam; numn; balancem; } vo…...

为什么说BIM在机电安装行业是刚需?3D开发工具HOOPS如何促进BIM发展?

在建筑行业中&#xff0c;机电安装是一个复杂且精细的工程领域&#xff0c;它涉及到电气、管道、通风和控制系统等多个方面。随着建筑项目规模的不断扩大和复杂性的增加&#xff0c;传统的二维设计方法已经难以满足现代建筑的需求。正是在这种背景下&#xff0c;BIM技术应运而生…...

SQLite:一个极简使用教程

SQLite是一个轻量级的、文件系统基础的数据库&#xff0c;它被设计为配置简单、易于部署。SQLite数据库存储在一个单一的磁盘文件中&#xff0c;这意味着数据库的创建和维护都非常简单。 1. SQLite特点 轻量级&#xff1a;SQLite不需要一个独立的服务器进程。它是一个嵌入式SQ…...

酒水公司网站品牌建设宣传如何进行

红酒、白酒、啤酒、米酒、精酿啤酒等各种各样的酒水类型和从业公司数量比较多&#xff0c;部分品牌有收藏价值/价格高但销量相对较低&#xff0c;也有部分属于亲民&#xff0c;价格低但销量高&#xff0c;国内外受众广&#xff0c;人员标签不同生意拓展面自然也不同。 无论如何…...

【高级篇】InnoDB引擎深入:核心机制与实战优化(十五)

引言 在探索了MySQL集群与分布式技术之后,我们进入了数据库引擎的核心地带——InnoDB。作为MySQL的默认存储引擎,InnoDB凭借其对事务的支持、行级锁定、高效的恢复机制以及复杂的内存管理,成为众多应用场景的首选。本章,我们将深入InnoDB的内部机制,透彻理解锁管理、事务…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...

Redis——Cluster配置

目录 分片 一、分片的本质与核心价值 二、分片实现方案对比 三、分片算法详解 1. ‌范围分片&#xff08;顺序分片&#xff09;‌ 2. ‌哈希分片‌ 3. ‌虚拟槽分片&#xff08;Redis Cluster 方案&#xff09;‌ 四、Redis Cluster 分片实践要点 五、经典问题解析 C…...