自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 测试理论基础——day1

①单元测试:针对程序源代码的测试【开发】②集成测试:针对功能模块组装的测试——如:功能联动一起测试③系统测试:针对整个系统(功能、非功能)进行测试——如:全面测试④验收测试:以用户身份验证系统是否满足需求【用户】

2024-07-27 19:29:43 154

原创 MySQL进阶——锁

(1)当执行SELECT、INSERT、UPDATE、DELETE等语句时,添加的是元数据共享锁(SHARED_READ / SHARED_WRITE),之间是兼容的。那么数据在进行逻辑备份的过程中,数据库中的数据就是不会发生变化的,这样就保证了数据的一致性和完整性。(2)当执行alter语句时,添加的是元数据共享锁(EXCLUSIVE),会阻塞元数据排他锁,之间是互斥的。这里的元数据,大家可以简单理解为就是一张表的表结构。,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。

2024-06-26 18:43:25 749

原创 MySQL进阶——触发器

(null, 'insert', now(), new.id, concat('插入的数据内容为:id=',new.id,',name=',new.name, ', phone=', NEW.phone, ', email=', NEW.email, ',profession=', NEW.profession));VALUES (25,'二皇子','18809091212','erhuangzi@163.com','软件工程',23,'1','1',now());触发(影响5行则触发5次),不支持。

2024-06-23 15:03:44 559

原创 MySQL进阶——存储过程

用户姓名 (name)和专业(profession),并将用户的姓名和专业插入到所创建的一张新表 (id,name,profession)中。当游标的数据集获取完毕之后,再次获取数据,就会报错,从而终止了程序的执行。局部变量是根据需要定义的在局部生效的变量,访问之前,需要DECLARE声明。可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置。

2024-06-22 21:12:31 1128

原创 MySQL进阶——视图

执行id=26时就会失败,因为id=2620的,不满足,所以最终不会运行成功。(1)当不加检查选项:在执行插入时,不管是id=620,都会插入成功,即不会对视图str_v_1的操作进行检查,这样就会出现插入成功,但是查询不出来的情况。(2)加说检查选项:在执行插入时,在执行id=31>20时,会被检查出来,而不被插入进去。

2024-06-21 16:47:33 1029

原创 MySQL进阶——SQL优化

(1)Using filesort : 通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序。因为,当在进行分页查询时,如果执行 limit 1000000,10 ,此时需要MySQL排序前1000010 记 录,仅仅返回 1000000 - 1000010 的记录,其他记录丢弃,查询排序的代价非常大。出 来,返回给服务层,服务层判断是否为null,不为null,计数累加。

2024-06-21 14:50:03 874

原创 Z语言学习——基于通讯案例

额外定义了一个函数,函数的输入是一个五元组(Agents × Agents X Command × Messages × Keys),函数的输出是一个命令,消息,和对应的一个密钥(Command × Messages × Keys。命题用于说明系统状态,后续将说明前件和后件的使用。,Bob_Knowledge = ∅),所以攻击者得不到任何信息,因此攻击者的知识集目前也是空的(Adversary_Knowledge'=∅)。输入的Keys,对应的是一个实体,因为函数是多对一的,一个实体可以拥有多个密钥,

2024-06-20 21:35:21 808

原创 MySQL进阶——索引【核心】

哈希索引就是采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,然后存储在hash表中。(2)有索引情况:如果我们针对于这张表建立了索引,假设索引结构就是二叉树(存储结构),那么也就意味着,会对age这个字段建立一个二叉树的索引结构。等其他的哈希函数计算地址,直到不发生冲突为止。(1)All全表扫描是性能最差的,null是最好的,但是一般不可能优化到null,null表示不调用任何表;(2)对于B-tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,;

2024-06-19 11:24:59 1227

原创 MySQL进阶——存储引擎

如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。,xxx代表的是表名, innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm-早期的、sdi-新版的)、数据和索引。3)区 : 区是表空间的单元结构,每个区的大小为1M。

2024-06-16 21:41:15 550

原创 MySQL基础——多表查询和事务

同上的操作,将A将事务的隔离级别设置为read committed,然后在B中进行修改,但是不提交,发现A事务中不会出现赃读情况。select a.name '员工', b.name '领导' from emp a left join emp b on a.managerid = b.id;这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。select a.name '员工', b.name '领导' from emp a , emp b where a.managerid = b.id;

2024-06-16 16:02:38 1185

原创 MySQL基础——函数和约束

如下图:左侧的emp表是员工表,里面存储员工的基本信息,包含员工的ID、姓名、年龄、职位、薪资、入职日期、上级主管ID、部门ID,在员工的信息中存储的是部门的ID dept_id,而这个部门的ID是关联的部门表dept的主键id,那emp表的dept_id就是外键,关联的是另一张表的主键。案例:由于业务需求变更,企业员工的工号,统一5位数,目前不足5位数的全部在前面补0。案例:查询emp表的员工姓名和工作地址(北京/上海---->一线城市,其他---->二线城市)案例:通过数据库的函数,生成一个六位数的。

2024-06-15 21:02:21 724

原创 MySQL基础——SQL语句

当存储CHAR值时,MySQL会删除字符串中的末尾空格(在MySQL 4.1和更老版本中VARCHAR 也是这样实现的——也就是说这些版本中CHAR和VARCHAR在逻辑上是一样的,区别只是在存储格式上)。字符串,是最常见的字符串数据类型。它比固定长度类型更节省空间,因为它仅使用必要的空间(根据实际字符串的长度改变存储空间)。代码:在添加字段的代码上修改就是将add改为change,原本一个字段名,改为包含旧和新的两个字段名。例:输入,就可查询当前数据库服务器中所有的数据库,包括我刚刚新建的两个。

2024-06-15 13:38:52 1456

原创 CPN Tools学习——时间和队列【重要】

-Timed Color Sets 时间颜色集-Token Stamps 令牌时间戳-Event Clock 全局/事件/模拟时钟-Time Delays on Transitions过渡的时间延迟- List Color Set列表颜色集- Queue排队

2024-06-13 18:25:15 1184

原创 CPN Tools实现hello world小案例

新建一个net,创建两个输入P1,P2,一个输出P3,一个转换T1,并对输入输出place使用。接下来是添加弧表达式进行P和T之间的连接,但是注意如果是常量表达式,那么值一定要与。(这里是左键单击P,然后tab键输入String即可)。接下来放置令牌值,以便于执行转换。输出的值是由转换T1到输出P3之间的弧表达式决定的!3) 输入颜色集(颜色集必须是声明中定义的颜色集)否则不能触发T,T不会亮绿色。当然字符串要打””,否则会报错!1)通过左键点击选择位置,3)键入所需的多个令牌集。2)按两次Tab键。

2024-06-13 11:10:50 230

原创 CPN tools学习——可执行的 PN

但是变量会尝试与输入位置P1,P2的令牌值绑定,如果两个都是一样的in1,会使得两个都绑定一样的值,都为A,或都为B。T1只能触发一次的原因是,P1,P2到T1的弧上显示的都是一个B,表示各要有一个B才能实现转换,但是转换一次之后,这里的P1只有一个A了,不是正确的令牌值,因此不能满足转换条件。下一步T1这里显示转移的是两个B,剩下的有正确的令牌值,所以可以执行第二次转移,至此输入的P1,P2都将值全部转移到P3了。P1处:添加多重集合,表示添加了两个令牌,第一个令牌值为A,第二个为B。

2024-06-13 10:21:21 459 1

原创 初识形式化验证工具——CPN tools

CPN Tools工具学习

2024-06-13 10:03:36 1210

原创 SQL进阶day12——高级条件语句

正则表达式函数用 RLIKE 或者 REGEXP;left join 和 inner join;where,group by,having的先后顺序,要根据数据的具体情况

2024-06-11 22:24:39 1364

原创 SQL进阶day12——空值处理

if(expr,v1,v2);case expr when v1 then r1 [when v2 then r2] ...[else rn] end;avg((if(score is NULL,0,score));timestampdiff(minute,时间1,时间2),是时间2-时间1。

2024-06-11 15:08:06 558

原创 SQL进阶day11——窗口函数

1专用窗口函数1.1每类试卷得分前3名我的代码:筛选好难,不懂啥意思select tag tid,uid,rank()over(partition by tag order by score desc ) rankingfrom examination_info ei join exam_record eron ei.exam_id = er.exam_idlimit 3正确代码:select *from (select tag tid,uid,rank()

2024-06-06 18:21:38 1178

原创 SQL进阶day10————多表查询

(3)这么如果只是按照month(submit_time) 分组,uid,month(submit_time)只有9和null两种情况,当使用GROUP BY子句时,(1)uid,month(submit_time)是啥呢,如果原来只是按照month(submit_time)进行分组,1002,1003,1005都有多个。timestampdiff,如计算差多少分钟,timestampdiff(minute,时间1,时间2),是时间2-时间1,单位是minute。

2024-06-04 19:56:23 1055

原创 SQL面试问题集

union all只是合并查询结果,并不会进行去重和排序操作,在没有去重的前提下,使用union all的执行效率要比union高。有一次性求出次日留存率,3日留存率,7日留存率,30日留存率(我用的datediff做的,感觉不是很好)(2)左连接:连接后左边不可能有null——左边有的,右边没有的为null。join 表名2 on 表名1.字段名 = 表名2.字段名。表名2 on 表名1.字段名 = 表名2.字段名。表名2 on 表名1.字段名 = 表名2.字段名。select 字段名。

2024-06-03 21:46:06 598

原创 SQL进阶day9————聚合与分组

我的错误代码:截断平均值是有专门的函数吗?我的思路改正:用 (全部值 - 最大值 - 最小值) / (总数-2) ,但是标准正确代码:使用in子句将最大值和最小值排除掉,再求平均值with...as句式with...as句式unionQ:为什么这里where换成and也不报错,因为前面有on?那么where和on有啥区别呢,可以只有一个吗?A:(1)where和having是在临时表生产之后,对临时表中的数据进行过滤用的。

2024-06-03 21:13:38 1342

原创 SQL刷题笔记day8——SQL进阶——表与索引操作

我的答案复盘:有了主键就不用写not nul了。

2024-06-02 22:25:42 519

原创 SQL刷题笔记day7——SQL进阶——增删改操作

我的代码:insert into table(col1, col2,...,coln) values (value1, value2,...,valuen)时间差函数:timestampdiff,如计算差多少分钟,timestampdiff(minute,时间1,时间2),是时间2-时间1。否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。复盘:table后面对应最好也要写上列字段名,否则和默认的对应不上就要报错,values中类型要正确,''要正确使用。

2024-05-30 19:52:00 1049

原创 SQL刷题笔记day7——SQL必知必会

我的代码:group by 分组其他方法: distinct 搜索去重:select distinct [列名1,列名2,...] from [表名]

2024-05-30 16:03:04 1245

原创 SQL刷题笔记day6-1

正确代码:按照(部门id和最大薪资)进行查询,这样才能保证找出同部门可能存在的多个最高薪资的员工。官方答案:from后调用自身表两次,email相等,但是重复的前面id不等,不等则删掉。分析:每个部门(group by),薪资最高(排序取第一 or max函数),员工。分析:从不订购,就是购买订单没有记录,

2024-05-29 22:33:33 737

原创 SQL刷题笔记day6——转战LeetCode

​我的代码不满足示例2的情况:如果没有第 2 高的薪资,即表里可能只有一条记录,这个解答会被评测为 'Wrong Answer'。为了克服这个问题,我们可以将其作为临时表。​方法2:使用IFNULL和LIMIT子句。

2024-05-29 15:32:05 618

原创 SQL刷题笔记day5

正确代码我的代码改正复盘:难点是找非manager员工,涉及not in的用法, not in后面是个范围,而不是dept_manager.dept_no这个某个值。

2024-05-28 21:58:34 769

原创 SQL刷题笔记day4补

复盘:没有搞懂啥事1-N排序,而且这个平台的SQLite数据库连很多排名函数都不支持,这种就主要是连逻辑了,代码可能还是要去其他平台练习。在salaries表里面有多少条记录,所以应该按照部门分组,而不是按照salaries表里面的员工号分组,因为不是看每个员工有几条薪资记录。复盘:大佬用的自连接,当前最新的在职员工薪资 — 这个员工入职时的薪资=薪资涨幅。复盘:3个表,先要将两个关于部门的表连接起来,利用。其他方法代码:同时连接3个表,不用子查询。正确代码:感觉这个代码和我逻辑是一样的。

2024-05-28 13:37:34 410

原创 SQL刷题笔记day3——第二大值

解法2思路:having count(distinct s2.salary)=2 保证了子查询只返回s2具有两个不同工资水平的工资,又s1.salary<=s2.salary ,所以返回的s1.salary中就是第二大的salary。因为可能有多个员工的薪水为第二多的薪水,所以最号的方法是先找出第二大的薪水(我这里是用的where嵌套),然后输出这一薪水对应的所有员工号。解法1思路:找出第二大的薪水,思路同题目1,第二大等于(最大值除外的值中的最大值),计算两次max。

2024-05-25 11:30:22 371

原创 SQL刷题笔记day2

复盘:题目马虎了,题目说如果员工本身是经理的话则不显示,即要加一个where dept_emp.emp_no!复盘:问题关键是求得每个部门的最大薪水,并和员工对应,这样才能找到对应部门对应薪水的员工号,可以使用联合条件,同时找出部门号和最大薪水,然后通过表连接找到该部门(该最大薪水)对应的员工号即可。复盘:我的思路是对的,非领导员工,就用not in,但是格式错误,not in后面应该接不含null的数据集,而不是属性名,这里要用select返回。(感冒了头有点痛,明天再来吧,追剧去了 追剧可缓解头痛)

2024-05-24 20:33:44 298

原创 Python-温故知新

shift键+右键——打开powershell窗口——输入jupyter notebook。安装好anaconda后,在需要打开notebook的文件夹中,光标放在函数上——shift键+tab。

2024-05-23 19:00:39 472

原创 SQL刷题笔记day1

复盘:因为按照入职日期排列,都不一定只有一个,所以要用distinct按照hire_date进行去重分组,这样才能保证取到的是倒数第三个日期,而不仅仅是倒数第三个记录。

2024-05-23 18:58:52 626

原创 Tableau-BI仪表盘搭建

2)将第二个饼图的属性值全部去掉,然后大小拉小点,颜色变为白色,然后双轴——环形图就差不多了。然后调整成条形图,降低颜色饱和度和大小,让“曝光人数”成为背景(弱化,突出率的主题)但是这样共用一个坐标轴,如果数据差距很大,可以利用双轴共用。(下一个表就介绍了)答:因为之前进行了日期筛选,并应用到了所有工作表!1)先将配送地点显示,再由自建主键(订单信息)展开。● 没有很好的想法,可以多去社区找灵感。将下单日期时间来区分颜色——改为离散,小时。90天内没有下单——新客,其他——老客。

2024-05-12 22:28:39 921

原创 Tableau学习2.0版——复习

如果你想让你的APP保持增长势头,那么你的新用户次日留存率,7天留存率和30天留存率应该分别维持在40%、20%和10%左右。横纵轴各代表一个【度量】,【维度】中的变量则作为一个点,根据横纵轴上的度量值大小确认位置。下面这个经纬度确定的门店位置,但是颜色表示的距离不对,可能存在多个订单重合的情况。已经成功可视化了看到只是一个点,放大说不定内容就出来了!度量值分为离散和连续的,若设置为离散的,则跟维度属性一样,不能可视化。【维度】代表各扇区的颜色,【度量】代表饼图中各扇区角度的大小。

2024-05-12 17:14:51 917

原创 Excel实用技巧持续学习

环形图不可以,但是可以中间手动加上白色圆形,将饼图变为圆环。想让饼图排序,就先让可视化的数据排序就好了。2、饼图可以统一设置数据标签在图外面!3、饼图和环形图最好进行排序!4、数据透视表中的两种筛选方式。①如城市:右键——添加为切片器。②如战区:将属性直接拖至筛选区。

2024-05-11 15:12:42 361

原创 SQL子查询练习

● 【题目2】查询人口数(population)超过加拿大(Canada)但是少于Argentina的国家,结果显示这些国家名(name)和人口数(population)● 【题目4】查找每个大陆(continent)中最大的国家(按区域area),显示该大洲(continent),国家名(name)和面积(area).注意——between…查询的是:大洲(continent),国家名(name)和面积(area)(1)查询大洲、其国家名(name)和人口(population)

2024-05-10 12:54:44 449

原创 SQL高级语句

【例题29】查询每一年S14000021选区中所有候选人所在的团体(party)和得票数(votes),并对每一年中的所有候选人根据选票数的高低赋予名次,选票数最高则为1,第二名则为2,后续以此类推,最后根据团体(party)和年份(yr)排序。昨天截至时间累计确诊人数、——,lag(confirmed,1)over(partition by name order by whn),当前行往上取1行,再取这一行的confirmed的值,(1)查询国家名,确诊人数,确诊人数排名,死亡人数,死亡人数排名,

2024-05-09 18:02:16 1635 1

原创 继续SQL

● 例如:datediff('2021-06-08','2021-06-01')返回7,datediff('2021-06-08 23:59:59','2021-06-01 21:00:00')返回7,datediff('2021-06-01','2021-06-08')返回-7。● 例如:year('2021-08-03')返回2021,month('2021-08-03')返回8,day('2021-08-03')返回3。

2024-05-09 13:06:06 560

原创 学SQL啦

● 【例题15】查询国家名中含有三个a且面积大于60万(600000)的国家及其面积,或者人口大于13亿(1300000000)且面积大于500万(5000000)的国家及其面积。分析:order by后面加入判断subject in ('physics','chemistry'),如果subject在括号中记为1否则为0,以此将特殊值排在后面。● 【例题24】查询每个大洲(continent)和大洲内的国家(name)数量。● 【例题19】查询人口数第1到第3的国家和人口(结果同上)

2024-05-08 16:27:31 1113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除