MySQL数据库简介+库表管理操作+数据库用户管理

news2024/11/25 15:36:57

Mysql Part 1

  • 一、数据库的基本概念
    • 1.1 使用数据库的必要性
    • 1.2 数据库基本概念
      • 1.2.1 数据(Data)
      • 1.2.2 表
      • 1.2.3 数据库
      • 1.2.4 数据库管理系统(DBMS)
      • 1.2.5 数据库系统
    • 1.3 数据库的分类
      • 1.3.1 关系数据库 SQL
      • 1.3.2 非关系数据库 NoSQL
    • 1.4 主键
  • 二、MySQL数据库简介
    • 2.1 什么是MySQL?
    • 2.2 MySQL的特点
    • 2.3 常用的数据类型
    • 2.4 SQL语句
    • 2.5 MySQL的约束特性(六大约束)
    • 2.6 用navicat for mysql 连接MySQL数据库
  • 三、MySQL数据库基本操作
    • 3.1 登录MySQL数据库
    • 3.2 查看数据库结构
      • 1)查看当前服务器中的数据库
      • 2)查看数据库中包含的表
      • 3)查看表的结构字段
    • 3.3 创建及删除数据库</font>和数据表</font>
      • 1)创建新的数据库
      • 2)创建新的
      • 3)删除指定的数据表
      • 4)删除指定的数据库
    • 3.4 管理数据表</font>中的数据记录</font>
      • 1)向数据表中插入新的数据记录
      • 2)查询数据记录
      • 3)修改、更新数据表中的数据记录
      • 4)在数据表中删除指定的数据记录
    • 3.5 修改表名</font>和表结构</font>
      • 1)修改表名
      • 2)扩展表结构(增加字段
      • 3)修改字段(列)名,添加唯一键
      • 4)删除字段
    • 3.6 扩展
  • 四、数据表的高级操作
    • 4.1 克隆表
    • 4.2 清空表
    • 4.3 创建临时表
    • 4.4 创建外键约束,保证数据的完整性和一致性
  • 五、数据库用户管理
    • 5.1 新建用户
    • 5.2 查看用户信息
    • 5.3 重命名用户
    • 5.4 删除用户
    • 5.5 修改当前登录用户密码
    • 5.6 修改其他用户密码
    • 5.7 忘记 root 密码的解决办法
  • 六、数据库用户授权
    • 6.1 授予权限
    • 6.2 查看权限
    • 6.3 撤销权限
  • 七、命令总结

一、数据库的基本概念

内核的作用:调用硬件资源

1.1 使用数据库的必要性

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。

数据库具有以下特点:
1)可以结构化存储大量的数据信息,方便用户进行有效的检索和访问;
2)可以有效地保持数据信息的一致性、完整性,降低数据冗余;
3)可以满足应用的共享和安全方面的要求。

数据库技术是计算机科学的核心技术之一,具有完备的理论基础。
对数据库基本概念的掌握,将有助于对数据库的理解。

1.2 数据库基本概念

1.2.1 数据(Data)

描述事物的符号记录

包括数字,文字、图形、图像、声音、档案记录等

以“记录”形式按统一的格式进行存储

1.2.2 表

将不同的记录组织在一起

用来存储具体数据

1.2.3 数据库

表的集合,是存储数据的仓库

以一定的组织方式存储的相互有关的数据集合

1.2.4 数据库管理系统(DBMS)

数据库管理系统是实现对数据库资源有效组织、 管理和存取的系统软件。

功能

数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。

数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。

数据操纵功能:包括数据查询统计和数据更新两个方面。

数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。

通信功能:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行 数据交换。

1.2.5 数据库系统

在这里插入图片描述

是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成。
用户可以通过DBMS或应用程序操作数据库。

1.3 数据库的分类

数据库分两大类,关系型数据库非关系型数据库

1.3.1 关系数据库 SQL

操作命令:SQL语句

存储结构:二维表格

存储的数据:结构化数据

库 -> 表 -> 二维表格形式的结构化数据   

每一行称为一条记录,用来描述一个对象的信息

每一列称为一个字段,用来描述对象的一个属性

1.3.2 非关系数据库 NoSQL

存储结构:键值对 文档 索引 时间序列
缓存型 Redis Memcached
文档型 MongoDB
索引型 ElasticSearch
时序型 Prometheus InfluxDB

1.4 主键

主键(Primary Key)是一个数据库表中的一列或一组列,用于确保数据的唯一性和数据行的唯一标识
在表中,主键的值是唯一的

主键具有以下特点:
1)唯一性:主键列中的值必须是唯一的,每一行的主键值都不相同。
2)非空性:主键列的值不能为空,也就是不允许为空值或NULL值。
3)唯一标识性:主键用于识别和区分表中的不同行数据,通过主键可以快速定位和访问表中的数据。

主键还可以用于建立表与表之间的关系,实现数据的关联和连接操作。

二、MySQL数据库简介

2.1 什么是MySQL?

一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改

2.2 MySQL的特点

● 性能卓越、服务稳定
● 开源、无版权限制、成本低
● 多线程、多用户
● 基于C/S(客户端/服务器)架构
● 安全可靠

2.3 常用的数据类型

int :整型 无符号[0,232-1],有符号[-231,2^31-1]
float :单精度浮点 4字节32位
double :双精度浮点 8字节64位
char :固定长度的字符类型
varchar :可变长度的字符类型
text :文本
image :图片
decimal(5,2) :5个有效长度数字,小数点后面有2位

2.4 SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

2.5 MySQL的约束特性(六大约束)

primary key(主键约束) 字段的值不能重复,且不能为null,一个表只能有一个唯一键

uniq key(唯一性约束) 字段的值不能重复,可以为null,一个表可以有多个唯一键

not null (非空约束) 字段的值不能为null

default (默认值约束) 字段的值如果没有设置,则使用默认值自动填充

auto_increment (自增约束) 字段的值如果没有设置,默认会从1开始,每次自动递增1,要求自增字段必须设置主键

int(N) zerofill (零填充)

2.6 用navicat for mysql 连接MySQL数据库

直接连接navicat,无法连接
mysql -u root -p  #登录数据库

show  databases;
#修改 
use mysql
select host,user from user;
update user set host='%'where user='root';
flush privileges;

在这里插入图片描述

配置完成后,启动navicat,配置相关项

在这里插入图片描述

配置完成后,点击连接测试,测试是否能连接成功

在这里插入图片描述

双击7-6,连接到目标数据库

在这里插入图片描述

三、MySQL数据库基本操作

3.1 登录MySQL数据库

表名和库名区分大小写

命令不区分大小写

mysqladmin -u root -p password "123123" #设置密码

mysql -u root -p #登录

在这里插入图片描述

3.2 查看数据库结构

1)查看当前服务器中的数据库

show databases;						#大小写不区分,分号“;”表示结束

在这里插入图片描述

2)查看数据库中包含的表

方式一

USE 数据库名;
show tables;

在这里插入图片描述

方式二

show tables from 数据库名;

在这里插入图片描述

3)查看表的结构字段

方式一 切换数据库

use 数据库名;
describe 表名; 
或者
desc 表名;

在这里插入图片描述

方式二

#不切换数据库
desc 库名.表名;

在这里插入图片描述

3.3 创建及删除数据库和数据表

1)创建新的数据库

create database <数据库名>;
#举个例子
create database byyb;

在这里插入图片描述

2)创建新的

create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
#举个例子
create database byyb;
use byyb;

create table by1 ( id int not null,name char(10) not null,score decimal (5,2),passwd char(48) default ' ' , primary key (id));

desc by1;

在这里插入图片描述

3)删除指定的数据表

drop table [数据库名.]表名;				#如不用USE进入库中,则需加上数据库名

在这里插入图片描述

4)删除指定的数据库

drop database 数据库名;

在这里插入图片描述

3.4 管理数据表中的数据记录

1)向数据表中插入新的数据记录

insert into表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);
#举个例子
insert into by1(id,name,score,passwd)  values(1,'zhangsan',70.5,password('123456'));
insert into by1(id,name,score,passwd) values(2,'lisi',80,123456);
insert into by1(id,name,score,passwd) values(2,'lisi',80,123456);
#使用 password('123456'),查询数据记录时,密码字串以加密形式显示
#若不使用password( ),查询时以明文显示

在这里插入图片描述

2)查询数据记录

select 字段名1,字段名2[,...] from 表名 [where 条件表达式];
#举个例子
select * from by1; #查询所有数据记录
select id,name,score from by1 where id=2; #查询特定的数据记录

在这里插入图片描述

#扩展用法1
select name from by1\G#以列表方式竖向显示

在这里插入图片描述

#扩展用法2
select * from by1 limit 2;				#只显示头2行
select * from by1 limit 2,3;			#显示第2行后的前3行

在这里插入图片描述
在这里插入图片描述

3)修改、更新数据表中的数据记录

update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
#举个例子
update by1 set name=123 where id=3;
update by1 set passwd='123456' where name='zhangsan';

在这里插入图片描述

4)在数据表中删除指定的数据记录

delete from 表名 [where 条件表达式];
#举个例子
delete from by1 where id=3;

3.5 修改表名和表结构

1)修改表名

alter table 旧表名 rename 新表名;
#举个例子
alter table by1 rename byy1

在这里插入图片描述

2)扩展表结构(增加字段

alter table 表名 add 新字段 数据类型 [字段属性];
#举个例子
alter table 表名 add address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用

在这里插入图片描述

3)修改字段(列)名,添加唯一键

alter table 表名 change 旧字段 新字段 数据类型 [字段属性];
#举个例子
ALTER TABLE KY08 CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。

在这里插入图片描述

4)删除字段

alter table 表名 drop 字段名;
#举个例子 
alter table byy1 drop passwd;

在这里插入图片描述

3.6 扩展

use byy1;
create table if not exists info (
id int(4) zerofill primary key auto_increment,	#指定主键的第二种方式
name varchar(10) not null default '匿名', #不允许为空
cardid int(18) not null unique key,  #唯一键
hobby varchar(50));

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键

#not null:表示此字段不允许为NULL
create table if not exists info (id int(4) zerofill primary key auto_increment,name varchar(10) not null default '匿名',cardid int(18) not null unique key,hobby varchar(50));

在这里插入图片描述

四、数据表的高级操作

4.1 克隆表

将数据表的数据记录生成到新的表中

方法一

create table <新表> like <旧表>; #克隆表结构

insert into <新表> select * from <旧表>; #克隆表数据

#此方法能保证 新表的表结构、表数据 跟旧表都是一致的
#举个例子
create table byy2 like byy1;
insert into byy2 select * from byy1;

在这里插入图片描述

方法二

create table <新表> (select * from <旧表>); 
#此方法创建的新表的表数据和旧表是一样的,但可能会出现新表的表结构和旧表的不一致
#举个例子
create table byy3 (select * from byy1);

在这里插入图片描述

4.2 清空表

删除表内的所有数据

方法一

delete from 表名;        
#一条一条的删除记录,效率较慢;自增字段仍然会按照清空前的最大记录继续自增
#举个例子
delete from byy3;

在这里插入图片描述

方法二

truncate table 表名;
#直接重建表,清空表效率更快;自增字段会重新从1开始自增
#举个例子
truncate table byy2;

在这里插入图片描述

4.3 创建临时表

临时表创建成功之后,使用show tables命令是看不到创建的临时表的,临时表会在连接退出后被销毁。

如果在退出连接之前,也可以可执行增删改查等操作,比如使用 drop table语句手动直接删除临时表。

create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);

举个例子

create temporary table byyb2 (id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));

insert into byy2 values(1,'zhangsan',123456,'running');

select * from byy2;
show tables;
quit

select * from test03;

4.4 创建外键约束,保证数据的完整性和一致性

外键的定义:如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。

主键表和外键表的理解:
1)以公共关键字作主键的表为主键表(父表、主表)
2)以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

主键表
alter table 表名 add primary key (主键字段);

外键表
alter table 表名 add foreign key (外键字段) references 主键表名 (主键字段);
#插入新数据时,需要先在主键表插入数据再在外键表插入对应数据;删除数据时,需要先在外键表删除数据再在主键表删除对应数据

举个例子

#创建主表 profession
create table profession (pid int(4),proname varchar(50));

#创建从表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));

在这里插入图片描述

#为主表 profession 添加一个主键约束。主键名建议以“PK_”开头。
alter table profession add constraint PK_pid primary key (pid);

#为从表 student 表添加外键,并将 student 表的 proid 字段和 profession 表的 pid 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references profession (pid);

desc student;

#插入新的数据记录时,要先主表再从表
insert into profession values(1,'云计算');
insert into profession values(2,'大数据');
insert into student values(1,'zhangsan',18,1);
insert into student values(2,'lisi',19,1);
insert into student values(3,'wangwu',20,2);

在这里插入图片描述
在这里插入图片描述

#删数数据记录时,要先从表再主表,也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。
delete from student where proid=1;
delete from profession where pid=1;

在这里插入图片描述

在这里插入图片描述

#查看外键约束
show create table student;
desc student;

在这里插入图片描述

#删除外键约束
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

在这里插入图片描述

五、数据库用户管理

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

5.1 新建用户

create user '用户名'@'源地址'   identified by '密码';

'用户名'
指定将创建的用户名

'来源地址'
指定新创建的用户可在哪些主机上登录
可使用IP地址、网段、主机名的形式
本地用户可用localhost
允许任意主机登录可用通配符%

'密码'
若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;

若使用加密密码,需要先使用select password('密码'); 获取密文,再在语句中添加 password '密文';

若省略“identified by”部分,则用户的密码将为空(不建议使用)
create user 'user1'@'localhost' identified by '123456';

select passwd('abc123');

create user 'user2'@'localhost' identified by PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

5.2 查看用户信息

#创建后的用户保存在 mysql 数据库的 user 表里
use mysql;
select user,authentication_string,Host from user;

在这里插入图片描述

#查看当前登录用户
select user();

在这里插入图片描述

5.3 重命名用户

rename user 'zhangsan'@'localhost' to 'lisi'@'localhost';

在这里插入图片描述

5.4 删除用户

drop user 'lisi'@'localhost';

在这里插入图片描述

5.5 修改当前登录用户密码

#修改当前用户的密码
set password = password('abc123');

在这里插入图片描述

5.6 修改其他用户密码

#方式一
set password for 'user1'@'localhost' = PASSWORD('abc123');

在这里插入图片描述

#方式二
alter user '用户名'@'源地址' identified by '密码';

alter user 'root'@'%' indentified by 'abc123'

在这里插入图片描述

5.7 忘记 root 密码的解决办法

1)修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

vim /etc/my.cnf

[mysqld]
skip-grant-tables					#添加,使登录mysql不使用授权表

systemctl restart mysqld

mysql								#直接登录

2)使用 update 修改 root 密码,刷新数据库

update user set authentication_string=password('密码') where user='root';

FLUSH PRIVILEGES;
quit

mysql -u root -pabc123

#注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

六、数据库用户授权

6.1 授予权限

grant语句:专门用来设置数据库用户的访问权限
当指定的用户名不存在时,grant语句将会创建新的用户
当指定的用户名存在时, grant 语句用于修改用户信息

grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [indentified by '密码'];

#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。
#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。
#来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.byyb.com”、“192.168.80.%”等。
#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
#允许用户 zhangsan 在本地查询 byy 数据库中 所有表的数据记录,但禁止查询其他数据库中的表的记录。
grant select ON byy.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

#允许用户 lisi 在所有终端远程连接 mysql ,并拥有所有权限。
GRANT ALL [PRIVILEGES] ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';

flush privileges;
quit

mysql -u zhangsan -p123456
use byy;
show tables;
select * from byy1;

6.2 查看权限

show grants for 用户名@来源地址;

#举个例子
show grants for root;

在这里插入图片描述

6.3 撤销权限

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#举个例子
#移除用户所有权限
revoke all on *.* from byy;

show grants for 'lisi'@'%';
#USAGE权限只能用于数据库登陆,不能执行任何操作;
#USAGE权限不能被回收,即 REVOKE 不能删除用户。

flush privileges;

在这里插入图片描述

七、命令总结

use 库名;
show tables;      show tables from 库名;
desc [库名.]表名;

create database 库名;
use 库名;
create table [库名.]表名 (字段1 数据类型, 字段2 数据类型, ....[, primary key (字段)]);

drop table [库名.]表名;
drop database 库名;

修改表结构
改表名    alter table 旧表名 rename 新表名
增加字段  alter table 表名 add 新字段 数据类型 [字段属性];
修改字段  alter table 表名 change 旧字段 新字段 数据类型 [字段属性];
删除字段  alter table 表名 drop 字段;

DML:用于管理表数据
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);
insert into 表名 values (字段1的值, 字段2的值, ...);                      #要按照表结构的字段顺序设置值

update 表名 set 字段1=, ... where 条件表达式;

delete from 表名 where 条件表达式;

DQL:用于根据条件查询表数据
select * from 表名 [where 条件表达式];
select 字段1,字段2,... from 表名 [where 条件表达式];

select * from 表名\G      #纵向查看每行记录字段的值

select * from 表名 limit N;      #查看表的前N行记录
select * from 表名 limit N,M;    #查看表的前N行之后的连续M行记录(不包含第N行)


MySQL 的约束特性:
primary key      主键约束    字段的值不能重复,且不能为null,一个自建的表只能有一个主键
unique key       唯一性约束  字段的值不能重复,能为null,一个表可以有多个唯一键
not null         非空约束    字段的值不能为null
default          默认值约束  字段的值如果没有设置则使用默认值自动填充
auto_increment   自增约束    字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须设置主键
foreign key      外键约束    保证相关联的表数据的完整性和一致性

int(N) zerofill  零填充


克隆表
create table 新表 like 旧表;                    #克隆表结构
insert into 新表 (select * from 旧表);          #克隆表数据        可实现表结构和表数据与旧表都一样

create table 新表 (select * from 旧表);         表数据与旧表一样,表结构与旧表可能不一样

清空表
delete from 表名;        一条一条的删除记录,效率较慢;自增字段仍然会按照清空前的最大记录继续自增

truncate table 表名;     直接重建表,清空表效率更快;自增字段会重新从1开始自增

临时表
create temporary table 表名 (....);   临时表可以跟普通的表一样增删改查表中的数据,但是show tables是查看不到的,
                                      临时表只能在当前会话中有效,在其它会话中或者退出当前会话连接,临时都会失效

外键约束
主键表: alter table 表名 add primary key (主键字段);
外键表: alter table 表名 add foreign key (外键字段) references 主键表名 (主键字段);
        插入新数据时,需要先在主键表插入数据再在外键表插入对应数据;删除数据时,需要先在外键表删除数据再在主键表删除对应数据


DCL:用于管理用户与权限
用户管理
select user();        查看当前登录的用户

create user '用户名'@'源地址'   identified by '密码';
                      localhost/IP/网段/主机名/%
					  
rename user '旧用户名'@'源地址' to '新用户名'@'源地址';
					  
drop user '用户名'@'源地址';

select user,host,authentication_string from mysql.user;					  

set password = password('密码');
set password for '用户名'@'源地址' = password('密码');
alter user '用户名'@'源地址' identified by '密码';

找回 root 密码?
1)修改mysql配置文件,在 [mysqld] 下面添加 skip-grant-tables 配置项
2)重启mysqld服务,使用 mysql 密码直接登录 mysql
3)执行 update user set authentication_string=password('密码') where user='root'; 命令修改 root 用户的密码
4)还原mysql配置文件,重启mysqld服务,使用 mysql -u 用户名 -p密码 [-h mysql地址 -P mysql端口] 命令来验证登录

权限管理
grant 权限1,权限2,....  on 库名.表名   to  '用户名'@'源地址'  [identified by '密码'];     #5.7版本支持创建用户和权限授权,8.0版本只能用于权限授权
      all                     *.*

show grants for '用户名'@'源地址';

revoke 权限1,权限2,....  on 库名.表名  from  '用户名'@'源地址';
       all

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL主从数据库搭建

1 背景 最近工作需要对比几种数据库技术方案&#xff0c;主从读写分离集群也是其中之一。现将该集群搭建过程记录下来&#xff0c;以便后面查看回忆。 2 主从集群 2.1 原理 主从复制的原理如下图所示&#xff1a; 2.2 集群划分 我在搭建主从集群时已经使用用虚拟机安装了do…

【数据结构】树的存储结构;树的遍历;哈夫曼树;并查集

欢~迎~光~临~^_^ 目录 1、树的存储结构 1.1双亲表示法 1.2孩子表示法 1.3孩子兄弟表示法 2、树与二叉树的转换 3、树和森林的遍历 3.1树的遍历 3.1.1先根遍历 3.1.2后根遍历 3.2森林的遍历 3.2.1先序遍历森林 3.2.2中序遍历森林 4、树与二叉树的应用 4.1哈夫曼树…

redis桌面连接工具Another Redis Desktop Manager使用介绍

Another Redis Desktop Manager是一种类似于navicat的数据库连接工具&#xff0c;专门用来连接redis&#xff0c;使用起来非常简单方便&#xff0c;在这里推荐给大家。 没有用过这个软件的&#xff0c;首先通过下面的网盘链接下载Another Redis Desktop Manager 百度网盘redi…

SQL死锁进程内容查询语句

1.方式1 SELECT object_name(A.resource_associated_entity_id) as TABLENAME, A.request_session_id AS SPID,DB_NAME(B.dbid) AS DBName,B.blocked,B.dbid,B.program_name,B.waitresource,B.lastwaittype,B.loginame,B.hostname,B.login_time,B.last_batch--,B.* FROM sy…

Qt5开发及实例V2.0-第四章Qt基本对话框

Qt5开发及实例V2.0-第四章Qt基本对话框 第4章 Qt 5基本对话框4.1 标准文件对话框类4.1.1 函数说明4.1.2 创建步骤 4.2 标准颜色对话框类4.2.1 函数说明4.2.2 创建步骤 4.3 标准字体对话框类4.3.1 函数说明4.3.2 创建步骤 4.4 标准输入对话框类4.4.1 标准字符串输入对话框4.4.2 …

全是模板的数据分析工具有哪些?

当一个全是模板的数据分析工具&#xff0c;一个以点击、拖拉拽就能制作报表的工具摆在眼前&#xff0c;人人都能随需分析&#xff0c;自定义分析&#xff0c;在极短的时间内实现智能数据可视化分析挖掘。SpeedBI数据分析云就是这样的一个全是模板且点击、拖拉拽做分析报表的数据…

【SpringMVC】基础部分

SpringMvc Spring MVC 是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。 MVC&#xff08;Model View Controller&#xff09;&#xff0c;一种用于设计创建Web应用程序表现层的模式 Model&#xff08;模型&#xff09;&#xff1a;数据模型&#xff0c;用于封装数据…

服务网格的面临挑战:探讨服务网格实施中可能遇到的问题和解决方案

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Ubuntu 20.04中Nightingale二进制部署

参考博客《【夜莺监控】初识夜莺&#xff0c;强&#xff01;》 lsb_release -r可以看到操作系统版本是20.04&#xff0c;uname -r可以看到内核版本是5.5.19。 sudo apt-get update进行更新镜像源。 完成之后&#xff0c;如下图&#xff1a; sudo apt-get upgrade更新软件…

JSplitPane与JTabledPane

Swing提供了一些具有特殊功能的容器 &#xff0c; 这些特殊容器可以用于创建一些更复杂的用户界面。 使用JSplitPane JSplitPane 用于创建一个分割面板,它可以将 一个组件(通常是一个容器)分割成两个部分&#xff0c;并提供一个分割条 &#xff0c; 用户可以拖动该分割条来调…

springboot和vue:五、RESTful服务+HTTP状态码+swagger配置

RESTful RESTful的特点 每一个URI代表一种资源客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作&#xff1a;POST用于新建资源&#xff08;也可以用于更新资源&#xff09;&#xff0c;PUT用于更新资源资源的表现形式是JSON或者HTML。客户端与服…

Cilium 1.11:服务网格的未来已来

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

1个G的视频能压缩到几M?视频过大这样压缩

一个G的视频能压缩到几M&#xff0c;具体取决于视频的质量、编码方式&#xff0c;以及压缩软件使用的算法。一般来说&#xff0c;高质量的视频压缩需要更高的比特率&#xff0c;这就意味着更大的文件大小。另一方面使用有效的压缩算法或降低视频的分辨率等&#xff0c;也可以减…

MySQL BufferPool缓存与Redo日志是如何提升事务性能的

文章目录 引言一、BufferPool缓存的作用与优势1.1 BufferPool缓存的定义与作用1.2 BufferPool缓存的作用1.3 Change Buffer 作用 二、BufferPool缓存的优势2.1 减少磁盘IO操作的次数2.2 提高数据的读取速度2.3 减轻磁盘负载&#xff0c;提升整体系统性能 三、BufferPool缓存的工…

全国职业技能大赛云计算--高职组赛题卷③(私有云)

全国职业技能大赛云计算--高职组赛题卷③&#xff08;私有云&#xff09; 第一场次题目&#xff1a;OpenStack平台部署与运维任务1 基础运维任务&#xff08;5分&#xff09;任务2 OpenStack搭建任务&#xff08;15分&#xff09;任务3 OpenStack云平台运维&#xff08;15分&am…

R语言画图

简单记录一下 plot(lad_profile_relative$lad, lad_profile_relative$height, type"l", lwd1.5, xlabexpression(paste("LAD ", "(", m^2, m^-3, ")" )), ylab"Height (m)")X轴数据&#xff0c; Y轴数据 type, 标记类型 lw…

FPGA的主流技术与市场表现方面的调研报告

撰写简单的FPGA的主流技术与市场表现方面的调研报告&#xff0c;表达自己的认知和发展展望&#xff0c;500字&#xff0c;图片&#xff0c;表格除外 FPGA简介 FPGA&#xff08;Field-Programmable Gate Array&#xff09;是一种可编程逻辑器件&#xff0c;是在PAL &#xff08…

电商项目高级篇-01 elasticsearch

电商项目高级篇-01 elasticsearch 1、linux下安装elasticsearch和可视化工具 1、linux下安装elasticsearch和可视化工具 将安装好jdk1.8和tomcat的centos7下安装elasticsearch docker pull elasticsearch:7.4.2docker pull kibana:7.4.2##docker下安装软件需要配置挂载。方便…

MySQL性能优化——MYSQL执行流程

MySQL 执行流程1-5如下图。 MySQL 的架构共分为两层&#xff1a;Server 层和存储引擎层&#xff0c; Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现&#xff0c;主要包括连接器&#xff0c;查询缓存、解析器、预处理器、优化器、执行器等。…

简单易上手,亚马逊云科技Amazon CodeWhisperer个性化辅助功能成为开发者好帮手

Amazon CodeWhisperer介绍 Amazon CodeWhisperer是亚马逊云科技出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。类似Cursor和Github Copilot编码工具。在编写代码时&#xff0c;它会自动根据您现有的代码和注释生成建议。从单行代码建议到完整的函数&…