【MySQL】基础知识(二)

MySQL基础知识(二)

文章目录

  • MySQL基础知识(二)
    • 01 表操作
      • 1.1 创建表
      • 1.2 查看所有表
      • 1.3 查看指定表的结构
      • 1.4 删除表
      • 练习
    • 02 CURD
      • 2.1 新增
        • 2.1.1 指定列插入
        • 2.1.2 datetime类型插入
      • 2.2 查询
        • 2.2.1 全列查询
        • 2.2.2 指定列查询
        • 2.2.3 查询字段为表达式
        • 2.2.4 别名查询
        • 2.2.5 去重
        • 2.2.6 查询时排序
        • 2.2.7 ‼️条件查询 WHERE
        • 2.2.8 分页查询 LIMIT
      • 2.3 修改
      • 2.4 删除

衔接上文 MySQL基础知识(一),我们已经了解以下相关知识。

  • 一个数据库服务器上,可以把很多有业务联系上的表放到一起,构成了一个逻辑上的“数据集合”,称为数据库。

  • 数据库操作:

    • 创建数据库

      create database 数据库名字 charset utf8;
      
    • 查看数据库

      show databases;
      
    • 选中指定的数据库

      use 数据库名;
      
    • 删除数据库

      drop database 数据库名;
      

那么下面我们继续来聊,MySQL的基础知识。

在这里插入图片描述


01 表操作

1.1 创建表

create table 表名(列名 类型,列名 类型...)

聊聊类型:

整数: int long
小数   double decimal
字符串  varchar
时间日期 datetime

MySQL其实也提供了无符号版本的数据库类型(unsigned),但是在官方文档上明确写了不建议使用,在未来也会删除。

因为两个无符号类型相减,可能会产生溢出的情况。

1.2 查看所有表

show tables

这里要注意,如果直接show tables;,是会报错的。

在这里插入图片描述

正确的操作应该是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里由于没有在Test1中存任何东西,所以是empty。

1.3 查看指定表的结构

desc 表名;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.4 删除表

drop table 表名;

删除表的同时,也会把表里的数据一起删掉。

删除表切记一定要慎重!其严重性可能比删除数据库还要严重。

假设数据库有100个表,删库,是把100个都删了,删表,只是删掉一个。
如果是删库操作,你的程序一定是第一时间就报错了赶紧进行处理.(把之前备份的数据恢复回去)
如果是删表操作,你的程序就不一定第一时间报错了发现时间就会更晚.
程序就以错误的状态在生产环境又运行了很长时间(都是带伤运行的)=>以错误的数据,运行过程。


练习

  • 有一个商店的数据,记录客户及购物情况,有以下三个表组成:
    • 商品goods(商品编号goods_id,商品名goods_name,单价unitprice,商品类别category,供应商provider)
    • 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)
    • 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后展示效果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

mysql> create database-> if not exists-> Test-> charset utf8mb4;
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> use Test;
Database changedmysql> create table-> if not exists-> goods-> (-> goods_id int comment '商品编号',-> goodes_name varchar(32) comment '商品名称',-> unitprice int comment '单价,单位分',-> category varchar(12) comment '商品分类',-> provider varchar(64) comment '供应商名称'-> );
Query OK, 0 rows affected (0.02 sec)mysql> create table if not exists customer-> (-> customer_id int comment '客户编号',-> name varchar(32) comment '客户姓名',-> address varchar(256) comment '客户地址',-> sex bit comment '性别',-> card_id varchar(18) comment '身份证'-> );
Query OK, 0 rows affected (0.02 sec)mysql> create table if not exists purchase-> (-> oeder_id int comment '订单号',-> customer_id int comment '客户编号',-> goods_id int comment '商品编号',-> nums int comment '购买数量'-> );
Query OK, 0 rows affected (0.02 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| customer       |
| goods          |
| purchase       |
+----------------+
3 rows in set (0.00 sec)

02 CURD

CURD是数据库非常基础的部分,也是后端开发日常工作中,最主要做的一项工作。

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

2.1 新增

insert into 表名 values(值,值...);
-- 此处的值,要与列相匹配(列的个数和类型)
mysql> create table student (id int, name varchar(20));
Query OK, 0 rows affected (0.01 sec)mysql> insert into student values(1,'zhangsan');
Query OK, 1 row affected (0.01 sec)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 实际上插入中文也是ok的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.1.1 指定列插入

insert into 表名 (列名,列名...) values (,)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 若此处只插入name,id 这一列就会被填充为默认值。(此处的默认值就是null)
  • 其实也可以一次插入多行记录
insert into 表名 values (值,值...),(值,值...)...;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里的提示,就是反馈效果,客户端给服务器发起插入请求,服务器要返回这次插入是否成功。

一次插入多行记录,相比于一次插入一行,分多次插入,要快不少

MySQL是一个客户端服务器结构的程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以通过

select * from student;

查看我们插入的数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.1.2 datetime类型插入

datetime插入,可以是用一个固定格式的字符串,来表示时间日期。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以查看效果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我们想填写的时间日期,就是当前时刻,sql其实提供了一个现成的函数,now().

insert into student values(2, '李四', now());

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2 查询

sql中的增删改实际上都非常简单,但是查询就可以玩出各种花样。

下面就展开一个例子来详细聊聊~

  • 先构造一个表
-- 创建考试成绩表
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (id INT,name VARCHAR(20),chinese DECIMAL(3,1),math DECIMAL(3,1),english DECIMAL(3,1)
);
-- 插入测试数据
INSERT INTO exam_result (id,name, chinese, math, english) VALUES(1,'唐三藏', 67, 98, 56),(2,'孙悟空', 87.5, 78, 77),(3,'猪悟能', 88, 98.5, 90),(4,'曹孟德', 82, 84, 67),(5,'刘玄德', 55.5, 85, 45),(6,'孙权', 70, 73, 78.5),(7,'宋公明', 75, 65, 30);

2.2.1 全列查询

select * from 表名;
--  * 表示通配符,可以指代所有的列

把表中的所有行和列都展示出来。

select * from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以上的数据是查询出来之后,服务器通过网络把这些数据返回给客户端的,并且在客户端以表格形式打印出来。

‼️‼️‼️注意:select * 其实是一个危险操作‼️‼️‼️

MySQL是一个“客户端-服务器”结构的程序,客户端这里进行的操作,就都会通过请求发送给服务器,服务器查询的结果也就会通过响应返回给客户端

如果数据库当前这个表中的数据特别多,就可能会产生问题!

  1. 读取硬盘。 把硬盘的 IO 跑满了,此时程序其他部分想访问硬盘,就会非常慢
  2. 操作网络。 也可能把网卡的带宽跑满,此时其他客户端想通过网络访问服务器,就会非常慢

就好像高速堵车~


2.2.2 指定列查询

一个表的列数,可能是非常多的,某个场景下的操作,只需要关注其中的几个列。

select 列名, 列名... from 表名;
select name, chinese from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


2.2.3 查询字段为表达式

一边查询,一边进行计算…在查询的时候,写作由列名构成的表达式,把这一列中的所有行都带入到表达式中,参与运算~

下面举个例子:

想查询所有人的语文成绩都 -10 分。

select name, chinese - 10 from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:这里的操作不会修改数据库服务器上的原始数据,只是在最终响应里的“临时结果”中做了计算~

再次强调,MySQL是客户端-服务器结构的数据,进行查询时,是将服务器这里的数据读出来,返回给客户端,并且以临时表的形式进行展示~

不信的话,我们可以将现在展示一下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再举一个例子:计算所有人的总成绩

select name, chinese + math + english from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这也表明,SQL在查询的时候,可以进行一些简单的统计操作

表达式查询,是 列 和 列 之间的运算,把每一行都带入到这样的运算中,而不是 行和行 之间的。


2.2.4 别名查询

查询的时候给 列 / 表达式 指定别名。(给表也能指定别名)

select 表达式 as 别名 from 表名;
-- 别名通俗理解就是外号
-- as可以省略(不建议)

查询结果的临时表中,列名就是刚才的别名了。
在这里插入图片描述

2.2.5 去重

distinct修饰某个列/多个列

值相同的行,只会保留一个

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么此时我们可以进行以下操作:

select distinct math from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

他就会筛选掉重复的数据~

但是我们这样写的话

select distinct name, math from exam_result;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为98的分数对应的name不一致,就不会去重咯。

2.2.6 查询时排序

把行进行排序~

明确排序规则~:

  • 针对哪个列作为比较规则
  • 排序时是升序还是降序
select 列名 from 表名 order by 列名 asc/desc;
-- order by 列名 :指定某个列进行排序
-- asc :升序
-- desc: 降序
-- 默认asc

再次强调:

mysql是一个客户端服务器结构的程序,把请求发给服务器之后,服务器进行查询数据,并且把查询到的结果进行排序之后,再组织成响应数据返回给客户端.
排序仍然是针对临时数据来展开的,此处的排序,不影响原有数据在mysql服务器上存储的顺序~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当前只是在我们自己的机器上进行了一些简单的操作看起来顺序好像没变,但是要是进行一些复杂的操作,那就不一定了~

如果不加order by代码就不应该依赖以上的顺序~~尤其是在代码中,就不能依赖上述的顺序来展开一些逻辑,因为数据库是没有承诺这个数据是有顺序的~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

order by指定的列,如果你select 的时候没有把这一列查出来,也是不影响排序的~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

order by还可以根据表达式进行排序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

order by 指定多个列来排序~order by后面可以写多个列 使用,来分隔开

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2.7 ‼️条件查询 WHERE

会指定具体的条件,按照条件针对数据进行筛选

select 列名 from 表名 where 条件;
-- 这里的条件:遍历这个表的每一行记录,把每一行的数据分别带入到条件中
--           如果条件成立,这个记录就会被放入结果集合中;若不成立你就会被pass 
  • 比较运算符:
运算符说明
>, >=, <, <=大于, 大于等于, 小于, 小于等于
=等于, NULL不安全,例如NULL=NULL结果是NULL
<=>等于, NULL安全,例如NULL<=>NULL结果是TRUE(1)
!=, <>不等于
BETWEEN a AND b范围匹配,[a,b],如果a<=value<=b.返回TRUE(1)
IN(option, …)如果是option中的任意一个,返回TRUE(1)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配,%表示任意多个(包括0个)任意字符;_表示任意一个字符

注意:

  1. sql中是没有==

  2. 模糊匹配:通过一些特殊符号,描述出规则/特征后续哪些值,符合上述特征

    • 举个例子就是你要找对象,那么你的要求是

      1. 可爱
      2. 身材好😊😊😒

      此时虽然你还不知道你要追哪个,但是你已经有一定标准去筛选,那么这也就是模糊匹配~

  • 逻辑运算符(与或非)
运算符说明
AND多个条件必须都为TRUE(1),结果才是TRUE(1)
OR任意一个条件为TRUE(1),结果为TRUE(1)
NOT条件为TRUE(1),结果为FALSE(0)
  1. WHERE条件可以使用表达式,但不能使用别名。(下面会提到)

  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分


相关案例:

  • 查询英语成绩不及格的同学及其成绩
select name, english from exam_result where english < 60;

无论有几个列,都可以使用上述运算符来描述条件

  • 查询语文成绩优于英语成绩的同学
select name, chinese, english from exam_result where chinese > english;

条件查询搭配表达式

  • 查询总分低于200的同学
select name, chinese + math + english from exam_result where chinese + math + english < 200;

这里关于别名的使用见下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里我们注意理解,select条件查询执行的顺序

  1. 遍历表中的每个记录

  2. 把当前记录的值,带入条件,根据条件进行筛选

  3. 如果这个记录条件成立,就要保留,进行列上表达式的计算

    • 这里也就说明where是第二步执行的,而别名是第三步定义,也就是说执行where的时候,total还处在未定义的状态~

    • 但是在理论上说,别名也是可以做到的~

      在实现sql解析引擎的时候,是完全可以做到的,把这里的别名预先定义好,然后再执行 1 2 3,保证执行到where的时候也能访问到别名~

    • 但是!mysql当前并没有这样执行😥

  4. 如果有order by,会在所有的行都被获取到之后(表达式也算完了)

    再针对所有的结果进行排序~~


  • 查询语文,英语成绩均大于80的同学
select name, chinese, english from exam_result where chinese > 80 and english > 80;
  • 查询语文成绩大于80,或者英语成绩大于80的同学
select name, chinese, english from exam_result where chinese > 80 or english > 80;
  • 观察andor的优先级

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由此可见:sqland的运算符优先级更高~


  • 查询语文成绩在[80,90]的同学及其成绩
select name, chinese from exam_result where chinese between 80 and 90;
select name, chinese from exam_result where chinese >= 80 and chinese <= 90;

  • 查询数学成绩是58或者59或者98或者99的同学及其成绩
select name, math from exam_result where math in (58,59,98,99);
select name, math from exam_result where math = 58 or math = 58 or math = 98 or math = 99;

模糊查询:LIKE

通配符,就是一些特殊的字符,能够表示特定的含义~

类似于扑克牌中的 癞子 也就是特殊牌,可以用来代替任意的点数或者花色

% : 代指任意个任意字符
_ : 代指一个任意字符
  • 查询姓孙的同学的成绩
mysql> select * from exam_result where name like '孙%';
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
|    2 | 孙悟空 |    87.5 | 78.0 |    77.0 |
|    6 | 孙权   |    70.0 | 73.0 |    78.5 |
+------+--------+---------+------+---------+
2 rows in set (0.01 sec)
--------------------------------------------------------------
mysql> select * from exam_result where name like '孙_';
+------+------+---------+------+---------+
| id   | name | chinese | math | english |
+------+------+---------+------+---------+
|    6 | 孙权 |    70.0 | 73.0 |    78.5 |
+------+------+---------+------+---------+
1 row in set (0.00 sec)
---------------------------------------------------------------
mysql> select * from exam_result where name like '孙__';
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
|    2 | 孙悟空 |    87.5 | 78.0 |    77.0 |
+------+--------+---------+------+---------+
1 row in set (0.00 sec)
  • 孙%:查询以孙开头的内容

  • %孙:查询以孙结尾的内容

  • %孙%:查询包含孙的


NULL查询

select * from exam_result where chinese <=> null;
-- 可以针对两个列比较
select * from exam_result where chinese is null;
-- 只能针对一个列

2.2.8 分页查询 LIMIT

select 列名 from 表名 limit N offset M;
N 表示这次查询最多查出几个记录
M 表示这次查询的这个N记录,是从第几个下标开始算

使用select * 这种方式查询是比较危险的~

需要保证一次查询不要查出来的东西太多。那么LIMIT就是个好东西~

limit,可以限制查询这次查询最多可以查出来多少结果~

因为在有些时候,数据会非常多,一次性显示出来的话,会影响效率,也不方便用户查看,那么用limit就可以很好解决这个问题~

select * from exam_result limit 3;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

 select * from exam_result limit 3 offset 3;-- limit 3  :这次查询,查出几个记录-- offset 3 :偏移量,也就是一个从0开始的下标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


2.3 修改

update 表名 set 列名 =where 条件;
-- where 条件:限制这次操作具体要修改哪些数据

讲讲set这个词,它在计算机中有两种典型的含义~

  1. 设置 getter/setter
  2. 集合 TreeSet/HashSet

所以说,在计算机中,一个术语往往有多种含义,必须必须结合上下文来理解这个含义是什么意思~


  • 将孙悟空的数学成绩变更成80分
update exam_result set math = 80 where name = '孙悟空';

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


实际上使用update,可以一次性修改多个列

set= 值,列 =....;
  • 将曹孟德的数学 -> 60分,语文 -> 70分
update exam_result set math = 60, chinese = 70 where name = '曹孟德';
  • 将总成绩为倒数前三的数学成绩+30分
-- 首先先看看倒数前三是哪几位
mysql> select * from exam_result order by chinese + math + english limit 3;+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
|    7 | 宋公明 |    75.0 | 65.0 |    30.0 |
|    5 | 刘玄德 |    55.5 | 85.0 |    45.0 |
|    4 | 曹孟德 |    70.0 | 60.0 |    67.0 |
+------+--------+---------+------+---------+
3 rows in set (0.01 sec)-- 这里注意观察,id 5 刘玄德的数学成绩若是+30 = 115.0,就会不符合前面说的decimal(3,1)  不信我们可以看看以下操作mysql> update exam_result set math = math + 30 order by chinese + math + english limit 3;ERROR 1264 (22003): Out of range value for column 'math' at row 2-- Out of range value for column 是吧~这里说超出范围咯
-- 其次还有注意点就是 math = math + 30, 是不可以写成 math += 30
-- 那么我们进行math-30来看看效果吧
mysql> update exam_result set math = math - 30 order by chinese + math + english limit 3; 
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0mysql> select * from exam_result order by chinese + math + english limit 3;
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
|    7 | 宋公明 |    75.0 | 35.0 |    30.0 |
|    5 | 刘玄德 |    55.5 | 55.0 |    45.0 |
|    4 | 曹孟德 |    70.0 | 30.0 |    67.0 |
+------+--------+---------+------+---------+
3 rows in set (0.00 sec)

  • 将所有同学的语文成绩更改为原来的两倍

这里的将所有,也就是update后面不写任何条件,就是针对所有行进行修改

mysql> update exam_result set chinese = chinese * 2;
ERROR 1264 (22003): Out of range value for column 'chinese' at row 1
-- 哈哈这里又超范围了,那我们换成/2mysql> update exam_result set chinese = chinese / 2;
Query OK, 7 rows affected, 2 warnings (0.01 sec)
Rows matched: 7  Changed: 7  Warnings: 2-- 这里我们可以看看warnings是什么mysql> show warnings;
+-------+------+----------------------------------------------+
| Level | Code | Message                                      |
+-------+------+----------------------------------------------+
| Note  | 1265 | Data truncated for column 'chinese' at row 2 |
| Note  | 1265 | Data truncated for column 'chinese' at row 5 |
+-------+------+----------------------------------------------+-- truncated 截断 这里说的是第 2 5 行的数据发生截断
-- 2 孙悟空 43.8 因为孙悟空原成绩是 87.5 ,/2之后是 43.75,但是43.75会超出decimal(3,1)这样的范围,于是就进行了截断~mysql> select * from exam_result;
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
|    1 | 唐三藏 |    33.5 | 98.0 |    56.0 |
|    2 | 孙悟空 |    43.8 | 80.0 |    77.0 |
|    3 | 猪悟能 |    44.0 | 98.5 |    90.0 |
|    4 | 曹孟德 |    35.0 | 30.0 |    67.0 |
|    5 | 刘玄德 |    27.8 | 55.0 |    45.0 |
|    6 | 孙权   |    35.0 | 73.0 |    78.5 |
|    7 | 宋公明 |    37.5 | 35.0 |    30.0 |
+------+--------+---------+------+---------+
7 rows in set (0.00 sec)

2.4 删除

delete from 表名 where 条件 / order by / limit-- where 条件 / order by / limit 会把符合条件的行,从表中删除
  • 删除孙悟空的成绩
delete from exam_result where name = '孙悟空';
  • 删除整张表数据
delete from exam_result;

这和drop table还不太一样,drop table是删除了表,也删除了表里的记录

delete只是删除了表里的记录,但是表还在,只不过表变成一张空表~

所以我们要知道,deleteupdate都是很危险的操作!

一旦delete,的条件没有设置好,就可能把不该删除的给删掉了~

这两者修改 / 删除持久生效的,都会影响到 数据库服务器 硬盘中的数据~

sql中步步都是很危险的啊🥵🥵🥵🥵


那么~数据库既然这么危险,该怎么备份呢?

实际上有很多种方式:

  1. 数据库最终都是存储在硬盘上,以文件的形式体现(文件都是二进制),可以将这里的文件cv到别的机器上面(全量备份)。

  2. mysqldump工具,mysql自带的一个程序,会把你mysql中的数据导出成一系列insert语句~然后再将这些insert语句,放到另一个mysql中执行

  3. mysql还有一个binlog功能(将mysql中的各种操作,都通过日志记录下来)

    借助binlog(让另一个数据库按照binlog的内容执行就可以得到一样的数据)

    (增量备份/实时备份)


    至此,就将mysql的基础操作知识介绍的差不多了,接下来还会持续更新mysql,敬请期待~

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

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

相关文章

面试被打脸,数据结构底层都不知道么--回去等通知吧

数据结构之常见的8种数据结构&#xff1a; -数组Array -链表 Linked List -堆 heap -栈 stack -队列 Queue -树 Tree -散列表 Hash -图 Graph 数据结构-链表篇 Linklist定义&#xff1a; -是一种线性表&#xff0c;并不会按线性的顺序存储数据&#xff0c;即逻辑上相邻…

基于硬件隔离增强risc-v调试安全2_安全提议

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明&#xff1a;本文参考RISC-V 2023中国峰会如下议题&#xff0c;版权归原作者所有。

pdf怎么编辑文字?了解一下这几种编辑方法

pdf怎么编辑文字&#xff1f;PDF文件的普及使得它成为了一个重要的文件格式。然而&#xff0c;由于PDF文件的特性&#xff0c;它们不可直接编辑&#xff0c;这就使得PDF文件的修改变得比较麻烦。但是&#xff0c;不用担心&#xff0c;接下来这篇文章就给大家介绍几种编辑pdf文字…

SpringCloudAlibaba Gateway(二)详解-内置Predicate、Filter及自定义Predicate、Filter

Predicate(断言) ​ Predicate(断言)&#xff0c;用于进行判断&#xff0c;如果返回为真&#xff0c;才会路由到具体服务。SpirnngCloudGateway由路由断言工厂实现&#xff0c;直接配置即生效&#xff0c;当然也支持自定义路由断言工厂。 内置路由断言工厂实现 ​ SpringClo…

Java注解和反射

注解(Java.Annotation) 什么是注解&#xff08;Annotation&#xff09;&#xff1f; Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身&#xff0c;可以对程序作出解释(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取Annotation的…

ChatGPT插件的优缺点

虽然西弗吉尼亚大学的研究人员看到了最新的官方ChatGPT插件——名为“代码解释器”&#xff08; Code Interpreter&#xff09;的教育应用潜力&#xff0c;但他们也发现&#xff0c;对于使用计算方法处理针对癌症和遗传疾病的定向治疗的生物数据的科学家来说&#xff0c;这款插…

20230901工作心得:IDEA列操作lambda表达式加强版用法

今天是中小学开学时间&#xff0c;亦是9月的开始&#xff0c;继续努力。 今日收获较大的有四个地方&#xff0c;先说这四点。 1、IDEA列操作 使用场景&#xff1a;需要批量将Excel表格里的数据插入到数据库中&#xff0c;此时需要写大量的insert SQL语句。 比如像这样的&am…

解码注意力Attention机制:从技术解析到PyTorch实战

目录 引言历史背景重要性 二、注意力机制基础概念定义组件 注意力机制的分类举例说明 三、注意力机制的数学模型基础数学表达式注意力函数计算权重 数学意义举例解析 四、注意力网络在NLP中的应用机器翻译代码示例 文本摘要代码示例 命名实体识别&#xff08;NER&#xff09;代…

WireShark流量抓包详解

目录 Wireshark软件安装Wireshark 开始抓包示例Wireshakr抓包界面介绍WireShark 主要界面 wireshark过滤器表达式的规则 Wireshark软件安装 软件下载路径&#xff1a;wireshark官网。按照系统版本选择下载&#xff0c;下载完成后&#xff0c;按照软件提示一路Next安装。 Wire…

ICCV 2023 | 利用双重聚合的Transformer进行图像超分辨率

导读 本文提出一种同时利用图像空间和通道特征的 Transformer 模型&#xff0c;DAT&#xff08;Dual Aggregation Transformer&#xff09;&#xff0c;用于图像超分辨&#xff08;Super-Resolution&#xff0c;SR&#xff09;任务。DAT 以块间和块内的双重方式&#xff0c;在空…

企业工程项目管理系统源码-专注项目数字化管理-Java工程管理-二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…

用于设计和分析具有恒定近心点半径的低推力螺旋轨迹研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

用Kubernetes(k8s)的ingress部署https应用

用Kubernetes的ingress部署https应用 环境准备Ingress安装域名证书准备 部署应用通过ingress暴露应用根据ssl证书生成对应的secret创建ingress暴露部署的应用确认自己安装了ingress创建ingress 访问你暴露的应用 环境准备 Ingress安装 我之前有一片文章写的是用ingress暴露应…

树和二叉树基础

引言&#xff1a; 树是一种非线性的结构&#xff0c;也是由一个一个的结点构成。 树的一些基本概念&#xff1a; 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b;如上图&#xff1a;A的度为6 叶节点或终端节点&#xff1a;度为0的节点称为叶节点。…

【LeetCode75】第四十四题 省份数量

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个二维数组&#xff0c;表示城市之间的连通情况&#xff0c;连在一起的城市为一个省份&#xff0c;问我们一共有多少个省份。 这…

cocos creator配置终端调试

在launch.json里添加"preLaunchTask":“CocosCreator compile” 在cocos creator里选择开发者&#xff0c;visual studio code工作流&#xff0c;选择添加编译任务。 添加 settings.json {"files.exclude":{"**/.git": true,"**/.DS_Sto…

【大数据】Flink 详解(六):源码篇 Ⅰ

Flink 详解&#xff08;六&#xff09;&#xff1a;源码篇 Ⅰ 55、Flink 作业的提交流程&#xff1f;56、Flink 作业提交分为几种方式&#xff1f;57、Flink JobGraph 是在什么时候生成的&#xff1f;58、那在 JobGraph 提交集群之前都经历哪些过程&#xff1f;59、看你提到 Pi…

2023年7月京东打印机行业品牌销售排行榜(京东运营数据分析)

鲸参谋监测的京东平台7月份打印机行业销售数据已出炉&#xff01; 7月份&#xff0c;打印机市场呈现下滑趋势。根据鲸参谋平台的数据可知&#xff0c;当月京东平台打印机的销量为48万&#xff0c;环比下降约28%&#xff0c;同比下降约18%&#xff1b;销售额为4亿&#xff0c;环…

【云原生】Kubernetes容器编排工具

目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署 ​2. k8s的集群架构与组件 &#xff08;1&#xff09; Kube-apiserver &#xff08;2&#xff09;Kube-controller-manager &#xff08;3&a…

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第三、四节:几何表述和形状描述

文章目录 一&#xff1a;几何描述&#xff08;1&#xff09;像素间几何关系A&#xff1a;邻接与连通B&#xff1a;距离 &#xff08;2&#xff09;像素间几何特征A&#xff1a;位置B&#xff1a;方向C&#xff1a;尺寸 &#xff08;3&#xff09;程序 二&#xff1a;形状描述&a…