- 博客(36)
- 收藏
- 关注
原创 10-Elasticsearch聚合
聚合桶功能:聚合统计。桶的概念:类似SQL的分组(GROUP BY)聚合桶的指标:类似COUNT,SUM,MAX等统计方法。关键字:avg 平均值weighted_avg 加权平均值min 最小值max 最大值sum 求和value_count 计数stats 多个度量值的聚合(sum,count,avg,min,max 都会显示)
2023-03-24 16:55:33
593
原创 9-Elasticsearch的term level查询
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NBgmO9fz-1679648078946)(/Users/zhaoxianwang/Library/Application Support/typora-user-images/image-20230321095749205.png)]exists查询:判断文档中是否存在对应的字段。terms多词查询:匹配其中任意一个。ids查询:通过 _id 批量查询。单个词查询:搜索的内容不会被分词。wildcard:通配符查询。
2023-03-24 16:55:02
321
原创 7-Elasticsearch组合查询和全文检索
布尔查询是把多个子查询组合成一个布尔表达式,所有子查询之间逻辑关系是and,只有当一个文档满足布尔查询中的所有子查询条件时,ES才会认为该文档满足查询条件。使用function_score查询,必须为查询定义一个或者多个函数,这些函数将为查询返回的每个文档计算一个新的评分。dis_max值的是在文档匹配评分中,只将最佳匹配的评分作为查询的评分结果返回。它将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起。 2、查询语句中可以嵌套多个查询条件。组合查询中的常用的查询方式:布尔查询。
2023-03-24 16:53:55
1402
原创 MySQL字符函数
MySQL字符函数 1、大小写函数 语法: upper(str) 返回大写字符, lower(str) 返回小写字符 select upper(‘abc’),lower(‘ABC’) from dual; 2、空格函数 语法: ltrim(str) 去除左边空格 rtrim(str) 去除右边空格 trim(str) 去掉两端空格 space(n) 返回指定长度的空格 select ltrim(’ asd ‘), rtrim(’ asd ‘), trim(’ a sd '), space(5) fr
2021-10-09 10:01:52
2150
原创 MySQL正则表达式
MySQL正则表达式 1、regexp_instr 语法:regexp_instr(expr,pat[,pos[,occurrence[,return_option[,match_type]]]]) 指定位置开始是否符合正则表达式 – 匹配字符‘,’,从第一个字符串开始查找,第一次出现的位置,没有则返回0 select regexp_instr(‘abc,ABC,AAA,BBB,bbb’,’,’,1,1) from dual; select regexp_instr(‘abc,ABC,AAA,BBB,b
2021-10-09 10:01:22
915
原创 MySQL优化
MySQL的SQL优化 为什么进行SQL优化? SQL语句执行耗时较长 索引失效 SQL编写过程 select distinct ... from ... join ... on ... where ... group by ... having ... order by ... limit ... SQL执行过程 from ... on ... join ... where ... group by ... having ... select distinct ... or
2021-10-09 10:00:51
258
原创 MySQL数值函数
MySQL数值函数 1、mod 取余 语法:mod(n,m) 或 n%m 或 n mod m select mod(1,2),1 % 2,1 mod 2 from dual; 2、ceil 向上取整 语法:cei1(x) select ceil(0.01),ceil(0.99) from dual; 3、floor 向下取整 语法:floor(x) select floor(0.01),floor(0.99) from dual; 4、round 四舍五入 语法:round(n) 或 roun
2021-10-09 10:00:16
475
原创 MySQL视图
MySQL视图 1、视图语法 创建语法: create [or replace] [algorithm = {undefined | merge | temptable}] – 表示视图选择算法,一般无需指定,使用默认值即可 [definer = user] – 视图的定义用户 [sql security {definer | invoker}] – SQL安全性 view view_name [(column_list)] as select_statement [with [cascaded | lo
2021-10-08 14:18:25
272
原创 MySQL日期函数
MySQL日期函数 1、adddate 语法:adddate(date,interval expr unit) 或 adddate(expr,days) 用于给时间类型增加时间间隔,默认为天 unit:year,month,day,day_hour,minute,day_second,minute_second select adddate(‘2021-08-10’, interval 10 day), adddate(‘2021-08-10’,10) from dual; select adddate
2021-10-08 14:17:52
1363
原创 MySQL高级窗口函数
MySQL高级窗口函数 分析函数有3个基本组成 1、分区子句 2、排序子句 3、开窗子句 function1(arg1,arg2,…argn) over w window w as ([partition by col] [order by col] [windowing clause]) 窗口说明子句的语法: 默认的窗口子句是rows between unbounded preceding and current row。如果你没有显示声明窗口,就将会使用默认窗口。 并不是所有的分析函数都支持开窗子句
2021-10-08 14:17:07
943
原创 MySQL分组
MySQL分组 CREATE TABLE testa (area VARCHAR(20), month VARCHAR(20), amount int); insert into testa values (‘上海’, ‘1月’, 199); insert into testa values (‘上海’, ‘2月’, 199); insert into testa values (‘上海’, ‘3月’, 155); insert into testa values (‘上海’, ‘3月’, 155);
2021-10-08 14:16:32
242
原创 MySQL 存储过程编程
MySQL 存储过程编程 1、语法 create [definer=user] – DEFINER模式下,默认DEFINER=CURRENT_USER,在存储过程执行时,mysql会检查DEFINER定义的用户’user_name’@'host_name’的权限 procedure sp_name([proc_parameter[,…]]) [characteristic…] routine_body 说明 proc_parameter: in param_name data_type:-- 输入类型
2021-10-08 14:15:59
333
原创 MySQL存储过程控制语句
MySQL存储过程控制语句 1、case when 语句 语法: case case_val when when_val then result when when_val then result … [else result] end case case when condition_statement then result when condition_statement then result ... [else result] end case create procedu
2021-10-08 14:15:22
242
原创 MySQL触发器
MySQL触发器 1、语法 create [definer = user] trigger trigger_name {before | after} {insert|update|delete} – 在触发某个操作事件时间之前或之后执行操作 on table_name for each row – 操作影响的每一行都会做执行一次 {follows | precedes} other_trigger_name trigger_body; NEW – 标记新纪录,例如NEW.ID 表示表中新数据行的ID
2021-10-08 14:14:51
160
原创 MySQL表连接
MySQL表连接 1、内连接 – 求交集 select t1.id id1, t2.id id2 from A t1 inner join B t2 on t2.id=t1.id; 或 select t1.id id1, t2.id id2 from A t1,B t2 where t1.id=t2.id; 2、左连接 – 求A的全集 select t1.id id1, t2.id id2 from A t1 left join B t2 on t2.id=t1.id; 3、左连接 – 实现A-B的差集
2021-10-08 14:14:25
266
原创 MySQL with语句
MySQL with语句 逻辑复杂的语句,with可以大大减少临时表的数据量,提升代码的可读性和可维护性 MySQL8.0 开始支持with语句 语句结构: with subquery_name1 as (subquery_body1), subquery_name2 as (subquery_body2), … select * from subquery_name1 t1,subquery_name2 t2 where t1.col=t2.col 1、提升代码的可读性和可维护性 需求:求每个部门的
2021-10-08 14:13:35
1386
原创 MYSQL 行转列
MYSQL 行转列 1、case语法 select deptno, sum(case when job='MANAGER' then sal else 0 end) s_manager, sum(case when job='ANALYST' then sal else 0 end) s_analyst, sum(case when job='CLERK' then sal else 0 end) s_clerk, sum(case when job=
2021-10-08 14:12:08
159
原创 【Java知识点2】序列化和反序列化
目录 一、基本概念 1、定义 2、作用 二、序列化和反序列化的优缺点 1、优点 2、缺点 三、序列化使用场景 四、序列化与反序列化的注意事项 五、代码案例 一、基本概念 1、定义 序列化:java序列化是指对java对象转换为字节序列的过程 反序列化:java反序列化是指把字节序列恢复java对象的过程 2、作用 序列化的作用:在传递和保存对象时,保存对象的完整性和可传递性 对象转换为有序字节流,可以在网络上传输或则保存在本地文件中。 反序列化的作用:根据..
2021-08-21 18:52:04
814
原创 【Java知识点1】缓存
1、缓存能做什么? 当遇到页面打开很慢的时候,会引入缓存,这样页面响应就会块很多。快慢是相对的,从技术的角度来源,缓存的数据之所以快,是因为缓存是基于内存建立的,而内存的读写速度比硬盘快很多倍,所以用内存代替磁盘作为读写的介质能大大提高访问数据的速度。 访问过程如下: 通过在内存中存储被访问的数据提供给程序使用,从此达到提速的目的。 缓存有两个运用方式:预读取和延迟写。 预读取是在数据出口加缓冲区。 延迟写是在数据入口加缓冲区。 2、预读取 预读取就是先读取将要载入的数据,也称为“预...
2021-08-21 10:06:37
403
原创 Java8新特性:(九)Optional类
Optional<T> 类可以优雅的处理空指针问题。可以保存T的值,表示这个值存在,或则仅仅保存null,表示这个值不存在。 1、创建Optional实例 of(T t):创建一个非空的Optional实例 empty():创建一个空的Optional实例 ofNullable(T t):创建一个可以为null的Optional实例 import com.xian.dto.Student; import org.junit.Test; import java.util.Optio.
2021-08-16 22:15:35
225
原创 Java8新特性:(八)Stream API
java8两个重要的特性是:1、Lambda表达式,2、Stream API Stream API 把真正的函数式编程引入到Java中。 1、Stream是什么? Stream 是实时流,是数据渠道,用于操作数据源所生成的元素序列。 ”集合讲的是数据,Stream讲的是计算“ 语法:集合 / 数组.stream().过滤().映射().终止操作 Stream的步骤: 创建流:获取一个流 中间操作:对数据源的数据进行处理 终止操作:一旦执行终止操作,就会执行中间操作链,并产生结...
2021-08-16 21:11:15
282
原创 Java8新特性:(七)消费性接口 Consumer
1、Comsumer简介 源码 import java.util.Objects; @FunctionalInterface public interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? super T> after) { Objects.requireNonNull(after); retu
2021-08-16 09:38:14
740
原创 Java8新特性:(五)Supplier简介
1、Supplier简介 supplier是Java8配合Lambda表达式和函数式接口编程组合使用的一个接口,对外表现为 :: 接口Supplier<T> 最适合表示工厂。带有Supplier<T> 的方法,通常应该限制输入工厂的类型参数使用有限制的通配符类型,以便客户端可以传入工厂,来创建制定类型的任意子类。 简而言之,Supplier<T>就是来创建对象的。 案例: import com.xian.dto.Person; import org.jun.
2021-08-12 17:03:06
5129
1
原创 Java8新特性:(四)函数式接口
1、函数式接口简介 函数式接口有且只有一个抽象方法。 是一种比较特殊的接口。为此Java8还提供了一个新的注解@FunctionInterface,如果被这个注解标注,就说明该接口是一个函数式接口,如果有多于一个的抽象方法,编译时就会报错。这个注解不是必需的,只要接口符合函数式接口定义,那这个接口就是函数式接口。 /** * 自定义函数式接口 */ @FunctionalInterface public interface IStudent { void study(Strin
2021-08-11 09:33:43
239
原创 Java8新特性:(三)方法引用和构造引用
要求:实现抽象方法的参数列表和返回值类,必须与方法引用的方法参数列表和返回值类型保持一致。 方法引用:使用操作符 :: 将类名与方法名连起来 /** * 方法引用 */ public class MethodReferenceTest { /** * 方法引用案例 */ @Test public void methodReference(){ Comparator<Integer> comparator = (o.
2021-08-10 09:46:04
273
原创 Java8新特性:(二)四大内置函数式接口
1、消费型接口:void accept(T t); public class ConsumerTest{ /** * 消费性接口:接收一个参数,无返回值 */ @Test public void consumerTest() { Consumer<String> consumer = s -> System.out.println(s); consumer.accept("参数值"); } } 2、供
2021-08-10 09:33:40
309
原创 Java8 新特性:(一)Lambda表达式
友情链接: 菜鸟:菜鸟教程链接 下载:JDK8官网下载地址 一、Lambda表达式 Lambda表达式:是一个匿名函数,一段可以传递代码。 语法: () -> {} -> : Lambda操作符 ->左侧: 形参列表,接口中抽象方法的形参列表。 ->右侧: Lambda体,接口中抽象方法的实现方法体 案例: package com.xian.thread.lambda; import org.junit.Test; import java.util.Co
2021-08-09 09:30:30
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅