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

【MySQL】库的操作+表的操作

库的操作+表的操作
  • 1.库的操作
    • 1.1创建数据库
    • 1.2删除数据库
    • 1.3查找数据库
    • 1.4修改数据库
    • 1.5数据库备份和恢复
    • 1.6查看连接情况
  • 2.库的操作
    • 2.1创建表
    • 2.2查看表结构
    • 2.3修改表
    • 2.4删除表

在这里插入图片描述

点赞???收藏???关注???
你的支持是对我最大的鼓励,我们一起努力吧???

1.库的操作

1.1创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name
  • 大写的表示关键字

  • [] 是可选项

  • CHARACTER SET: 指定数据库采用的字符集

  • COLLATE: 指定数据库字符集的校验规则

    show databases; //查看当前数据库

对应的就是右边一个个蓝色的目录,这我们在前面就已经说过了

在这里插入图片描述

创建数据库

create database d1;

创建好之后,在查看就有了,同样在 /var/lib/mysql 数据目录下也有一个d1目录

在这里插入图片描述

如果不想用这个数据库了,同样也可以删掉。

删除数据库

drop database d1;  

在这里插入图片描述

创建数据库:本质就是在Linux环境下MySQL特定的路径(数据路径)var/lib/mysql 创建一个目录。

删除数据库:删除目录。

那如果在该路径下创建一个目录也是数据库吗?
是的没错,删除也同样是删除数据库。但是绝对不建议这样做!

在这里插入图片描述

还有一种写法,如果当前没有这个数据库就创建,如果存在就不创建

create database if not exists d1;

在这里插入图片描述

数据库创建我们已经说完,下面谈的就是数据库的编码问题!
一般数据库相关常见数据库编码有两个重要的编码,一个是数据库字符集,一个是数据库校验集。

创建数据库的时候,有两个编码集:
1.数据库编码集
2.数据库校验集

只要是数据无论是未来的存储还是读取,数据一定是要有对应的编码格式的。数据库这种与数据打交道的软件更加注重编码集。编码集必须是统一的,就是存数据之前采用什么编码,取数据时必须以同样的编码去取。

1.数据库编码集 —> 数据库未来存储数据采用的编码集

将来把数据存到数据库里,未来要对数据做各种增、删、查、改。所有只要你这样你就是要做比较。要比较对应的某些字段一样,前提是都要先被读出来,那两个字段的被读出来的校验规则或者被读取时的编码规则必须也是一样的。要不然怎么保证是一样的呢。

2.数据库校验集 —> 支持数据库,进行字段比较使用的编码。本质也是一种读取数据库中数据采用的编码格式。

所以不管是保存时用的是什么编码还是对比读取采用的编码必须得是一样的。因此数据库不论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

查看系统默认字符集以及校验规则

show variables like 'character_set_database'; //编码集
show variables like 'collation_database'; //校验集

在这里插入图片描述
可能你的机器并不是这个编码和校验集,这是我们在安装MySQl时就已经在配置文件中把mysql服务段对应的编码全改成utf8了。

数据连接,对数据库常规操做,服务器本身校验规则都是utf8的。

在这里插入图片描述

查看数据库支持的字符集

show charset;

数据库写的时候采用什么编码

在这里插入图片描述

查看数据库支持的字符集校验规则

show collation;

未来数据已经有了,想怎么读,读的时候怎么知道这是我想要的,所以对数据做特定的解释,然后才做能对比。

在这里插入图片描述

现在也知道创建数据库了,也知道编码和校验规则了。两个合并下面就可以创建出指定编码和校验规则的数据库了。

当我们创建数据库或者表没有指定编码和校验规则时,系统默认以配置文件为主,如果用户在SQL语句中手动确认了自己要采用某种编码采用的就是就近原则。也就是说用户写了就用用户的,用户没写就用默认配置文件的。

下面可以看到创建数据库没有指定,系统就用默认的。

在这里插入图片描述

指定了就用指定的,有两种写法

create database d2 charset=gbk;
create database d2 character set gbk;

在这里插入图片描述

还有一种写法就是指定编码集合校验集

create database d3 charset=gbk collate gbk_chinese_ci;

在这里插入图片描述

数据库配置文件中配置这个编码有什么意义呢?
因为曾经在配置文件中设置过,所以会影响创建数据库时默认编码和校验规则,编码和校验规则是匹配的。那问题又来了,今天为什么又要设置数据库编码呢?因为数据库里是需要存表的,在数据库里可能要建各种各样的表,这些表采用编码和校验规则是继承至它所在的数据库。数据库默认依赖于mysqld,表依赖于数据库。这样就可以理解为什么要做这样的配置。

校验规则对数据库的影响

我们创建两个数据库和表,不指定编码使用的是系统默认的,但是校验集不一样。也就是说存大家用的都是utf8,但是取的时候采用的是不同的编码,就可以看到不同的现象。

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

create database test1 collate utf8_general_ci;use test1; #选择数据库 可以理解成进入数据库create table person(name varchar(20)); #列名,列类型insert into person values('a'); #插入数据
insert into person values('A');
insert into person values('b');
insert into person values('B');

插入的本质存数据,采用的是存储数据所用的编码。查找的时候采用的是校验规则

在这里插入图片描述

从person表中拿出来添加符合name名称符合a的信息,查的时候你怎么比较表中的值和我们设定的name=‘a’ 值是一样的,是不是要统一编码啊,所以它们它们俩个用的都是utf8_general_ci的方式。这就是我们的校验编码。然后我们可以看到结构。看到utf8_general_ci是不区分大小写的。

在这里插入图片描述

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

create database test2 collate utf8_bin;use test2;create table person(name varchar(20)));insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

这里只给我把a显示出来,这就叫做严格匹配,区分大小写

在这里插入图片描述

通过这点我们已经可以看出校验规则的不同查出来的结果可能不同,进一步理解了校验规则对我们的影响。

这里还有一个排序可以看看

不区分大小写排序以及结果:

在这里插入图片描述

区分大小写排序以及结果:

在这里插入图片描述

1.2删除数据库

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库,建议做个备份。然后再删除!

在这里插入图片描述

1.3查找数据库

show databases;

在这里插入图片描述

如果你要使用某个数据库,必须要先use选择数据库

use 数据库名;

在这里插入图片描述

如果有时候数据库用久了,但是不清楚自己目前在那个数据库里,可以查看一下

select database();

在这里插入图片描述

显示创建数据库时对应的命令

show create database 数据库名;

在这里插入图片描述

  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default… */ 这个不是注释,表示当前使用mysql版本大于4.01版本,就执行这句话

1.4修改数据库

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]alter_spacification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则

如将下面数据库字符集修改成gbk

alter database test1 charset=gbk collate gbk_chinese_ci;

在这里插入图片描述

只要指明编码是什么,校验码就会自动去匹配。

1.5数据库备份和恢复

在linux中如果要对一个文件或者目录做备份实际上就是拷贝一份。有一种相当简单粗暴的做法,直接把数据库目录打个包备份一下,但是实际在用的时候一定会存在问题,比如你的数据库是5.7的,但是曾经那个数据库和表是在5.4建立的。我们严重不推荐这种做法。

还有我们不能对数据库rename做重命名,万一别人正在用这个数据库呢,什么情况下你才会对数据库进行重命名呢,有人说备份重新命名一下。那不就搞定了吗。但是这种方法还是不推荐。

我们推荐使用mysql自备的备份工具来进行备份

备份

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:

mysqldump -P3306 -uroot -p -B test1 > test1.sql

在这里插入图片描述

把test1.sql打开后,可以看到里面是大部分内容我们就见过的,如craete database test1、use test1还有后面插入数据等等。其实它备份的时候,是把在这个数据库里做的有效操作全备份起来了。所以说备份的不是只有数据,还把历史上所有有效操作全部备份起来了。

在这里插入图片描述

现在把test1数据库删掉了

在这里插入图片描述

现在把这个testq.sql备份拿给别人,它的本地是没有test1的。所以它现在想恢复test1怎么恢复呢?

还原

source /home/wdl/MySQL/test1.sql

此时它可以将备份文件test1.sql里面的sql语句全部在新的MySQL里在执行一遍。

在这里插入图片描述

注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

mysqldump -u root -p 数据库名 表名1 表名2 > 数据库表备份存储的文件路径

同时备份多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后ues数据库,再使用source来还原。

备份时带了 -B 这个备份文件其实是带了create databdase test1,use test1

在这里插入图片描述

如果没有带 -B 备份的时候只会把这个数据库里面所有表信息数据信息全部备份出来,如果需要还原需要自己先把数据库建好。

所以要对数据库重命名的话,其实直接它库中表的内容备份一下,也就是备份时不要带 -B ,还原的时候创建好数据库然后source一下就好了。

1.6查看连接情况

如果在使用数据库的睡觉哦就,发现数据库在访问时卡了一些,可以去查一查当前有哪些人正在使用数据库

show processlist

在这里插入图片描述

最后说一下数据库建立好了,数据库轻易不要删!名字轻易不要改,因为上层在用!!!

2.库的操作

2.1创建表

语法:

CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field 表示列名

  • datatype 表示列的类型

  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

    create table if not exists user1 (
    id int,
    name varchar(20) comment ‘用户名’, #commen 表示对该列的文字说明
    password char(32) comment ‘用户的密码’,
    birthday date comment ‘用户的生日’
    ) charset=utf8 collate utf8_general_ci engine MyISAM;

不同的存储引擎,创建表的文件不一样。

在这里插入图片描述

user1 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • user1.frm:表结构
  • user1.MYD:表数据
  • user1.MYI:表索引

在创建一张表,发现存储引擎是InnoDB,只有两张表。为什么在建表时出现不同的表结构呢,是因为用来不同的存储引擎。具体原因后面说。

在这里插入图片描述

默认存储引擎是InnoDB,因为我们配置过

在这里插入图片描述

2.2查看表结构

我当前在直接的数据库里,我怎么知道我有那些表?每一个表的详细信息我该怎么查呢?

show tables; #查看当前数据库中的表

在这里插入图片描述

desc 表名; #查看对应表的详细结构信息

在这里插入图片描述

当时在建表时,还有表的编码、校验码、存储引擎还有描述字段,这个表更为详细的详细我应该怎么查呢?

show create table user1; #显示创建表的详细信息

在这里插入图片描述

但是这样看起来不太舒服,

show create table user1 G;

格式化显示,把不需要的符合全部去掉

在这里插入图片描述

上面和我们当时创建表写的不一样,这是因为我们写的SQL语句这是经过mysqld内词法,语法分析,把我们写的不标准的改成标准的写法。

MySQL会记录下来用户的所有操作痕迹的,包括建表、删表等行为都会被记录下来。这里看到的和曾经不一样不奇怪,因为数据库会把优化只会调整之后的操作语句记录下来。

2.3修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段。这时我们就需要修改表。 不会存在查找 !

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename DROP (column);

更改表的名字

alter table user1 rename to user;

在这里插入图片描述

下面先对表进行插入

insert into user values (1,'张三','12345','2021-3-22');

如果向一个数据库中表插入数据时,理论上是在values 前面带上一个个列名称,如果省略了代表你想把这个表里面的每一个字段都要插入。

在这里插入图片描述

现在表有了数据,我们对表进行一下修改

在user表新增一列,用于保存图片路径

add后面跟的是你想新增那一列,列的类型是什么,描述是什么,after表示你想指定新增到那一列的后面

alter table user add image_path varchar(128) comment '用户头像路径' after birthday;

在这里插入图片描述

新增一列两行受影响,这是因为以前表中原始数据是没有这个头像路径默认为null。
新增字段之后对原来表中的数据没有影响。但新增字段为null。

此时我们看到创建表的语句也改过来了

在这里插入图片描述
现在问题是name 类型大小是20,现在想对指定列中的属性做修改,name 列长度由20变成60

修改列中某一字段

modify后面跟你要改谁,后面在跟新的属性

alter table user modify name varchar(60);

我们发现name字段大小确实已经变成60了,也没有影响该字段原有数据。

在这里插入图片描述

但是更为重要的是,如果刚才改字段属性就是只改了字段大小,你会发现以前name后面的comment没有了。说明并不是定向你要改那个字段就给你改那个字段,它是把新的属性直接覆盖把原来创建name字段,属性等全部覆盖掉。 换句话说如果未来你想改某一列,你肯定要把这一列曾经的所有属性全部复制下来,在代码中对要改的字段修改,在重新提交一下。

在这里插入图片描述

删除某列

drop后面跟着要删除那一列

alter table user drop password;

注意:删除字段一定要小心,删除字段及其对应的列数据都没了,所有一定要保证这个数据是真的不要了。

在这里插入图片描述

修改表名

to:可以省掉

alter table user1 rename to user;
alter table user1 rename  user;

修改列名

将name列修改为xingming

 alter table user change name xingming varchar(60) DEFAULT NULL;#新字段需要完整定义

change后面跟着旧列名 ,再跟新列名和属性。列名称要改不仅仅需要提供新列名称,这个列的相关属性也需要都给我。相当于把这一列重新设置。

在这里插入图片描述

2.4删除表

语法:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...drop table user;

在这里插入图片描述

像create,drop都是在做表操作,但是select并不是操作表结构,操作的是表的内容。
前面学过SQL分类有:DDL、DML、DCL。像我们目前学到的库的操和表的操作,属于那种类型的SQL呢?DDL 数据定义语言。

相关文章:

【MySQL】库的操作+表的操作

库的操作表的操作 1.库的操作 1.1创建数据库1.2删除数据库1.3查找数据库1.4修改数据库1.5数据库备份和恢复1.6查看连接情况 2.库的操作 2.1创建表2.2查看表结构2.3修改表2.4删除表 点赞???收藏???关注??? 你的支持是对我最大的鼓励,我们一起努力吧???…...

vue异步更新,$nextTick

如果将isShowEdit改为true,就会显示输入框和确认按钮、 如果isShowEdit为false的话就显示“大标题”和编辑 想要获取元素焦点,但是vue是异步更新,会出错显示this.$refs.inp是undefined,是因为input元素并没有更新完成,所以需要使用…...

【3D AIGC】Img-to-3D、Text-to-3D、稀疏重建(2024年文章汇总)

文章目录 1. Wonderworld:拓展图片边界,生成3D场景2. 3DTopia-XL:扩散模型辅助生成3. 3DGS-Enhancer: 通过视图一致2D Diffusion,提升无界3D Gaussian Splatting (NlPs2024 Spotlight)4. L3DG:Latent 3D Gaussian Diff…...

简单的springboot使用sse功能

什么是sse? 1、SSE 是Server-Sent Events(服务器发送事件) 2、SSE是一种允许服务器主动向客户端推送实时更新的技术。 3、它基于HTTP协议,并使用了其长连接特性,在客户端与服务器之间建立一条持久化的连接。 通过这条连接&am…...

Nginx 防止IP伪造,绕过IP限制

背景介绍 在使用Nginx时,需要将IP地址转发到后置应用中,往往需要增加配置 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 在后端程序通过读取请求头里的X-Forwarded-For来获取用户客户端IP。 public String getRemortIP(HttpServle…...

原生js仿el-table动态表头

解决动态表头数据量过大导致页面卡顿的问题解决固定前几列导致表头设置宽度失效或者错位的问题功能&#xff1a; 固定前几列合并指定单元格 <div class"tableJoint2"><div><table id"tableData"></table></div><div>…...

【opencv入门教程】9.视频加载

文章选自&#xff1a; 一、VideoCapture类 用于从视频文件、图像序列或摄像头捕获视频的类。函数&#xff1a;CV_WRAP VideoCapture();brief 默认构造函数CV_WRAP explicit VideoCapture(const String& filename, int apiPreference CAP_ANY);brief 使用 API 首选项打开…...

数据结构 ——无头单链表

数据结构 ——无头单链表 一、无头单链表的定义与特性 1、单链表简介 单链表是一种常见的基础数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含数据部分和指向下一个节点的指针。无头单链表是单链表的一种变体&#xff0c;其特点是没有明确的头节点&#xff0…...

【UE5】制作插件 并调试【vs2022】

视频教程&#xff1a;好看视频-轻松有收获 https://www.youtube.com/watch?vIjpa9mI2b5I 原文&#xff1a;【UE】制作插件_ue插件-CSDN博客 C制作插件 1. 我们可以在C工程中创建更多类型的插件&#xff0c;这里我们选择“空白”作为模板来创建插件 点击“创建插件”按钮后…...

Prometheus 采集postgresql监控数据

postgres_exporter 前言 postgres_exporter 是一个用于监控 PostgreSQL 数据库的 Prometheus 导出器。它允许你收集有关 PostgreSQL 数据库性能和状态的指标,并将这些指标暴露给 Prometheus,从而可以在 Grafana 等可视化工具中进行展示和告警。 postgres_exporter download…...

网络分层模型( OSI、TCP/IP、五层协议)

1、网络分层模型 计算机网络是一个极其复杂的系统。想象一下最简单的情况&#xff1a;两台连接在网络上的计算机需要相互传输文件。不仅需要确保存在一条传输数据的通路&#xff0c;还需要完成以下几项工作&#xff1a; 发起通信的计算机必须激活数据通路&#xff0c;这包括发…...

POI遍历行所有单元格的两种方式,getPhysicalNumberOfCells方式有问题,勿用

今天看POI源码的时候&#xff0c;发现HSSFWorkbook类型的工作簿&#xff0c;行数据是用TreeMap<Integer, HSSFRow>存储的&#xff0c;列数据是用HSSFCell[]数组来存的&#xff1b;XSSFWorkbook类型的工作簿&#xff0c;行数据是用SortedMap<Integer, XSSFRow>存储的…...

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求&#xff0c;其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中&#xff0c;其中公式转换是一个头疼的地方&#xff0c;还有很多图表&#xff0c;格式等等&#xff0c;想想就让人头疼欲裂。实践中摸索出一条相对靠…...

敖汉宝塔油页岩露天矿山安全自动化监测

1. 项目简介 本次项目位于内蒙古自治区赤峰市敖汉旗宝国吐乡大青山村&#xff0c;地理位置好。主营许可经营项目&#xff1a;无一般经营项目&#xff1a;页岩油生产&#xff1b;页岩油、润滑油、建筑材料&#xff08;不含油漆&#xff09;销售等单位规模1-20人&#xff0c;单位…...

Android笔记【14】结合LaunchedEffect实现计时器功能。

一、问题 cy老师第五次作业 结合LaunchedEffect实现计时器功能。要求&#xff1a;动态计时&#xff0c;每秒修改时间&#xff0c;计时的时间格式为“00&#xff1a;00&#xff1a;00”&#xff08;小时&#xff1a;分钟&#xff1a;秒&#xff09;提交源代码的文本和运行截图…...

三维重建(单目、双目、多目、点云、SFM、SLAM)

1 相机几何与标定1.1 相机模型中的坐标系1.2 四种坐标系之间的转换1.3 相机内参1.4 相机标定 2 传统三维重建2.1 RGBD三维重建2.1.1 KinectFusion2.1.2 BundleFusion 2.1 MVS三维重建2.2.1 COLMAP2.2.2 OpenMVS 3 点云三维重建3.1 3D点云任务3.2 点云数据3.3 特征提取3.3.1 Poi…...

软体机器人动态手内笔旋转研究

人工智能咨询培训老师叶梓 转载标明出处 软体机器人因其在安全互动方面的优势而备受关注&#xff0c;但在高速动态任务中却面临挑战。最近&#xff0c;卡内基梅隆大学机器人研究所的研究团队提出了一种名为SWIFT的系统&#xff0c;旨在通过学习和试错来实现软体机器人手的动态…...

福昕PDF低代码平台

福昕PDF低代码平台简介 福昕PDF 低代码平台是一款创新的工具&#xff0c;旨在简化PDF处理和管理的流程。通过这个平台&#xff0c;用户可以通过简单的拖拽界面上的按钮&#xff0c;轻松完成对Cloud API的调用工作流&#xff0c;而无需编写复杂的代码。这使得即使没有编程经验的…...

【笔记】Linux中使用到的一些操作

1、查找指定文件并执行删除 find . -name "checkpoint_*_*.pth" -type f -exec rm -f {} \; 2、查看每个文件夹占用空间 du -h --max-depth1 3、移动文件 mv valid.zip ./xg mv 文件 目标位置 4、删除文件夹 rmdir folder rm -r folder # 递归删除文件夹下所有内容…...

深入浅出:PHP中的表单处理全解析

引言 在Web开发的世界里&#xff0c;表单是用户与服务器之间交互的重要桥梁。它们允许用户提交信息&#xff0c;并通过后端语言&#xff08;如PHP&#xff09;进行处理。本文将带你深入了解PHP中的表单处理&#xff0c;从基础的创建和提交到高级的安全措施和实用技巧&#xff…...

智已汽车x-signature 登录算法 签到

智已汽车x-signature 登录算法 签到 python代码成品...

一、测试工具LoadRunner Professional脚本编写-录制前设置

设置基于URL的脚本 原因:基于HTML的脚本会导致login接口不能正确录制 设置UTF-8 原因:不勾选此项会导致脚本中文变为乱码...

LSTM+改进的itransformer时间序列预测模型代码

代码在最后 本次设计了一个LSTM基于差分多头注意力机制的改进的iTransformer时间序列预测模型结合了LSTM&#xff08;长短期记忆网络&#xff09;和改进版的iTransformer&#xff08;差分多头注意力机制&#xff09;&#xff0c;具备以下优势&#xff1a; 时序特征建模能力&am…...

linux中 Systemd 和 cgroups 的关系详解

systemd 是 Linux 的一个初始化系统和服务管理器&#xff0c;它依赖于 Linux 内核的 cgroups&#xff08;Control Groups&#xff09;功能来实现对系统资源的高效管理。以下是对两者关系的详细解读&#xff1a; 1. 什么是 cgroups&#xff1f; cgroups 是 Linux 内核提供的一种…...

发布Apache2.4** 局域网无法访问

1。 防火墙关闭 或者 设置入站规则 2&#xff0c;查看httpd.conf 文件 设置配置 原 Listen 80 修改成 Listen 192.168.31.127:90 3.确保 本地IP 是否正确...

【JAVA】Java高级:多数据源管理与Sharding:在Spring Boot应用中实现多数据源的管理

一个电商平台可能需要一个数据库来存储用户信息&#xff0c;另一个数据库来存储订单信息&#xff0c;甚至可能还有一个数据库用于数据分析。这种情况下&#xff0c;如何在Spring Boot应用中实现多数据源的管理就显得尤为重要。 1. 多数据源管理的重要性 在实际应用中&#xf…...

Android 分词的两种方式

前言&#xff1a; 本文分别介绍了原生和三方(Jieba)两种分词方式的使用和注意事项 1、安卓原生BreakIterator分词 比较简单&#xff0c;但是效果不太行 /*** 功能&#xff1a;原生分词* 参数&#xff1a;text&#xff1a;需要分词的语句* 返回值&#xff1a;return&#xf…...

【开源免费】基于SpringBoot+Vue.JS中小型医院网站(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 078 &#xff0c;文末自助获取源码 \color{red}{T078&#xff0c;文末自助获取源码} T078&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

数据结构代码归纳

1.线性表 线性表的顺序表示 定义与初始化 typedef struct SqList{ElemType data[MaxSize];//ElemType *data 开动态数组 int length; }Sqlist; void InitList(SqList &L){L.length0;//若静态数组//若动态数组 //L.data(ElemType*)malloc(sizeof(ElemType)*MaxSize); }…...

2024-金盾信安杯线上赛 WP

Misc 大赛宗旨 记事本打开&#xff0c;一眼零宽隐写 B 神工具一把梭&#xff0c;得到一串 base 编码 base64 解码得到 flag flag 值&#xff1a;flag{5d5555fa-1303-4b43-8eef-d6ea7c64c361} esab 根据题目 esab 可以发现这正是 base 的逆向&#xff0c;所以可以先逆向一下…...

iOS如何自定义一个类似UITextView的本文编辑View

对于IOS涉及文本输入常用的两个View是UITextView和UITextField&#xff0c;一个用于复杂文本输入&#xff0c;一个用于简单文本输入&#xff0c;在大多数开发中涉及文本输入的场景使用这两个View能够满足需求。但是对于富文本编辑相关的开发&#xff0c;这两个View就无法满足自…...

JavaWeb文件上传

文件上传总览 文件上传主要是指将本地文件&#xff08;包括但不限于图片、视频、音频等&#xff09;上传到服务器&#xff0c;提供其他用户浏览或下载的过程。在日常生活中&#xff0c;我们在很多情况下都需要使用文件上传功能&#xff0c;比如&#xff1a;发微博、发朋友圈等…...

C#实现1ms定时器不精准?如何实现一个高性能高精度的1ms定时器?(附完整示例Demo)

在C#日常开发中&#xff0c;我们经常需要使用定时器&#xff08;Timer&#xff09;进行周期性任务的执行。 例如&#xff0c;每隔1秒打印一条日志&#xff0c;或每隔100毫秒执行某个数据刷新逻辑。 但是&#xff0c;当我们尝试在C#中实现一个1毫秒&#xff08;1ms&#xff09;…...

LeetCode 3. 无重复字符的最长子串

题目链接&#xff1a;3. 无重复字符的最长子串 首先想到的就是暴力破解&#xff0c;直接两层循环遍历&#xff0c;因为它说求无重复&#xff0c;那就可以用 set 来存储遍历到的字符&#xff0c;如果遍历到了同样的字符(在 set 中存在)&#xff0c;就直接跳出第二层循环&#x…...

深度解析 Ansible:核心组件、配置、Playbook 全流程与 YAML 奥秘(上)

文章目录 一、ansible的主要组成部分二、安装三、相关文件四、ansible配置文件五、ansible 系列 一、ansible的主要组成部分 ansible playbook&#xff1a;任务剧本&#xff08;任务集&#xff09;&#xff0c;编排定义ansible任务集的配置文件&#xff0c;由ansible顺序依次执…...

记一次由docker容器使得服务器cpu占满密码和密钥无法访问bug

Bug场景&#xff1a; 前几天在服务器上部署了一个免费影视网站&#xff0c;这个应用需要四个容器&#xff0c;同时之前的建站软件workpress也是使用docker部署的&#xff0c;也使用了三个容器。在使用workpress之前&#xff0c;我将影视软件的容器全部停止。 再使用workpress…...

功能篇:JAVA实现记住我功能

在Java Web应用程序中实现“记住我”功能&#xff0c;通常涉及以下几个步骤&#xff1a; 1. 创建一个持久化的标识符&#xff08;如一个令牌或哈希值&#xff09;&#xff0c;并将其与用户账户关联。 2. 将这个标识符保存到客户端的cookie中。 3. 在服务器端&#xff0c;当用户…...

实现 DataGridView 下拉列表功能(C# WinForms)

本文介绍如何在 WinForms 中使用 DataGridViewComboBoxColumn 实现下拉列表功能&#xff0c;并通过事件响应来处理用户的选择。以下是实现步骤和示例代码。 1. 效果展示 该程序的主要功能是展示如何在 DataGridView 中插入下拉列表&#xff0c;并在选择某一项时触发事件。 2.…...

2024年上半年网络工程师综合知识真题及答案解析

2024年上半年网络工程师综合知识真题及答案解析 以下不属于5G网络优点的是()A.传输过程中消耗的资源少,对设备的电池更友好B.支持大规模物联网,能够连接大量低功耗设备,提供更高效的管理C.引入了网络切片技术,允许将物理网络划分为多个虚拟网络D.更好的安全性,采用更…...

数合平台功能-管理角色

前一阵&#xff0c;有朋友问到&#xff0c;看咱们产品的功能描述很强大&#xff0c;但很多功能看不到。为此&#xff0c;基于数据建模产品最新版本&#xff0c;和大家一起串一下产品的功能和使用路径。本节重点说一下管理角色有哪些功能 一、功能清单 从上图中可以看到&#x…...

LVGL9 开关控件 (lv_switch) 使用指南

文章目录 前言主体1. **控件概述**2. **控件的样式和组成部分**3. **使用控件**改变开关状态 4. **事件处理**5. **按键支持**6. **示例代码** 总结 前言 lv_switch 是 LittlevGL 提供的一个开关控件&#xff0c;外观类似一个小型滑块&#xff0c;常用于实现开关功能&#xff…...

麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose

前期准备 查看操作系统版本&#xff0c;跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址&#xff1a;https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录&#xff1a;aarch64&#xff0c;我目前使用…...

独立ip服务器有什么优点?

网站的性能和安全性直接影响到用户体验和业务发&#xff0c;独立IP服务器作为一种主流的托管方式&#xff0c;因其独特的优势而受到许多企业和个人站长的青睐。与共享IP相比&#xff0c;独立IP服务器到底有哪些优点呢&#xff1f; 使用独立IP的用户不必担心与其他网站共享同一…...

oracle之用户的相关操作

&#xff08;1&#xff09;创建用户(sys用户下操作) 简单创建用户如下&#xff1a; CREATE USER username IDENTIFIED BY password; 如果需要自定义更多的信息&#xff0c;如用户使用的表空间等&#xff0c;可以使用如下&#xff1a; CREATE USER mall IDENTIFIED BY 12345…...

深入浅出:PHP中的数组操作全解析

文章目录 引言理解数组创建数组使用方括号使用array()函数 访问数组元素数值索引数组关联数组 遍历数组使用for循环使用foreach循环 添加和修改数组元素添加元素修改元素 删除数组元素删除单个元素删除整个数组 多维数组创建多维数组访问多维数组元素 常用数组函数获取数组长度…...

2024年12月7日历史上的今天大事件早读

1732年12月07日英国皇家大剧院在伦敦开幕 1798年12月07日清代诗人袁枚逝世 1889年12月07日第一个充气轮胎受专利保护 1916年12月07日劳合-乔治出任英国首相 1926年12月07日第一台电冰箱受美国专利保护 1937年12月07日南京保卫战正式打响 1941年12月07日日本偷袭珍珠港 1…...

pymysql模块详解

华子目录 简介安装pymysql连接对象常用方法游标对象常用方法数据库操作查改批量增加删 使用with语句总结 简介 pymysql是一个用于Python编程的第三方模块&#xff0c;用于连接和操作MySQL数据库。它提供了一个简单而强大的接口&#xff0c;使开发者能够轻松地在Python程序中执…...

计算机网络研究实训室建设方案

一、概述 本方案旨在规划并实施一个先进的计算机网络研究实训室&#xff0c;旨在为学生提供一个深入学习、实践和研究网络技术的平台。实训室将集教学、实验、研究于一体&#xff0c;覆盖网络基础、网络架构、网络安全、网络管理等多个领域&#xff0c;以培养具备扎实理论基础…...

WEB安全 PHP学习

PHP基础 PHP编码显示问题 header ("Content-type: text/html; charsetgb2312"); header("Content-Type: text/html;charsetutf-8"); windows需要使用gbk编码显示 源码是 <?php header ("Content-type: text/html; charsetgb2312"); sys…...

Redis高阶之容错切换

当一台主机master宕掉之后&#xff0c;他的从机会取代主机么&#xff1f; 查看集群状态 127.0.0.1:6385> cluster nodes c8ff33e8da5fd8ef821c65974dda304d2e3327f9 192.168.58.129:638216382 slave f6b1fd5e58df90782f602b484c2011d52fc3482d 0 1733220836918 1 connecte…...