数据库MySQL基础

目录

一、数据库的介绍

1.数据库概述

(1)数据的存储方式

(2)数据库

2.常见数据库排行榜

 二、数据库的安装与卸载

1.数据库的安装

2.数据库的卸载

三、数据库服务的启动与登录

1.Windows 服务方式启动

(1)操作步骤

2.DOS 命令方式启动

(1)操作步骤

3.控制台连接数据库

(1)登录格式1

(2)登录格式2

(3)登录格式 3

(4)退出 MySQL

 4.SQLyog 图形化工具—客户端

(1)使用 SQLyog 登录数据库

5.MySQL 目录结构

6.数据库管理系统

7.数据库管理系统、数据库和表的关系

四、SQL 的概念

1.SQL

2.SQL 作用

3.SQL 语句分类

4.MySQL 的语法

五、DDL 操作数据库

1.创建数据库

(1)创建数据库的几种方式

(2)具体操作

2.查看数据库

3.修改数据库

(1)修改数据库默认的字符集

(2)具体操作

4.删除数据库

(1)删除数据库的语法

(2)具体操作

5.使用数据库

(1)查看正在使用的数据库

(2)使用/切换数据库

(3)具体操作

六、DDL 操作表结构  

1.创建表

(1)创建表的格式

(2)关键字说明

2.MySQL 数据类型

(1)常使用的数据类型如下

(2)详细的数据类型如下

(3)具体操作

3.查看表

(1)查看某个数据库中的所有表

(2)查看表结构

(3)查看创建表的 SQL 语句

(4)具体操作

4.快速创建一个表结构相同的表

(1)语法

(2)具体操作

5.删除表

(1)直接删除表

(2)判断表是否存在,如果存在则删除表

6.修改表结构

(1)添加表列 ADD

(2)修改列类型 MODIFY

(3)修改列名 CHANGE

(4)删除列 DROP

(5)修改表名

(6)修改字符集 character set

七、DML 操作表中的数据

1.插入记录

(1)插入全部字段  

(2) 插入部分数据

(3)具体操作

2.DOS 命令窗口操作数据乱码问题的解决

(1)insert 的注意事项

(2)乱码产生的原因

(3)查看 MySQL 内部设置的编码

(4)解决方案

3.蠕虫复制

(1)蠕虫复制

(2)语法格式

(3)具体操作

4.更新表记录

(1)不带条件修改数据

(2)带条件修改数据

(3)具体操作

5.删除表记录

(1)不带条件删除数据

(2)带条件删除数据

(3)使用 truncate 删除表中所有记录

(4)truncate 和 delete 的区别

(5)具体操作

八、DQL 查询表中的数据

1.简单查询

(1)查询表所有行和列的数据

(2)查询指定列

2.指定列的别名进行查询

(1)使用关键字

(2)语法

(3)具体操作

3.清除重复值  

(1)查询指定列并且结果不出现重复数据

(2)具体操作

4.查询结果参与运算

(1)某列数据和固定值运算

(2)某列数据和其他列数据参与运算

(3) 具体操作

5.条件查询

(1)条件查询

(2)条件查询的语法

(3) 运算符

(4) 逻辑运算符

(5)in 关键字

(6)范围查询

(7)like 关键字和MySQL 通配符


一、数据库的介绍

1.数据库概述

(1)数据的存储方式

Java 中创建对象: Student s = new Student(1, "张三") 存在内存中

 (2)数据库

a.存储数据的仓库.

b.本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的.

c.所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS DataBase Management System.

2.常见数据库排行榜

MySQL:开源免费的数据库,小型的数据库,已经被 Oracle 收购了。MySQL6.x 版本也开始收费。后来Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购。

Oracle:收费的大型数据库,Oracle 公司的产品。

DB2 :IBM 公司的数据库产品,收费的。常应用在银行系统中。

SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。

SQLite: 嵌入式的小型数据库,应用在手机端,如:Android。

 二、数据库的安装与卸载

 安装过程分成两个部分:

a.文件解压和复制过程,默认的安装目录:C:\Program Files\MySQL Server 5.5\

b.安装好以后必须对 MySQL 服务器进行配置

1.数据库的安装

a.打开下载的 mysql 安装文件双击解压缩,运行“mysql-5.5.40-win32.msi”。

 b.选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom,”按“next”键继续。

c.点选“Browse”,手动指定安装目录

d.填上安装目录,按“OK”继续,不建议选择默认的,最好改个目录,全英文的,不要带空格的。

e.确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。

f.正在安装中,请稍候,直到出现下面的界面, 则完成 MYSQL 的安装

g.安装完成了,出现如下界面将进入 mysql 配置向导。

h.选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。

i.选择服务器类型,“Developer Machine(开发测试类,mysql 占用很少资源)”、“Server Machine(服务器类型,mysql 占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql 占用所有可用资源)”

j.选择mysql 数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对 MyISAM 数据类型的支持仅限于 non-transactional),按“Next”继续。

k.选择网站并发连接数,同时连接的数目“D,ecision Support(DSS)/OLAP(20个左右)“”O、nline TransactionProcessing(OLTP)(500 个左右)”、“Manual Setting(手动设置,自己输一个数)”。

l.是否启用 TCP/IP 连接,设定端口,如果不启用,就只能在自己的机器上访问 mysql 数据库了,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),这样 MySQL 就不会允许细小的语法错误。如果是新手,建议您取消标准模式以减少麻烦。但熟悉 MySQL 以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续

m.就是对 mysql 默认数据库语言编码进行设置(重要),一般选 UTF-8,按 “Next”继续。

n.选择是否将 mysql 安装为 windows 服务,还可以指定 Service Name(服务标识名称),是否将 mysql 的 bin 目录加入到 Windows PATH(加入后,就可以直接使用 bin 下的文件,而不用指出目录名,比如连接, “mysqle.xe -uusername -ppassword;”就可以了,不用指出 mysql.exe 的完整地址,很方便),我这里全部打上了勾,Service Name 不变。按“Next”继续。

o.询问是否要修改默认 root 用户(超级管理)的密码。“Enable root access from remote machines(是否允许 root 用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。

p.确认设置无误,按“Execute”使设置生效,即完成 MYSQL 的安装和配置。

注意:设置完毕,按“Finish”后有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装 mysql 的服务器上,解决的办法,先保证以前安装的 mysql 服务器彻底卸载掉了;不行的话,检查是否按上面一步所说, 之前的密码是否有修改,照上面的操作;如果依然不行,将 mysql 安装目录下的 data 文件夹备份,然后删除,在安装完成后,将安装生成的 data 文件夹删除,备份的 data 文件夹移回来,再重启 mysql 服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。

 2.数据库的卸载

a.停止 window 的 MySQL 服务。 找到“控制面板”-> “管理工具”-> “服务”,停止 MySQL 后台服务。

b.卸载 MySQL 安装程序。找到“控制面板”-> "程序和功能",卸载 MySQL 程序。

c.删除 MySQL 安装目录下的所有文件。

d.删除 c 盘 ProgramDate 目录中关于 MySQL 的目录。路径为:C:\ProgramData\MySQL(是隐藏文件,需要显示出来)

三、数据库服务的启动与登录

MySQL 服务器启动方式有两种:

a.通过服务的方式自动启动。

b.手动启动的方式。

1.Windows 服务方式启动

(1)操作步骤

2.DOS 命令方式启动

(1)操作步骤

3.控制台连接数据库

        MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的 root 账号,使用安装时设置的密码即可登录。

(1)登录格式1

mysql -u 用户名 -p 密码

 后输入密码方式:

(2)登录格式2

mysql -hip 地址 -u 用户名 -p 密码

(3)登录格式 3

mysql --host=ip 地址 --user=用户名 --password=密码

(4)退出 MySQL

 quit 或 exit

 4.SQLyog 图形化工具—客户端

        SQLyog 是业界著名的Webyog 公司出品的一款简洁高效、功能强大的图形化MySQL 数据库管理工具。使用SQLyog 可以快速直观地让您从世界的任何角落通过网络来维护远端的 MySQL 数据库。

(1)使用 SQLyog 登录数据库

5.MySQL 目录结构

6.数据库管理系统

        数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理 系统访问数据库中表内的数据。        

7.数据库管理系统、数据库和表的关系

        数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体 User 的数据。数据库管理系统、数据库和表的关系如图所示:

四、SQL 的概念

1.SQL

        Structured Query Language 结构化查询语言。

2.SQL 作用

a.是一种所有关系型数据库的查询规范,不同的数据库都支持。

b.通用的数据库操作语言,可以用在不同的数据库中。

c.不同的数据库 SQL语句有一些区别。

3.SQL 语句分类

a.Data Definition Language (DDL 数据定义语言) 如:建库,建表。

b.Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删改。

c.Data Query Language(DQL 数据查询语言),如:对表中的查询操作。

d.Data Control Language(DCL 数据控制语言),如:对用户权限的设置。

4.MySQL 的语法

a.每条语句以分号结尾,如果在 SQLyog 中不是必须加的。

b.SQL 中不区分大小写,关键字中认为大写和小写是一样的。

c.3 种注释:

五、DDL 操作数据库

1.创建数据库

(1)创建数据库的几种方式

a.创建数据库

CREATE DATABASE 数据库名;	

b.判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;	

c.创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

(2)具体操作

-- 直接创建数据库 db1
create database db1;
-- 判断是否存在,如果不存在则创建数据库 db2
create database if not exists db2;
-- 创建数据库并指定字符集为 gbk
create database db3 default character set gbk;

2.查看数据库

按 tab 键可以自动补全关键字.

-- 查看所有的数据库
show databases;
-- 查看某个数据库的定义信息
show create database db3;
show create database db1;

3.修改数据库

(1)修改数据库默认的字符集

ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

(2)具体操作

-- 将 db3 数据库的字符集改成 utf8
alter database db3 character set utf8;

4.删除数据库

(1)删除数据库的语法

DROP DATABASE 数据库名;	

(2)具体操作

每行 SQL 语句需要选中再执行,可以按 F9.

--  删除 db2 数据库
drop database db2;

5.使用数据库

(1)查看正在使用的数据库

-- 使用的一个 mysql 中的全局函数	
SELECT DATABASE();	

(2)使用/切换数据库

USE 数据库名;

(3)具体操作

-- 查看正在使用的数据库
select database();
-- 改变要使用的数据库
use db4;

六、DDL 操作表结构  

1.创建表

(1)创建表的格式

CREATE TABLE 表名 (
字段名 1 字段类型 1,
字段名 2 字段类型 2
);

(2)关键字说明

2.MySQL 数据类型

(1)常使用的数据类型如下

(2)详细的数据类型如下

(3)具体操作

-- 创建 student 表包含 id,name,birthday 字段
create table student (
id int, -- 整数
name varchar(20), -- 字符串
birthday date -- 生日,最后没有逗号
);

3.查看表

(1)查看某个数据库中的所有表

SHOW TABLES;

(2)查看表结构

DESC 表名;

(3)查看创建表的 SQL 语句

SHOW CREATE TABLE 表名;

(4)具体操作

-- 查看 day21 数据库中的所有表
use day21;
show tables;-- 查看 student 表的结构
desc student;-- 查看 student 的创建表 SQL 语句
show create table student;

执行结果 :

  CREATE TABLE `student` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL,`birthday` date DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8

4.快速创建一个表结构相同的表

(1)语法

 CREATE TABLE 新表名 LIKE 旧表名;    

(2)具体操作

-- 创建一个 s1 的表与 student 结构相同
create table s1 like student;
desc s1;

5.删除表

(1)直接删除表

 DROP TABLE 表名;    

(2)判断表是否存在,如果存在则删除表

DROP TABLE IF EXISTS 表名;

6.修改表结构

(1)添加表列 ADD

ALTER TABLE 表名 ADD 列名 类型;

(2)修改列类型 MODIFY

ALTER TABLE 表名 MODIFY 列名 新的类型;

(3)修改列名 CHANGE

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

(4)删除列 DROP

ALTER TABLE 表名 DROP 列名;

(5)修改表名

RENAME TABLE 表名 TO 新表名; 

(6)修改字符集 character set

ALTER TABLE 表名 character set 字符集;

七、DML 操作表中的数据

1.插入记录

INSERT [INTO] 表名 [字段名] VALUES (字段值)
INSERT INTO 表名:表示往哪张表中添加数据
(字段名 1, 字段名 2, …):要给哪些字段设置值
VALUES (值 1, 值 2, …):设置具体的值

(1)插入全部字段  

a.所有的字段名都写出来

INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3…) VALUES (值 1, 值 2, 值 3);

b.不写字段名

INSERT INTO 表名 VALUES (值 1, 值 2, 值 3…); 

(2) 插入部分数据

INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (值 1, 值 2, ...);

注:没有添加数据的字段会使用 NULL 。 

(3)具体操作

--插入所有的列,向学生表中
insert into student (id,name,age,sex) values (1, '张三', 20, '男');
insert into student (id,name,age,sex) values (2, '李四', 16, '男');-- 插入所有列
insert into student values (3, '王五', 18, '男', '北京');-- 如果只插入部分列,必须写列名
insert into student values (3, '王五', 18, '男');--查询所有学生
select * from student;

2.DOS 命令窗口操作数据乱码问题的解决

当我们使用 DOS 命令行进行 SQL 语句操作如有有中文会出现乱码,如下所示

(1)insert 的注意事项

a.插入的数据应与字段的数据类型相同。

b.数据的大小应在列的规定范围内,例如:不能将一个长度为 80 的字符串加入到长度为 40 的列中。

c.在 values 中列出的数据位置必须与被加入的列的排列位置相对应。在 mysql 中可以使用 value,但不建议使用,功能与 values 相同。

d.字符和日期型数据应包含在单引号中。MySQL 中也可以使用双引号做为分隔符。

e.不指定列或使用 null,表示插入空值。

(2)乱码产生的原因

(3)查看 MySQL 内部设置的编码

查看包含 character 开头的全局变量

show variables like 'character%';

(4)解决方案

        修改 client、connection、results 的编码为 GBK,保证和 DOS 命令行编码保持一致,同时设置三项:

set names gbk;

注意:退出 DOS 命令行就失效了,需要每次都配置  

3.蠕虫复制

(1)蠕虫复制

将一张已经存在的表中的数据复制到另一张表中。

(2)语法格式

a.将表名 2 中的所有的列复制到表名 1 中

INSERT INTO 表名 1 SELECT * FROM 表名 2;

b.只复制部分列

INSERT INTO 表名 1(列 1, 列 2) SELECT 列 1, 列 2 FROM student; 

(3)具体操作

-- 创建 student2 表,student2 结构和 student 表结构一样
drop table student2;
create table student2 like student;-- 将 student 表中的数据添加到 student2 表中
insert into student2 select * from student;-- 如果只想复制 student 表中 name,age 字段数据到 student2 表中,两张表都写出相应的列名
insert into student2 (name,age) select name,age from student;
select * from student2;

4.更新表记录

UPDATE 表名 SET 列名=值 [WHERE 条件表达式]
UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合条件的记录才更新
你可以同时更新一个或多个字段。
你可以在 WHERE 子句中指定任何条件。

(1)不带条件修改数据

UPDATE 表名 SET 字段名=值; -- 修改所有的行

(2)带条件修改数据

UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

(3)具体操作

-- 不带条件修改数据,将所有的性别改成女
update student set sex = '女';-- 带条件修改数据,将 id 号为 2 的学生性别改成男
update student set sex='男' where id=2;-- 一次修改多个列,把 id 为 3 的学生,年龄改成 20 岁,address 改成北京
update student set age=20, address='北京' where id=3;

5.删除表记录

DELETE FROM 表名 [WHERE 条件表达式]
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件

(1)不带条件删除数据

DELETE FROM 表名;

(2)带条件删除数据

DELETE FROM 表名 WHERE 字段名=值;

(3)使用 truncate 删除表中所有记录

TRUNCATE TABLE 表名;

(4)truncate 和 delete 的区别

truncate 相当于删除表的结构,再创建一张表。

(5)具体操作

-- 带条件删除数据,删除 id 为 1 的记录
delete from student where id=1;-- 不带条件删除数据,删除表中的所有数据
delete from student;

八、DQL 查询表中的数据

查询不会对数据库中的数据进行修改,只是一种显示数据的方式。

SELECT 列名 FROM 表名 [WHERE 条件表达式]
a.SELECT 命令可以读取一行或者多行记录。
b. 你可以使用星号(*)来代替其他字段,SELECT 语句会返回表的所有字段数据
c.你可以使用 WHERE 语句来包含任何条件。

1.简单查询

(1)查询表所有行和列的数据

a.使用*表示所有列

SELECT * FROM 表名;

b.查询所有的学生

 select * from student;

(2)查询指定列

a.查询指定列的数据,多个列之间以逗号分隔

SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;

b.查询 student 表中的 name 和 age 列

select name,age from student; 

2.指定列的别名进行查询

(1)使用关键字

使用别名的好处: 显示的时候使用新的名字,并不修改表的结构。

(2)语法

-- 使用别名
select name as 姓名,age as 年龄 from student;-- 表使用别名
select st.name as 姓名,age as 年龄 from student as st

a.对列指定别名

SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名;    

b.对列和表同时指定别名

SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名; 

(3)具体操作

-- 使用别名
select name as 姓名,age as 年龄 from student;-- 表使用别名
select st.name as 姓名,age as 年龄 from student as st

3.清除重复值  

(1)查询指定列并且结果不出现重复数据

SELECT DISTINCT 字段名 FROM 表名;    

(2)具体操作

-- 查询学生来至于哪些地方
select address from student;-- 去掉重复的记录
select distinct address from student;

4.查询结果参与运算

(1)某列数据和固定值运算

SELECT 列名 1 + 固定值 FROM 表名;    

(2)某列数据和其他列数据参与运算

 SELECT 列名 1 + 列名 2 FROM 表名;    

(3) 具体操作

-- 查询所有学生
select * from student;
-- 给所有的数学加 5 分
select math+5 from student;
-- 查询 math + english 的和
select *,(math+english) as 总成绩 from student;
-- as 可以省略
select *,(math+english) 总成绩 from student;

5.条件查询

(1)条件查询

        如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤。

(2)条件查询的语法

SELECT 字段名 FROM 表名 WHERE 条件;

(3) 运算符

操作 :

-- 查询 math 分数大于 80 分的学生
select * from student3 where math>80;-- 查询 english 分数小于或等于 80 分的学生
select * from student3 where english <=80;-- 查询 age 等于 20 岁的学生
select * from student3 where age = 20;-- 查询 age 不等于 20 岁的学生,注:不等于有两种写法
select * from student3 where age <> 20;
select * from student3 where age != 20;

(4) 逻辑运算符

操作 :

-- 查询 age 大于 35 且性别为男的学生(两个条件同时满足)
select * from student3 where age>35 and sex='男';-- 查询 age 大于 35 或性别为男的学生(两个条件其中一个满足)
select * from student3 where age>35 or sex='男';-- 查询 id 是 1 或 3 或 5 的学生
select * from student3 where id=1 or id=3 or id=5;

(5)in 关键字

SELECT 字段名 FROM 表名 WHERE 字段 in (数据 1, 数据 2...);
in 里面的每个数据都会作为一次条件,只要满足条件的就会显示

 操作 :

-- 查询 id 是 1 或 3 或 5 的学生
select * from student3 where id in(1,3,5);-- 查询 id 不是 1 或 3 或 5 的学生
select * from student3 where id not in(1,3,5);

(6)范围查询

操作:

-- 查询 english 成绩大于等于 75,且小于等于 90 的学生
select * from student3 where english between 75 and 90;

(7)like 关键字和MySQL 通配符

操作:

-- 查询姓张的学生
select * from student3 where name like '张%';
select * from student3 where name like '张';-- 查询姓名中包含'德'字的学生
select * from student3 where name like '%德%';-- 查询姓李,且姓名有两个字的学生
select * from student3 where name like '李_';

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java反序列化漏洞-TemplatesImpl利用链分析

文章目录 一、前言二、正文1. 寻找利用链2. 构造POC2.1 生成字节码2.2 加载字节码1&#xff09;getTransletInstance2&#xff09;defineTransletClasses 2.3 创建实例 3. 完整POC 三、参考文章 一、前言 java.lang.ClassLoader#defineClass defineClass可以加载字节码&…

相机常见名词详解

本文主要参考超人视觉课程做的笔记&#xff0c;有讲解不太懂的&#xff0c;又做了详细的解释 1、物距&#xff1a;物体到镜片的距离&#xff1b; 2、像距&#xff1a;像到镜片的距离&#xff1b; 3、焦距&#xff1a;镜片到焦点的距离&#xff1b; (1)二倍焦距以外&#xff…

AF路由模式组网部署

实验拓扑 防火墙基本配置 接口配置 eth1 eth2 eth3 路由配置 地址转换配置 放通策略 1. 出口申请了主电信、备联通两条外网线路&#xff08;均为 50M 带宽&#xff09;。 2. 内网有 web 服务器linux 172.16.3.100运行 http 服务&#xff0c;内外网用户通过 出口路由器…

用PG Back Web轻松进行PostgreSQL备份

什么是 PG Back Web &#xff1f; PG Back Web &#x1f418; 使用用户友好的 Web 界面轻松进行 PostgreSQL 备份&#xff01;&#x1f310;&#x1f4be;。PG Back Web 不仅仅是另一个备份工具。借助 PG Back Web&#xff0c;用户可以通过受 PGP 加密保护的直观 Web 界面轻松安…

【redis】数据量庞大时的应对策略

文章目录 为什么数据量多了主机会崩分布式系统应用数据分离架构应用服务集群架构负载均衡器数据库读写分离 引入缓存冷热分离架构 分库分表微服务是什么代价优势 为什么数据量多了主机会崩 一台主机的硬件资源是有上限的&#xff0c;包括但不限于一下几种&#xff1a; CPU内存…

【Postgresql】地理空间数据的存储与查询,查询效率优化策略,数据类型与查询速度的影响

注&#xff1a;使用postgresql数据库会用到PostGIS 扩展。 一、安装PostGIS 扩展 在 PostgreSQL 中遇到错误 “type geography does not exist” 通常意味着你的 PostgreSQL 数据库还没有安装 PostGIS 扩展&#xff0c;或者 PostGIS 扩展没有被正确地安装在你的数据库中。geo…

我司使用了两年的高效日志打印工具,非常牛逼!

为了更方便地排查问题&#xff0c;电商交易系统的日志中需要记录用户id和订单id等字段。然而&#xff0c;每次打印日志都需要手动设置用户id&#xff0c;这一过程非常繁琐&#xff0c;需要想个办法优化下。 log.warn("user:{}, orderId:{} 订单提单成功",userId, or…

linux服务器之top命令详解

top&#xff1a;系统资源管理器 top命令类似于windows的任务管理器&#xff0c;可以查看内存、cpu、进程等信息(动态查看系统资源信息)在linux系统中常用top命令查看资源性能分析工具 一、参数释义&#xff1a; 第一行 系统时间和平均负载 top&#xff1a;名称22:12:46&#…

Spring Boot 部署方案!打包 + Shell 脚本详解

本篇和大家分享的是springboot打包并结合shell脚本命令部署&#xff0c;重点在分享一个shell程序启动工具&#xff0c;希望能便利工作&#xff1b; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_p…

一文梳理RAG(检索增强生成)的现状与挑战

一 RAG简介 大模型相较于过去的语言模型具备更加强大的能力&#xff0c;但在实际应用中&#xff0c;例如在准确性、知识更新速度和答案透明度方面&#xff0c;仍存在不少问题&#xff0c;比如典型的幻觉现象。因此&#xff0c;检索增强生成 (Retrieval-Augmented Generation, …

哪种超声波清洗机效果好?较好的超声波眼镜清洗机品牌推荐

作为一名拥有20年戴镜经验的眼镜爱好者&#xff0c;我深深体会到眼镜清洁的挑战&#xff1a;微小缝隙里的污垢难以触及&#xff0c;频繁的脏污让我苦于找不到清洁时机&#xff0c;而用力不当的擦拭方法更是可能对眼镜特别是镜片造成伤害&#xff0c;这确实让人感到苦恼&#xf…

Java专栏介绍

专栏导读 在当今这个技术飞速发展的时代&#xff0c;Java作为一门成熟且广泛应用的编程语言&#xff0c;一直是软件开发领域的中坚力量。本“Java技术”专栏旨在帮助读者深入理解Java编程语言的精髓&#xff0c;掌握其核心概念与高级特性&#xff0c;并通过实战案例提升编程技…

字符编码转换

文章目录 1. 背景2. 解决方案3. 编码转换实现3.1 shell实现3.2 python实现3.3 开源工具实现 4. 常见中文字符编码介绍4.1 字符编码解决什么问题4.2 常见的中文字符编码4.3 常见中文字符编码关系4.4 unicide字符集与utf-8 1. 背景 在团队合作开发中&#xff0c;经常发现组员的代…

Redis安装步骤——离线安装与在线安装详解

Linux环境下Redis的离线安装与在线安装详细步骤 环境信息一、离线安装1、安装环境2、下载redis安装包3、上传到服务器并解压4、编译redis5、安装redis6、配置redis&#xff08;基础配置&#xff09;7、启动redis8、本机访问redis9、远程访问redis 二、在线安装1、更新yum源2、安…

k8s 高级调度

搞懂Kubernetes调度 K8S调度器Kube-schduler的主要作用是将新创建的Pod调度到集群中的合适节点上运行。kube-scheduler的调度算法非常灵活&#xff0c;可以根据不同的需求进行自定义配置&#xff0c;比如资源限制、亲和性和反亲和性等。 kube-scheduler的工作原理如下&#x…

基于SpringBoot+Vue+MySQL的宿舍维修管理系统

系统展示 前台界面 管理员界面 维修员界面 学生界面 系统背景 在当今高校后勤管理的日益精细化与智能化背景下&#xff0c;宿舍维修管理系统作为提升校园生活品质、优化资源配置的关键环节&#xff0c;其重要性日益凸显。随着学生规模的扩大及住宿条件的不断提升&#xff0c;宿…

Qt/C++ 个人开源项目#串口助手(源码与发布链接)

一、项目概述 该串口助手工具基于Qt/C开发&#xff0c;专为简化串口通信调试与开发而设计&#xff0c;适合新手快速上手。工具具有直观的用户界面和丰富的功能&#xff0c;旨在帮助用户与串口设备建立可靠通信&#xff0c;便于调试、数据传输和分析。 二、主要功能 波特率&a…

【Hadoop|MapReduce篇】MapReduce概述

1. MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个Hadoop集群上。 2. Map…

视频汇聚平台LntonAIServer视频质量诊断功能--偏色检测与噪声检测

随着视频监控技术的不断进步&#xff0c;视频质量成为了决定监控系统性能的关键因素之一。LntonAIServer新增的视频质量诊断功能&#xff0c;特别是偏色检测和噪声检测&#xff0c;进一步强化了视频监控系统的可靠性和实用性。下面我们将详细介绍这两项功能的技术细节、应用场景…

2158. 直播获奖(live)

代码 #include<bits/stdc.h> using namespace std; int main() {int n,w,a[100000],cnt[601]{0},i,j,s;cin>>n>>w;for(i0;i<n;i){scanf("%d",&a[i]);cnt[a[i]];int x(i1)*w/100;if(!x) x1;for(j600,s0;j>0;j--){scnt[j];if(s>x){cou…