MySQL - mysql服务基本操作以及基本SQL语句与函数

news2024/11/26 0:38:42

文章目录

  • 操作mysql
    • 客户端与 mysql 服务之间的小九九
    • 了解 mysql
  • 基本 SQL 语句
    • 语法书写规范
    • SQL分类
    • DDL
    • mysql数据类型
      • 数值类型
      • 字符类型
      • 日期类型
    • 示例
      • 修改(表操作)
    • DML
      • 添加数据
      • 删除数据
      • 修改数据
    • DQL
      • 查询多个字段
      • 条件查询
      • 聚合函数
      • 分组查询
      • 排序查询
      • 分页查询
      • DQL语句的执行顺序
    • DCL
      • 用户权限
      • 权限控制分配
    • 函数
      • 常用字符串函数
        • 练习
      • 常见数值函数
        • 练习
      • 常见日期函数
        • 练习
      • 流程函数
        • 练习

操作mysql

下载mysql我就不写文章了,怎么卸载倒是有一篇(在我的博客中)

下载完成mysql之后我们可以通过管理员的身份来运行cmd命令窗口,我们可以通过以下两条命令来启动 mysql 或者停止 mysql 服务

# net stop mysql80       它的作用是停止 mysql 服务
# net start mysql80       它的作用是开启 mysql 服务

mysql启动停止图片
现在我们只是启动了 mysql ,他现在还没有和我们的客户端进行一个连接,我们现在需要让 mysql 连接到我们的客户端,有三种连接方式,新手推荐都练习一下,有益于理解mysql 与客户端之间的一些联系

  1. 首先我们可以通过 MySQL 8.0 Command Line Client 这个软件来进行连接
  2. 我们可以通过命令行来跑 mysql连接服务 或者说连接 mysql ,如果是命令行就需要配置一下环境变量了,否则 window 无法寻找到 连接 mysql 的程序。

配置地址为:
mysql配置地址
然后我们可以执行该命令来让客户端连接 mysql 服务:mysql [-h 127.0.1.1] [-p 3306] -u root -p
mysql连接
3. 我们还可以使用可视化管理工具进行连接,这个比较简单,就不进行截图演示了。

客户端与 mysql 服务之间的小九九

首先客户端会向 mysql 服务器发送 sql 语句,表面上是让 mysql 去执行语句做出操作,其实mysql内部是很奇妙的,首先 mysql 接受到客户端传来的 sql 语句会直接给到内部的 DBMS 数据库管理系统,它是会去操作以及维护数据库的,它可操作以及维护多个数据库 ,每个数据库可包含多个表,每个表可包含多个字段。

了解 mysql

mysql 数据库是一种关系型数据库,所谓关系型数据库也就是通过表结构来存储数据的数据库,反之则为非关系型数据库,例如 mongodb 就是一种非关系型数据库(NoSQL)

官方的解释是:关系型数据库是建立在关系模型基础上,有多张互相连接的二维表组成的数据库。

关系型数据库格式统一,方便维护;同时 SQL语言标准统一,使用方便。这便是它的优点。

基本 SQL 语句

语法书写规范

  1. 首先 mysql 语句单行多行书写都可以,但是该语句结束时必须使用分号结尾 ;
  2. 可使用空格或缩进来增强可读性
  3. 不区分大小写,只是关键字建议大写,这是比较规范的
  4. 单行注释 -- 注释内容# 注释内容
  5. 多行注释 /* 注释内容 */

SQL分类

  • DDL(Data Definition Language): 数据定义语言,用来定义数据库对象(数据库,表,字段)
  • DML(Data Manipulation Language): 数据操作语言,用来对数据表中的数据进行增删改
  • DQL(Data Query Language): 数据查询语言,用来查询数据库中表的记录
  • DCL(Data Control Language): 数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL

  1. 查询
  • 查询所有数据库:SHOW DATABASES;
  • 查询当前数据库:SELECT DATABASE();
  1. 创建
  • CREATE DATABASE [ IF NOT EXISTS ] 数据库名称 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
  1. 删除
  • DROP DATABASE [ IF EXISTS] 数据库名称;
  1. 使用某数据库
  • USE 数据库名称;

  1. 查询当前数据库所有表
  • SHOW TABLES;
  1. 查询表结构
  • DESC 表名;
  1. 查询指定表的建表语句
  • SHOW CREATE TABLE 表名;
	CREATE TABLE 表名称(
		字段1 数据类型[ COMMENT 字段1注释],
		字段1 数据类型[ COMMENT 字段1注释],
		字段1 数据类型[ COMMENT 字段1注释],
		字段1 数据类型[ COMMENT 字段1注释]
		) [COMMENT 表注释];

最后一个字段后面不加逗号

mysql数据类型

数值类型

  • TINYINT(小整数值) : 占用一个字节;有符号范围时(-128,127);无符号范围时(0,255)
  • SMALLINF(大整数值) : 占用两个字节;有符号范围时(-32768,32767);无符号范围时(0,65535)
  • MEDIUMINF(大整数值) : 占用三个字节;有符号范围时(-8388608,8388607);无符号范围时(0,16777215)
  • INF / INFEGER(大整数值) : 占用四个字节;有符号范围时(-2147483648,217483647);无符号范围时(0,4294967295)
  • BIGINT(极大整数值) : 占用八个字节;有符号范围时(-2 ^ 63,2 ^ 63 - 1);无符号范围时(0,2 ^ 64 - 1)
  • FLOAT(单精度浮点数值) : 占用四个字节
  • DOUBLE(双精度浮点数值) : 占用八个字节
  • DECIMAL(小数值【精确定点数】)

有符号标识:SIGNED;无符号标识:UNSIGNED

当我们对分数或者年龄等做记录的时候就不需要用到有符号的负数了,我们可以这样写: age TINYINT UNSIGNED

对于浮点数我们可以这样限定它的范围:score double(限制位数,小数位数)

字符类型

字符类型有很多,我就列出一下,不会全部介绍,因为常用到的也就是 char、以及 varchar

  • char: 0-255 bytes 定长字符串
  • varchar:0-65535 bytes 变长字符串

定长意思就是已经开辟了这么大的空间,无论在实际操作中是存多少字符,它也是这么长的,有一点浪费空间的意思
而变长则是需要判断实际字符长度在分配空间

各有各的长处,变长性能比较差,但却不浪费空间,char浪费空间却性能胜与 varchar。

  • TINYBLOB:不超过255个字符的二进制数据
  • TINYTEXT:短文本字符串
  • BLOB:二进制形式的长文本数据
  • TEXT:长文本数据
  • MEDIUMBLOB:二进制形式的中等长度文本数据
  • MEDIUMTEXT:中等长度文本数据
  • LONGBOLB:二进制格式极大文本数据
  • LONGTEXT:超大文本数据

日期类型

  • DATE: YYYY-MM-DD (日期)
  • TIME: HH:MM:SS (时间)
  • YEAR: YYYY (年)
  • DATETIME: YYYY-MM-DD HH:MM:SS (混合日期)
  • TIMESTAMP: YYYY-MM-DD HH:MM:SS (混合日期【时间戳】)

示例

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| carbon             |
| examination_pro    |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
7 rows in set (0.00 sec)

mysql> use testdb;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| testdb     |
+------------+
1 row in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| user             |
+------------------+
1 row in set (0.02 sec)

mysql> desc user;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| name      | varchar(10) | YES  |     | NULL    |       |
| workno    | varchar(10) | YES  |     | NULL    |       |
| id        | int         | YES  |     | NULL    |       |
| gender    | char(1)     | YES  |     | NULL    |       |
| idcard    | char(18)    | YES  |     | NULL    |       |
| entrydate | date        | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

mysql> show create table user;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table



                                                                  |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user  | CREATE TABLE `user` (
  `name` varchar(10) DEFAULT NULL COMMENT '用户名称',
  `workno` varchar(10) DEFAULT NULL COMMENT '工号',
  `id` int DEFAULT NULL COMMENT '编号',
  `gender` char(1) DEFAULT NULL COMMENT '性别',
  `idcard` char(18) DEFAULT NULL COMMENT '身份证号',
  `entrydate` date DEFAULT NULL COMMENT '入职时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表' |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

mysql>

修改(表操作)

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

  • 修改字段

  1. 修改数据类型
    ALTER TABLE 表名 MODIFY 字段名 新的数据类型(长度);
  2. 修改字段名称和字段类型
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
  • 删除字段

ALTER TABLE 表名 DROP 字段名;

  • 修改表名称

ALTER TABLE 表名 RENAME TO 新表名;

  • 删除表
  1. 删除表
    DROP TABLE [ IF EXISTS ] 表名;
  2. 删除指定表,并且重新创建该表
    TRUNCATE TABLE 表名;

DML

添加数据

  • 给指定字段添加数据
    INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...);

  • 给全部字段添加数据
    INSERT INTO 表名 VALUES(值1,值2,...);

  • 批量添加数据
    INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
    INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);

删除数据

DELETE FROM 表名 [WHERE 条件] ;

修改数据

UPDATE 表名 SET 字段名1 = '修改之后的值1',字段名2 = '修改之后的值2,... [WHERE 条件];'


DQL

查询多个字段

  • 查询
    SELECT 字段名1,字段名2,字段名3,... FROM 表名;
    SELECT * FROM 表名;

  • 别名
    SELECT 字段1 [ AS 别名1 ],字段2 [ AS 别名2 ],字段3 [ AS 别名3 ],... FROM 表名;

  • 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

  • 条件:
    – <
    – >
    – >=
    – <=
    – =
    – <> 或者 != 【表示不等于】
    – BETWEEN…AND… 【再某个范围之内(包含最大值以及最小值)】
    – IN 【在in之后的列表中的值,多选一】
    – LIKE 占位符 【模糊查询 _匹配单个字符,%匹配多个字符】
    – IS NULL 【是NULL】
    – IS NOT NULL 【不为NULL】
    – AND 或者 && 【并且】
    – OR 或者 || 【或】
    – NOT 或者 ! 【非,不是】

聚合函数

SELECT 聚合函数(字段列表) FROM 表名;

聚合函数:

  • count :统计数量
  • max : 最大值
  • min:最小值
  • avg:平均值
  • sum:求和
    null值不参与聚合运算

分组查询

SELECT 字段列表 FROM 表名 [ WHERE 条件] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ];

都是过滤条件 where 和 having 的区别在哪里呢?

  • 执行的时机不同:where 是在分组之前进行过滤,不满足 where 中的条件的话,不参与分组;而 having 是在分组之后进行过滤的
  • 判断条件不同:where 不能对聚合函数进行判断,having 可以对聚合函数进行判断

排序查询

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

排序方式包含:

  1. ASC (升序)
  2. DESC (降序)

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引,每页查询条数;

DQL语句的执行顺序

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDER BY
  7. LIMIT

DCL

用户权限

  1. 查询用户
USE mysql;
SELECT * FROM user;
  1. 创建用户
    CREATE USER '用户名'@'主机名' IDENTIFIEN BY '密码';
  2. 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
  1. 删除用户
    DROP USER'用户名'@'主机名';

主机名如果为local host 那么该数据库只能在当前主机访问,也就是当前操作电脑上可以访问;如果主机名命名为 % 那么表示该数据库可以在任意主机上访问

权限控制分配

当我们有了多个用户权限,自然要给不同的用户分配不同的权限,而所分配的权限也就是该用户可执行的操作,例如查询、插入、修改、删除(库 / 表),简称CRUD。

如果要给予所有权限,那么可使用 ALL 或者 ALL PRIVILEGES

  1. 查询权限
    SHOW GRANTS FOR '用户名'@'主机名';
  2. 授予权限
    CRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
  3. 撤销权限
    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

如果要操作该数据库的所有表的权限,那么我们可以将表名写做:*来表示通配该数据库所有表

同样的所有数据库也可以表示为 *


函数

常用字符串函数

  1. 字符串的拼接,将多个字符串拼接为一个字符串
CONCAT(STR1,STR2,STR3...)
  1. 字符串全部转小写
LOWER(str)
  1. 字符串全部转大写
UPPER(str)
  1. 左填充,用字符串pad对str左边进行填充,达到n个字符长度
LPAD(str,n,pad)
  1. 右填充,用字符串pad对str右边进行填充,达到n个字符长度
RPAD(str,n,pad)
  1. 去掉字符串左右两边的空格
TRIM(str)
  1. 返回字符串 str 从 start 位置起的 len 个长度的字符串
SUBSTRING(str,start,len)
练习
SELECT CONCAT('Hello ',' MySQL') AS '字符串拼接';

SELECT LOWER(CONCAT('Hello',' MySQL')) AS '字符串转小写';

SELECT UPPER(CONCAT('Hello',' MySQL')) AS '字符串转大写';

SELECT LPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_') AS '左填充字符串';

SELECT RPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_') AS '右填充字符串';

SELECT TRIM(CONCAT('  Hello ',' MySQL  ')) AS '字符串去除两边空格';

SELECT SUBSTRING(RPAD(UPPER(CONCAT('Hello',' MySQL')),18,'_'),5,3) AS '字符串截取';
# 这里需要注意索引值从1开始

常见数值函数

  1. 向上取整
CEIL(x)
  1. 向下取整
FLOOR(x)
  1. 返回 x / y 的模
MOD(x,y)
  1. 返回 0~1内的随机数
RAND()
  1. 求参数 x 的四舍五入的值,保留 y 位小数
ROUND(x,y)
练习
SELECT CEIL(200.1) AS '向上取整';
SELECT FLOOR(200.9) AS '向下取整';
SELECT MOD(12,7) AS '求模';
SELECT RAND() AS '随机数';
SELECT ROUND(RAND() * 200,3) AS '四舍五入';

常见日期函数

  1. 返回当前日期
CURDATE()
  1. 返回当前时间
CURTIME()
  1. 返回当前日期和时间
NOW()
  1. 获取指定的date年份
YEAR(date)
  1. 获取指定的date月份
MONTH(date)
  1. 获取指定的date日期
DAY(data)
  1. 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATE_ADD(date,INTERVAL expr type)
  1. 返回起始时间date1和结束时间date2之间的天数
DATEDIFF(date1,date2)
练习
SELECT CURDATE() AS '当前日期';
SELECT CURTIME() AS '当前时间';
SELECT NOW() AS '当前日期和时间';

SELECT YEAR('1999-01-06') AS '指定日期年份';

SELECT MONTH('1999-01-06') AS '指定日期月份';

SELECT DAY('1999-01-06') AS '指定日期';

SELECT DATE_ADD('1989-01-01',INTERVAL 70 MONTH) AS '时间推进';

SELECT DATE_ADD('1989-01-01',INTERVAL -70 DAY) AS '时间推进';

SELECT DATEDIFF('2023-10-2','2001-10-19') AS '间隔天数';

流程函数

  1. 如果 value 为 true,返回第一个值,否则返回第二个值
IF(value,x,y)
  1. 如果 value 不为空,返回第一个值,否则返回第二个值
IFNULL(value1,value2)
  1. 如果 value1 为 true,返回res1,否则返回default默认值
CASE WHEN [value1] THEN [res1] ...ELSE[default] END
  1. 如果 value1 的值等于 val1,返回res1,否则返回default默认值
CASE [value1] WHEN [val] THEN [res1] ...ELSE[default] END
练习
SELECT IF((CEIL(RAND() * 10)  + 1 = 8),1,0) AS '判断';

SELECT IFNULL((SELECT workno FROM emp WHERE username = '王小二'),'为空') AS '判断NULL';

SELECT username,(CASE age WHEN 23 THEN '符合23岁的标准' WHEN 24 THEN '勉强接受' ELSE '不符合标准' END) AS '标准' FROM emp;


SELECT CASE WHEN ((SELECT age FROM emp WHERE username = '王小二') = 23) THEN '符合23岁的标准' ELSE '不符合标准' END AS '标准';

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

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

相关文章

【AI视野·今日Sound 声学论文速览 第十六期】Mon, 2 Oct 2023

AI视野今日CS.Sound 声学论文速览 Mon, 2 Oct 2023 Totally 13 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Improving Audio Captioning Models with Fine-grained Audio Features, Text Embedding Supervision, and LLM Mix-up Augmentation Auth…

质数距离 - 如何在较合理的时间复杂度内求2e9范围内的质数

求l、r之间的质数&#xff0c;范围在2e9&#xff0c;但l、r的差值不大&#xff0c;在1e6范围内 先求出 内的质数&#xff0c;然后拿这个指数去筛[l, r]范围内的即可 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \…

微信开发者工具 如何设置代码的缩进

最近学习小程序的时候发现微信开发工具的缩进有点问题&#xff0c;当我在pages-index-index.wxml中删除初始代码重新自己写的时候。发现里面其实是没有缩进的。 如下图&#xff1a; 然后我自己研究了一下&#xff0c;结合查了一些资料&#xff0c;总结了在微信开发者工具中设置…

全网最全Java快捷键~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

Windows11与CentOS7下配置与检测JDK与Maven环境变量

安装过程参考我这篇&#xff1a;Java开发环境的搭建与测试及相关问题的解决 JDK 一、Windows 需要配置三个系统内变量&#xff0c;分别为CLASSPATH、PATH、JAVA_HOME 。 CLASSPATH 变量 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 或者 .;%java_home%\lib;%java_…

【image captioning】CaMEL: Mean Teacher Learning for Image Captioning(实现流程)

CaMEL: Mean Teacher Learning for Image Captioning(实现流程) 作者:安静到无声 个人主页 目录 CaMEL: Mean Teacher Learning for Image Captioning(实现流程)环境设置数据准备Evaluation训练程序推荐专栏参考代码: CaMEL: Mean Teacher Learning for Image Captioning.…

DFS 模板:843. n-皇后问题

n−n−皇后问题是指将 nn 个皇后放在 nnnn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 nn&#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包含整数 n…

8、Nacos服务注册服务端源码分析(七)

本文收录于专栏 Nacos 中 。 文章目录 前言确定前端路由CatalogController.listDetail()ServiceManager总结 前言 前文我们分析了Nacos中客户端注册时数据分发的设计链路&#xff0c;本文根据Nacos前端页面请求&#xff0c;看下前端页面中的服务列表的数据源于哪里。 确定前端…

Complete Probability Spaces

See https://math.stackexchange.com/questions/4095399/complete-probability-spaces

山西电力市场日前价格预测【2023-10-03】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-03&#xff09;山西电力市场全天平均日前电价为278.17元/MWh。其中&#xff0c;最高日前电价为477.85元/MWh&#xff0c;预计出现在18: 45。最低日前电价为0.00元/MWh&#xff0c;预计出…

概率论中的filtration中文叫什么?

1、2 - Financial Markets with Continuous Time- https://doi.org/10.1016/B978-1-78548-046-1.50002-8 2、Filtration (probability theory)-https://handwiki.org/wiki/Filtration_(probability_theory)#:~:textA%20filtration%20F%20%3D%20%28F%20i%29%20i%20%E2%88%88,…

lv6 嵌入式开发-Flappy bird项目(信号机制、定时器功能实现)

目录 1 信号(signal) 2 设置信号响应方式 – signal 3 设置定时器 4 示例 问题&#xff1a; getch()阻塞获取键盘按键输入&#xff0c; 怎么操作才能不影响小鸟下落和管道移动&#xff1f; getch如果阻塞&#xff0c;下面的程序都是无法执行。通过信号机制方式实现。 1 …

分享46个Python源代码总有一个是你想要的

分享46个Python源代码总有一个是你想要的 下载链接&#xff1a;https://pan.baidu.com/s/1oZPrXHwgzcvVpB36_dA72A?pwd8888 提取码&#xff1a;8888 chat-web项目的python后端 Django WEB商城网站项目 django-实时接口获取中国各个城市、省份、国家的新型冠状肺炎 NewsSp…

多线程 - 阻塞式队列

阻塞队列 阻塞队列,也是一个队列 ~~ 先进先出 实际上有一些特殊的队列,不一定非得遵守先进先出的 ~~ 优先级队列(PriorityQueue) 阻塞队列,也是特殊的队列,虽然也是先进先出的,但是带有特殊的功能: 阻塞 如果队列为空,执行出队列操作,就会阻塞.阻塞到另一个线程往队列里添加元…

Go:实现SMTP邮件发送订阅功能(包含163邮箱、163企业邮箱、谷歌gmail邮箱)

需求很简单&#xff0c;就是用户输入自己的邮箱后&#xff0c;使用官方邮箱给用户发送替邮件模版 目录 前置邮件模版邮箱开启SMTP服务163邮箱163企业邮箱谷歌gmail邮箱腾讯企业邮箱-失败其他邮箱-未操作 邮件发送核心代码config.yaml配置读取邮件相关配置发送邮件 附录 前置 邮…

深度学习笔记之线性代数

深度学习笔记之线性代数 一、向量 在数学表示法中&#xff0c;向量通常记为粗体小写的符号&#xff08;例如&#xff0c;x&#xff0c;y&#xff0c;z&#xff09;当向量表示数据集中的样本时&#xff0c;它们的值具有一定的现实意义。例如研究医院患者可能面临的心脏病发作风…

Ubuntu系统初始设置

更换国内源 安装截图工具 安装中文输入法 安装QQ 参考&#xff1a; 安装双系统win10Ubuntu20.04LTS&#xff08;详细到我自己都害怕&#xff09; 引导方式磁盘分区方法UEFIGPTLegancyMBR 安装网络助手 sudo apt install net-tools 安装VS Code 使用从官网下载.deb安装包…

MySQL使用Xtrabackup在线做主从

1、主库上操作 1.1前提 172.16.11.2&#xff08;主库&#xff09; 172.16.11.4&#xff08;从库&#xff09; 在执行备份之前&#xff0c;确保数据库没有锁定&#xff0c;以避免备份期间的任何写操作。 确保主库上的 MySQL 服务器正在运行&#xff0c;以便备份数据的一致性。…

八、2023.10.2.Linux(二).8

文章目录 17、简述一下虚拟内存和物理内存&#xff0c;为什么要用虚拟内存&#xff0c;好处是什么&#xff1f;18、虚拟地址到物理地址怎么映射的&#xff1f;19、说说堆栈溢出是什么&#xff0c;会怎么样&#xff1f;20、简述操作系统中malloc的实现原理?21、说说进程空间从高…

uboot启动流程-涉及board_init_f 函数

一. uboot启动流程 _main 函数中会调用 board_init_f 函数&#xff0c;本文简单分析一下 board_init_f 函数。 二. board_init_f 函数 board_init_f 函数主要有两个工作&#xff1a; (1) 初始化一系列外设&#xff0c;比如串口、定时器&#xff0c;或者打印一些消息等。…