当前位置: 首页 > news >正文

数据库约束和查询

一 约束意义

        这个后面的字段是什么意思呢? 先前说数据类型是一种约束,约束我们只能放该类型的数据,还有其它的约束来保证数据的合法性,下面的字段就和约束有关。

        编译器的编译就是一个约束,保证我们的代码一定是语法合格的。我们有可能在表将qq号写到学号上,我们应该避免这种问题,这些都是需要我们去增加约束来保证的。

二 约束介绍

1 空属性约束

添加空属性约束

        我们发现NULL字段有些填YES,有些填NO,NO就是表示该字段不可以为NULL,

        用户必须插入数据,不能让表格显示为NULL,注意,有时候是显示为空,而不是为NULL,后面提,接下来演示一下。

        下面两个insert的sql语句报错是不同的情况,我们已经知道insert into 表名(列名称) values(列名称)这句sql语句,值得一提的是,values中没写的列,它们的值是用默认的值。而由于如果我们的列有了not null这个约束,此时不会给我们加上default null,所以values()插入时会报错说没有默认值。

        后面那个报错就是我们真的插入了null,这个违背了空约束。

2 默认值约束

        接下来要讲的约束,就和上表的Default字段有关。

        此时我们values没有值,但是也没有报错,就是因为有了默认值。

    

        之前创建表未指明default值,缺省值为NULL。

3 列描述

        没有实际意义,也没有什么约束功能,就是一个对列成员的描述,让后来者可以快速知道这个表的成员意义,就像注释一样。

        comment字段呢不显示在该表中,要用下面方式才可以查看。这个注释可以让程序员知道这个字段的意义,可以一定程度上约束我们输入的数据,例如我们知道这个列成员是学号,就不会数据一个班级上去。

4 显示约束

         zerofill

        type是成员类型可以理解,那为什么会有数字11。这个其实是显示的最大数据位数。

        zerofille表示将数据增加零来扩充宽度。若数据位数大于10,则无需补零。上面不是11位吗,为什么才十个数字,因为int默认有符号,还要一个字符给符号位。

有意思的是zerofill和default是有顺序要求的,我反过来书写会报错。

5 主键约束

        设定主键,主键列元素不能重复,而且该列自动设为非空约束。主键只能有一列,唯一键可以有多列。

        插入几行数据进来。

        主键标识一行的唯一性,我们可以来搜索某一行出来修改。

        去除主键,直接alter drop,不用指定列名,因为主键只有一列,这个不是删除列,而是去除主键约束。

        表已经建立好了,我们也可以增加主键,但是会检测表内是否有冲突行。

        复合主键,我们可以让id和name合起来为key,也就是只有当id和name合起来都重复了才算冲突。

        再来看看发现有两列都是主键了。

        我们插入几条数据,发现id可以重复,名字可以重复。

        此时id和name都重复就不行了。

6 自增长约束

        自增长约束,首先必须是主键列,而且改列的类型是整数,显然自增长列也只有一列。而且我们还可以指定自增长的起始值。

        id列无需传值,自动插入,自动增长。

        我们也可以自己指定id。

        随后的id从11开始自增。原因有一个auto_increment在维护。

7 唯一键约束

        id必须是唯一的,感觉和主键差不多? 唯一的区别就是id可以为空,而主键不可以。

        我们甚至可以让唯一键不为空,这样就和主键几乎完全一样了。可能还有其它列也是要有唯一性的,就有了唯一键,那还要主键干嘛呢,全是唯一键不就行了? 可以认为保存每个学生的数据时,每个学生都必须要有学号,必须唯一,不能有人无学号,这是主键约束,然后就是每个学生的电话号码不能重复,但是你可以为空,由此我们发现唯一键约束是约束性小的主键约束。

问1 为什么主键只有一个,这个其实和索引有关系,学了索引我们就知道,主键索引是最特殊的索引,其它的索引都是普通的,两者要维护的数据结构不同,当然要相互区分。

8 外键约束

        外键是和下表的最后一个字段有关。

        如果我们把班级表上的列属性都放到学生表中,此时每行都要保存id和班级名,比较冗余,

        如果我们将班级表抽离出来,然后学生表每行就只保存class_id了,不用保存name了,字节数来看是节省了不少的。

        接下来创建学生表和教室表。

        注意,class_id在教室表中是主键,学生表中的class_id则是普通列成员,外键约束是在从表中建立的,作用后提,什么是主从表也后提。

        

        我们给两张表插入一些数据。

        学生表插入时应该能够判断班级id是否存在? 如果不存在就会报错。

        还有教室表如何判断能否删除? 就是要判断学生表是否无该班级学生,无就可以删除了。

        所以我们本来是想要节省空间,但是却衍生了一些问题,两个表在插入删除的时候不能无脑用mysql语句了,解决: 就是我们给这两个表建立某种约束。

重新创建表,添加外键约束,在从表定义,这个就是语法而已,在从表定义,会在两个表都产生约束。

        如何区分主从表? 从表的列成员是主表主键,从表列成员和主表主键建立了外键约束。主表的主键列可以是唯一键或者主键。主表,从表只是一种分别称呼两个有关联表的称呼而已,因为这两张表在遇到插入删除时处理动作不同。     

        这个约束建立后,从表在插入时会拿着学生的class id去关联的表中查找,不存在报错。

在主表教室表删除时,也会拿着class id去学生表查找,存在就不能删。

总而言之,学生表为了节省存储的字节,将一些重复的并且较长的教室名字段拆出,学生表称为从表,教室表称为主表,从表保存class_id,通过class_id映射教室名,查询class_id必须能对应一个教室名,也就是有唯一性,所以是主键或者唯一键,然后就是两张表要维护一个约束,使得表的增删改查要多考虑一些东西,也就是外键约束。

三 curd

        先前我们大致了解了表的操作,接下来再回忆一下curd操作,方便后续查询的时候使用。

Create(创建),Retrieve(读取),Update(更新),Delete(删除)。

        创建表

        多行插入

插入更新

        qq和name都必须是唯一的。

        之后我们再插入可能会发生冲突,我们想插入失败转为更新语句,就用如下sql。

我解释一下我对下面这句sql语句的理解,冲突是从左往右比对的,所以如果name和qq都冲突,会说name冲突了,冲突就执行后面的update,但是在更新的时候更新值不能和旧的其它行冲突,可以和原先行相等。

下面这个提示都是用insert去演示一下。

replace一句就可以代替上面的两句,这个代替是先删除再插入。

读取Retrieve

        主要是用select语句。

全列查询

        我们把*换成特定列名称,此时我们就可以对特定列查询了,指定列。

多列

注意,这个不是不是查询多列,而是对name列重命名。

多列重命名

去重,在列前面加个distinct即可。

select后面还可以跟着表达式,显示的列名就是表达式,也可以重命名。

where字句

        我们可以对一些行做筛选,这个指令在下面的查询中经常用到。

        注意,在where字句中NULL用<=>运算符比较,或者用is NULL或者is not null,一个=只能用来数字和字符的比较。

还有很多其它的运算符后面在实际例子中学习。

between a0 and a1可以用来代替 >= a0 and <= a1,判断是否为null可以用如下方式。

四 查询

1 需求实战

        建立表。

需求1

        找英语成绩小于60的。

需求2

        找语文成绩在80-90的,并且显示出来语文成绩。

        这里我们就用到了and这个并且的逻辑运算符,我还可以用下面这个。

需求3

找数学成绩是58,59,98,99都找出来。

        此时就用到了or这个运算符,我们也可以用下面这个代替。

需求4 

        在表中找一个姓孙的一行,此时就涉及模糊匹配,也是可以用一个运算符like来处理。=是精确匹配,不能用下面这两个通配符。

注意%和_的意义。

      

        _只能匹配一个字符,*可以匹配任意个字符。

需求5

        语文成绩好于英语成绩的。

需求6 

        求总分小于两百的。

        为什么下面报错说total找不到了,因为select执行顺序先通过from定位表,然后识别筛选条件,最后才去select筛选,将筛选结果显示的时候才对列重命名total,所以在条件识别时sql就不认识total,所以就报错了。

        只支持对列名称重命名,不支持在筛选条件重命名。

需求7

        语文成绩大于80,且不姓孙的同学。

需求8

        孙某同学,否则总成绩>200,并且语文<数学成绩并且英语>80。

        可用括号将多个条件合并为一个单元。

NULL查询

        所以找NULL不能name=NULL。

2 对结果排序

        order by字句排序,用数学成绩来排序。

        我们可以指定升序降序,默认是按照升序的。

3 排序练习

     1 依次按照数学降序,英语降序,语文升序来排序显示,也就是说如果数学成绩相等就按照英语来排,也相等就按照语文来排序。

        如果数学成绩不相等就直接按照数学来排了。都是降序可写如下简略写法。

2 查询同学总分排名。

        order为什么能使用别名,还是和执行顺序有关。先select筛选再order排序,先排序再select效率太低,因为不是所有的数据都要排序的,先select筛选是指执行where,然后执行select .. from。

3 查询姓孙的同学或者姓曹的同学的数学成绩,结果按照高到低显示。

        先筛选出数据,再排序。

limit可以对结果进行截取。只有一个数字表示从开始位置截取,截取行数为1。

 offset可以指定起始位置。

        limit 1,4是从第二行开始往后显示4行,数据排序好要显示了才到limit来限制显示,所以Limit还在select,order之后。

update

        update本质也是查找,因为需要先找到需要更新的行,才能更新。

尝试1,将孙悟空的数学成绩更为80。

        多列更新如下。

尝试2,将后三名同学的数学+30分。

        此时我们就拿出了后三名同学成绩。

        显然我们是先排序,再获取前三行,再更新,所以更新顺序排在limit后面,加了三十分后对总分排名会有影响,此时再获取前三行不一定符合原意。

4 delete删除

          这里delete是删除一行,alter drop是删除表的一列,是对表结构做修改,我们学的curd都是对内容做修改。

        删除总分倒数第一。由于delete和select语法格式不太一样,所以我们的总分无法重命名。

如果没有limit那就是删除整张表了。

5 截断表

        清空表不会对 auto increament清零。

        插入多个数据。

        截断和delete表都会清空表,但是截断时会对auto increament清零。还有个区别是truncate比delete快,因为不会变成事务。

        事务: 我们的sql操作痕迹一般会变成事务被记录下来,方便溯源恢复,而截断不保存,所以比delete少事,也就更快了。值得一提的是,数据库有一种内存文件来保存数据,断开时会紧急保存到磁盘上,所以如果恢复数据库,我们可以重新执行sql语句,也可以读取磁盘文件来恢复数据。

6 去重

insert和select组合,案例如下

插入数据。

        下面这个可以去重,但是我们要构建一个无重复的,现在用去重的结果创建出一个表。

        创建被去重表,还可以用like运算符来模仿现有表结构。

        选择唯一的插入表中,此时insert可以没有value?

        再修改表名,原先的duplicate_table改成其它的表名,这个最好要在一句sql语句中完成,保证原子性。

实际上不能把文件直接上传到某个目录下,因为上传会很慢,不是原子的, 一般是上传到中间目录下,然后再move转到特定目录下,move和rename是原子的,只需要更改目录的保存的文件名和innode映射即可。所以当我们在创建新的duplicate_table时,也要保证原子性,以免修改时影响上层使用。

7 聚合函数了解

7

上述函数内传一个列名。

        首先*表示select选择全部行出来,select 1可以认为是加多一个全是1的列。

        distinct应该放在count函数里面,因为是对数学成绩做去重,放外面就表示是对count结果做去重了。

求和

        找到英语不及格的然后再求平均

下面sql同理可以实现求平均。

        找英语成绩最高的。

        下面这样使用不行?

        name是非聚合字段,sql规定非聚合字段必须出现在group by中,因为一个组内可能有多个成员,然后每个成员的名字不同,求最大值时可能有多行最大值,所以不知道非聚合列取哪个值,所以只要看到聚合函数,然后非聚合字段又不在group by中,此时直接拦截。

8 分组查询

分组目的是为了聚合统计。

执行顺序是先定位表,然后where判断开始select筛选,然后是分组。

部门表

        雇员表

        而且雇员表关联了部门表的部门编号,此时部门编号是主键,部门表就是主表,而雇员表是从表。正常情况下,MySQL不是所有特性都会投入使用的,是我们在上层设计保证的,如何用编程语言实现对数据库的约束,后面提,这个的意义是为了减少约束,提高底层插入查询效率。

group by字句使用,

需求1

平均和最高都要用聚合函数来计算。

        上面是将一张表看成一个组,一起做聚合统计。如下,此时我们就是分组做聚合统计了。

注意首先一个组内的deptno是一样的,这样聚合后,deptno的值就是唯一的,不会有多个不同的值,让mysql不知道选什么。

需求2

        按照两个条件来分组。

需求3

        我们可以先分组统计出平均工资,不可以用where,where是在分组前起作用的。

having是用于对分组聚合统计结果进行筛选。

        从下面来看,having好像可以充当where,但是实际上这里用having和where含义是不一样的,having用的字段必须是select筛选出来的,而where用的字段可以是表里任意的,这就说明一个问题,where是在筛选的时候判断的,而having一定是筛选完才使用的判断结果。

        下面这个结果是恰好和where产生了一样的效果,其实是不一样的,是先筛选了整表,然后having开始筛选。

此时就不能用where,因为这个时候已经select筛选完了,按照语法规定得用having。

四 内置函数

内置函数语法select + 函数名。

1 日期函数

分别获取日期,时间和时间戳

        now函数返回的和时间戳相同,

date函数返回日期部分。

        添加时间

日期相减。

2 时间函数使用样例

        插入数据。

时间戳和时间疑似做了一种类型转换。

例子2

开始插入

例子3

1 如何确认是两分钟内的

        拿表内的数据对应的时间和当前时间相减,这个相减不能我们直接+-,而是调用先前用到的函数。

下面两种where都可以。

3 字符串函数

string应该指的是char或者varchar类型。我们还可以筛选出表中的列来传给内置函数,就像先前的聚合函数使用一样。

concat函数: 链接若干个字符串。

        instr函数,返回出现位置,值得一提的是string的下标是从1开始的,这样可以和找不到返回零的情况区分开来。

大小写转换函数。

left和right函数,从某个方向取len个字符。

接下来是函数使用案例,来认识最后的几个字符串函数。

1

 用contact把分数拼接起来,

因为ut8编码,一个字符由三个字节表示。但是如果能在ascii表上找到的,一般用一个字节表示。

3 replace函数使用

4 substring

第二个参数是起始位置,第三个参数是len。

5

这个就是先截取首字母,然后做小写转换,

最后一步拼接

下面这个是去除空格,分别是去除左右空格,左空格,右空格。

4 数学函数

abs和bin函数如下。

conv:将10从10进制转到4进制

format保留指定位精度。

负数取模

向上向下取整函数解析

向下取整是直接去掉小数,向上是直接+1,小数舍去,3.1变为4,3.9也是,- 3.1是变为-3,不是四舍五入。

5 其它函数

查用户

定义一个用户表

        md5函数,将密码转为数据摘要,这样保持就用数据摘要代替密码。

        用来比较的密码也要转md5。

ifnull函数

相关文章:

数据库约束和查询

一 约束意义 这个后面的字段是什么意思呢? 先前说数据类型是一种约束&#xff0c;约束我们只能放该类型的数据&#xff0c;还有其它的约束来保证数据的合法性&#xff0c;下面的字段就和约束有关。 编译器的编译就是一个约束&#xff0c;保证我们的代码一定是语法合格的。我们…...

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 3.1.2 基于注意力的解释&#xff08;Attention-Based Explanation&#xff09; 注意力机制可以揭示输入数据中各个部分之间的关系&#…...

AI大模型-提示工程学笔记1

卷首语&#xff1a;我所知的是我自己非常无知&#xff0c;所以我要不断学习。 写给AI入行比较晚的小白们&#xff08;比如我自己&#xff09;看的&#xff0c;大神可以直接路过无视了。 几个基本概念 1. 给LLM提示 用户可以通过简单的提示词&#xff08;Prompts&#xff09…...

webrtc-internals调试工具

Google 的 Chrome&#xff08;87 或更高版本&#xff09;WebRTC 内部工具是一套内置于 Chrome 浏览器中的调试工具; webrtc-internals 能够查看有关视频和音频轨道、使用的编解码器以及流的一般质量的详细信息。这些知识对于解决音频和视频质量差的问题非常有帮助。 webrtc-int…...

百度PaddleSpeech识别大音频文件报错

一、背景 公司前同事留下了一套语音识别项目&#xff0c;内部使用百度PaddleSpeech。在项目验收的时候发现无法识别大音频文件&#xff0c;但是可以识别小音频文件。 这套项目是通过python调用的百度PaddleSpeech&#xff0c;然后提供了restful接口&#xff0c;然后java项目可…...

No.3十六届蓝桥杯备战|数据类型长度|sizeof|typedef|练习(C++)

数据类型⻓度 每⼀种数据类型都有⾃⼰的⻓度&#xff0c;使⽤不同的数据类型&#xff0c;能够创建出⻓度不同的变量&#xff0c;变量⻓度的不同&#xff0c;存储的数据范围就有所差异。 sizeof操作符 sizeof 是⼀个关键字&#xff0c;也是操作符&#xff0c;专⻔是⽤来计算特…...

MapReduce相关概念(自用)

MapReduce&#xff1a;分布式计算模型 MapReduce 是一种分布式计算模型&#xff0c;由 Google 在 2004 年提出&#xff0c;用于大规模数据集&#xff08;TB 或 PB 级别&#xff09;的分布式处理。它通过简单的编程模型&#xff0c;将复杂的分布式计算分解为两个基本阶段&#…...

Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)

文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二&#xff1a; 状态码写法三 &#xff1a; 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…...

I2C(一):存储器模式:stm32作为主机对AT24C02写读数据

存储器模式&#xff1a;在HAL库中&#xff0c;I2C有专门对存储器外设设置的库函数 I2C&#xff08;一&#xff09;&#xff1a;存储器模式的使用 1、I2C轮询式写读AT24C02一页数据2、I2C轮询式写读AT24C02多页数据3、I2C中断式写读AT24C02一页数据4、I2C使用DMA式写读AT24C02一…...

AI助手网站

​​​​​​​ chatgpt &#xff1a;https://chatgpt.com/ https://openai.com/index/chatgpt/ 百度ai助手 https://chat.baidu.com/ 百度AI助手https://chat.baidu.com/ 文心快码 文心快码BaiduComate 文心快码BaiduComate 文心快码BaiduComate有代码问题&#xff0c;问文…...

初始nginx

华子目录 nginx介绍nginx功能介绍基础特性web服务相关功能nginx进程结构web请求处理机制 nginx进程间通信nginx启动与http连接建立http处理过程 nginx模块介绍nginx命令演示 nginx介绍 nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服…...

可扩展性设计架构模式——事件驱动架构

事件驱动架构&#xff08;Event-Driven Architecture, EDA&#xff09;是一种可扩展性设计软件架构模式&#xff0c;它通过事件来触发和通信&#xff08;以事件为核心&#xff09;&#xff0c;实现不同系统组件之间的解耦&#xff08;促进应用程序或系统部件之间的松耦合通信&a…...

Prometheus 专栏 —— Prometheus安装、配置

配置文件基本结构 global: 全局配置 scrape_interval: 抓取目标指标的频率&#xff0c;默认为 1minevaluation_interval: 评估告警规则的频率&#xff0c;默认为 1minscrape_timeout: 抓取目标指标数据拉取超时&#xff0c;默认为 10s&#xff0c;如果出现 context deadline e…...

Java并发编程面试题:线程池Fork/Join(19题)

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

【每日学点鸿蒙知识】WebView代理、2D绘制矩形圆角、TextInput清理按钮、pdf滑动、icon配置问题

1、HarmonyOS Webview 支持设置代理功能吗&#xff1f; 使用Web的onInterceptRequest先拦截再代理来实现。具体可以参考文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#ZH-CN_TOPIC_0000001930757269__on…...

抽奖系统(1)(Java 实现)

1. 需求描述 1. 包含管理员的注册与登录 1) 注册包含&#xff1a;姓名、邮箱、手机号、密码 2) 登录包含两种方式 (1) 电话 密码登录 (2) 电话 短信登录&#xff1b;验证码获取 (3) 登录需要校验管理员身份 2. 人员管理&#xff1a;管理员支持创建普通用户&#xff0c;查看…...

数据库系统原理复习汇总

数据库系统原理复习汇总 一、数据库系统原理重点内容提纲 题型&#xff1a;主观题 1、简答题 第一章&#xff1a;数据库的基本概念&#xff1a;数据库、数据库管理系统、三级模式&#xff1b;两级映像、外码 第二章&#xff1a;什么是自然连接、等值连接&#xff1b; 第三…...

基于16QAM的载波同步和定时同步性能仿真,采用四倍采样,包括Costas环和gardner环

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 载波同步是…...

鸿蒙next RCP网络请求工具类进阶版来了

前言&#xff1a; 各位同学大家好&#xff0c;有一段时间没有更新文章了,最近因为鸿蒙官方的网络请求换掉了了rcp 之前是使用http 这些都是原生开发的 当然有那种三方大家熟知的 axios (这个也是基于http 后面也会过时)所以大家还是要了解一下rcp的原生的网络请求的。那么我们…...

driftingblues6_vh靶机

首先把靶机换成NAT模式 使用 arp-scan 命令扫描网段内存活的主机&#xff0c;以获取靶机ip地址 arp-scn -l 尝试访问ip 使用御剑扫描子域名&#xff0c;尝试访问robots.txt文件 通过访问文件我们发现了一个/textpattern/textpattern目录 访问一下目录发现了登录页面 他还给了…...

Go语言入门

文章目录 零、Linux下Go的安装1.下载、解压2.添加环境变量3.验证安装4.初始化Go模块(1)cd到项目目录(2)初始化模块(3)获取依赖包(4)清理和验证依赖(5)检查 go.mod 文件(6)介绍 go.mod 和 go.sum 文件 5.项目目录结构 一、感性认识1.从 Hello world 开始2.加法函数 二、Go语法1.…...

VS Code中怎样查看某分支的提交历史记录

VsCode中无法直接查看某分支的提交记录&#xff0c;需借助插件才行&#xff0c;常见的插件如果git history只能查看某页面的改动记录&#xff0c;无法查看某分支的整体提交记录&#xff0c;我们可以安装GIT Graph插件来解决这个问题 1.在 VSCode的插件库中搜索 GIT Graph安装&a…...

【杂谈】-AI搜索引擎如何改变传统SEO及其在内容营销中的作用

AI搜索引擎如何改变传统SEO及其在内容营销中的作用 文章目录 AI搜索引擎如何改变传统SEO及其在内容营销中的作用1、什么是AI搜索引擎2、AI搜索引擎对SEO策略的影响3、AI搜索引擎在内容营销转型中的作用4、AI搜索引擎在营销领域的挑战、道德问题和未来5、总结 在当今的数字营销世…...

快速掌握Haproxy原理架构

文章目录 一、原理架构二、无负载均衡三、四层负载均衡的工作流程四、七层负载均衡工作流程五、基础属性mode 属性retries 属性maxconn 属性clitimeout 属性servtimeout 属性states uri 属性 一、原理架构 四层tcp代理&#xff1a;Haproxy仅在客户端和服务器之间双向转发流量&…...

Java中以某字符串开头且忽略大小写字母如何实现【正则表达式(Regex)】

第一种思路是先将它们都转换为小写或大写&#xff0c;再使用String类的startsWith()方法实现: 例如&#xff0c;如下的二个示例&#xff1a; "Session".toLowerCase().startsWith("sEsSi".toLowerCase()); //例子之一//例子之二String str "Hello Wo…...

如何提高Redis服务器的最大打开文件数限制

文章目录 如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制3. 修改Redis配置文件4. 修改systemd服务文件5. 重新加载systemd并重启Redis6. 验证更改 注意事项 如何提高Redis服务器的最大打开文件数限制 在运行高并发…...

React 组件通信完整指南 以及 自定义事件发布订阅系统

React 组件通信完整指南 1. 父子组件通信 1.1 父组件向子组件传递数据 // 父组件 function ParentComponent() {const [data, setData] useState(Hello from parent);return <ChildComponent message{data} />; }// 子组件 function ChildComponent({ message }) {re…...

代码随想录算法【Day5\Day6】

DAY5\Day6 1.熟悉哈希表的数据结构&#xff1a;数组、map和set&#xff0c;使用方法、使用场景 2.哈希表应用场景&#xff1a;解决给你一个元素&#xff0c;判断它在集合里是否出现过。 242.有效的字母异位词 本题用数组解决的。 class Solution { public:bool isAnagram(…...

Oracle 数据库执行计划的查看与分析技巧

目录 Oracle 数据库执行计划的查看与分析技巧一、什么是执行计划二、查看执行计划的方法&#xff08;一&#xff09;使用 EXPLAIN PLAN 命令&#xff08;二&#xff09;通过 SQL Developer 工具查看&#xff08;三&#xff09;启用 AUTOTRACE 功能 三、执行计划中的关键信息解读…...

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比 目录 VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比; 2.单变量时间序列预测 就是先vmd把变…...

QGIS二次开发(地图符号库操作)

实习三 地图符号库操作 3.1 任务要求 基于QGIS&#xff0c;实现地图符号的设计/存储与显示&#xff1b;基于QGIS实现一个点、线、面shp矢量图层文件的显示。通过设置引用的符号&#xff0c;改变矢量图层的显示效果&#xff1b;可编辑地图的符号库汇中的点符号、线符号、面符号…...

wordpress网站用token登入开发过程

生成跳转token 示例&#xff1a; function generate_login_token($user_id, $secret_key) {$payload [user_id > $user_id,timestamp > time(),];$payload_json json_encode($payload);$signature hash_hmac(sha256, $payload_json, $secret_key);return base64_en…...

Uniapp在浏览器拉起导航

Uniapp在浏览器拉起导航 最近涉及到要在浏览器中拉起导航&#xff0c;对目标点进行路线规划等功能&#xff0c;踩了一些坑&#xff0c;找到了使用方法。&#xff08;浏览器拉起&#xff09; 效果展示 可以拉起三大平台及苹果导航 点击选中某个导航&#xff0c;会携带经纬度跳转…...

在 CentOS 上安装 FFmpeg

在CentOS 上安装 FFmpeg 方法一&#xff1a;在线安装 添加 EPEL 和 RPM Fusion 源&#xff1a; sudo yum install epel-release sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm安装 FFmpeg&#xff1a; sudo yu…...

影刀进阶指令 | liblib反推 (SD AI绘图反推)

文章目录 影刀进阶指令 | liblib反推 (SD AI绘图反推)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 获取png地址2\. 打开页面3\. 上传png文件4\. 获取png的prompt信息 四. 运维 影刀进阶指令 | liblib反推 (SD AI绘图反推) 先看看我们要实现的功能&#xff0c;li…...

WebStorm 创建一个Vue项目

一、下载并安装WebStorm 步骤一 步骤二 选择激活方式 激活码&#xff1a; I2A0QUY8VU-eyJsaWNlbnNlSWQiOiJJMkEwUVVZOFZVIiwibGljZW5zZWVOYW1lIjoiVU5JVkVSU0lEQURFIEVTVEFEVUFMIERFIENBTVBJTkFTIiwiYXNzaWduZWVOYW1lIjoiVGFvYmFv77yaSkVU5YWo5a625qG25rAIOa0uW3peS9nOWupC…...

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归…...

rust windwos 两个edit框

use winapi::shared::minwindef::LOWORD; use windows::{core::*,Win32::{Foundation::*,Graphics::Gdi::{BeginPaint, EndPaint, PAINTSTRUCT},System::LibraryLoader::GetModuleHandleA,UI::WindowsAndMessaging::*,}, };// 两个全局静态变量&#xff0c;用于保存 Edit 控件的…...

ArcGIS计算矢量要素集中每一个面的遥感影像平均值、最大值等统计指标

本文介绍在ArcMap软件中&#xff0c;基于矢量面要素集&#xff0c;计算在其中每一个面区域内&#xff0c;遥感影像的像元个数、平均值、总和等统计值&#xff0c;并将统计信息附加到矢量图层的属性表中的方法。 首先&#xff0c;明确一下本文的需求。现在有一个矢量面要素集&am…...

JavaScript高级程序设计基础(十一)

上接语言基础&#xff1a;JavaScript高级程序设计基础&#xff08;十) 五、集合引用类型 5.1 object 此处简单介绍object&#xff0c;object由两种方式可以创造&#xff1a;由构造函数new Object(),或者对象字面量。如果想要修改对象的值可以用点语法&#xff0c;如object.na…...

【服务器学习专栏 1.2 -- 带外管理】

请阅读 嵌入式学习必备专栏 文章目录 Overview服务器带外管理BMC 介绍BMC 特点BMC 工作原理 Overview 从技术的角度&#xff0c;网络管理可分为带外管理&#xff08;out-of-band&#xff09;和带内管理&#xff08;in-band&#xff09;两种管理模式。 带内管理&#xff0c;是指…...

《Vue3 二》Vue 的模板语法

在 React 中&#xff0c;想要编写 HTML&#xff0c;是使用 JSX&#xff0c;之后通过 Babel 将 JSX 编译成 React.createElement 函数调用&#xff1b;在 Vue 中&#xff0c;也支持 JSX 的开发模式&#xff0c;但大多数情况下都是使用基于 HTML 的模板语法&#xff0c;在模板中允…...

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发&#xff0c;简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金&#xff0c;还为商家开辟了新的收入渠道。随着智能手机的普及&#xff0c;很多人并不需要长期拥有一部手机&#xff0c;…...

【Ext.js 初步入门】Ext.js 作用以及用法 概述

一、Ext.js的作用 首先我们需要了解类似Ext.js以及easyui类似产品的作用是什么。 我的理解是就是相当于一个组件库&#xff0c;它与bootstrap类似产品的区别在于&#xff0c;bootstrap与ext.js和easyui面向的问题不同&#xff0c;bootstrap面向的问题样式&#xff0c;ext.js和…...

基于源码剖析:深度解读JVM底层运行机制

每日禅语 佛说&#xff0c;给你修路的&#xff0c;是你自己&#xff1b;埋葬你的&#xff0c;也是你自己&#xff1b;帮助你的&#xff0c;是你自己&#xff1b;毁灭你的&#xff0c;也是你自己&#xff1b;成就你的&#xff0c;自然还是你自己。所以佛说&#xff1a;自作自受&…...

redis延迟队列

Redis延迟队列 Redis延迟队列是基于Redis构建的消息队列&#xff0c;用来处理需延迟执行的任务。 基本原理 它借助Redis的有序集合&#xff08;Sorted Set&#xff09;数据结构达成目的。会把任务及其执行时间分别当成成员与分值存进有序集合&#xff0c;由于执行时间作为分值&…...

GDPU Vue前端框架开发 期末赛道出勇士篇(更新ing)

记住&#xff0c;年底陪你跨年的不会仅是方便面跟你的闺蜜&#xff0c;还有孑的笔记。 选择题 1.下列选项用于设置Vue.js页面视图的元素是&#xff08;&#xff09;。 A. Template B. script C. style D. title 2.下列选项中能够定义Vuejs根实例对象的元素是&#xff08;&…...

WordPress TutorLMS插件 SQL注入漏洞复现(CVE-2024-10400)(附脚本)

0x01 产品描述: ‌Tutor LMS‌是一个功能强大的...

小程序配置文件 —— 14 全局配置 - tabbar配置

全局配置 - tabBar配置 tabBar 字段&#xff1a;定义小程序顶部、底部 tab 栏&#xff0c;用以实现页面之间的快速切换&#xff1b;可以通过 tabBar 配置项指定 tab 栏的表现&#xff0c;以及 tab 切换时显示的对应页面&#xff1b; 在上面图中&#xff0c;标注了一些 tabBar …...

基于python+Django+mysql文档格式转换工具系统设计与实现

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…...