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

Oracle-第一章-多表查询和其他

4多表关联查询

4.1表的别名

①在多表关联查询时,如果多个表之间存在同名的列,则必须用表名限定列的引用如dept.deptno,emp.deptno
②为使语句简洁,使用表别名,表别名在from子句中定义如 emp e
③表别名一经定义,在整个查询语句中就只能用表别名,而不能用表名 emp.ename × e.ename √
④表别名只在所定义的查询语句中有效

4.2内连接(直连-只显示关联到的结果,会遗失部分数据)

####
select d.dormno, s.name
from dorm d
[inner]join student s--默认是inner内查询,不用写
on d.id=s.dormid;
--用相同的ID来进行表之间连接####
select b.buildname,d.dormno,s.namefrom building bjoin dorm don b.id = d.buildidjoin student son d.id = s.dormid;
--三个及以上连接####
select d.dormno, s.namefrom dorm djoin student son d.id = s.dormidwhere s.gender = ;--条件语句放在后面####
内连接的另一种写法(了解即可,千万别用)
select e.ename,d.dname,e.salfrom emp e,dept d--省去了join on 语句where sal>=3000;--忘记写where子句会导致笛卡尔积任意关联,会导致非常严重的数据库崩溃--笛卡尔积:两个表做任意关联,无关联条件,导致数据暴增

4.3外连接(可以返回不相关的数据行,不必须有条件语句)

(1)左连接(以左边的为主表,显示所有行的结果,以右边的为从表,只显示关联的结果)

select e.ename,d.dname,e.comm
from dept d
left join emp e
on e.deptno=d.deptno;--此处应该在建表时用id而不用no####
select s.name,d.dormno 
from student s, dorm d 
where s.dormid=d.id(+);
--左连接另种写法,仅作了解,千万别用,会造成笛卡尔积数据库崩溃或数据丢失
####
▲如果左连接的从表添加where条件,则左连接失效
例:查询所有人的姓名,如果其他宿舍在2楼,显示宿舍号
select s.name,d.dormno
from student s
left join dorm d
on d.id=s.dormid
where d.floor=2;--此处where应改为and,把选择条件变成关联条件

(2)右连接

right用法和左连接一样

(3)全连接(特殊情况才用,一般不用,显示左右全部数据,如果关联则在同一行)

full同上

4.4自然连接(几乎不用)

自然连接指在检索多个表时
oracle会将个表中的列和第二个表中具有相同名称的列进行自动连接
语法: natural join
select empno,ename,job,dname
from emp 
natural join dept
where sal>2000;
--由于自然连接要求表之间必须有相同名称的列,这样容易在出现不可预知的错,故几乎不用

4.5自连接(一表两用)

####
select em2.ename 上层管理者,em1.ename 下属员工
from emp em1
join emp em2
on em1.mgr=em2.empno--关键在于找到对应关系
order by em1.mgr;####
如果左连接后使用自连接,则自连接会失效
例:
select d.dormno,s.name,s1.name
from student s
left join dorm d
on d.id=s.dormid
left join student s1
on d.headno=s1.stuno;
--仅作语法示例

4.6交叉连接(几乎不用,会造成笛卡尔积)

语法: cross join
select count(*) --计算查询结果的行数
from dept
cross join emp;
--执行结果是一个笛卡尔积等同于select count(*)
from dept,emp;
--执行结果是一个笛卡尔积

5子查询

又称嵌套查询在执行数据操作时
某个操作要依赖另一个select语句的查询结果
可以select语句嵌入该语句中注意:
①子查询子句必须用括号括起来
②子查询不能包括order by
③子查询允许多层(不超过255行)嵌套
④子查询比多表关联查询更灵活、功能更强大、更容易理解,但效率更低

5.1单行子查询

指子查询语句的返回结果只有一行
当在where子句中引用单行子查询时可以用单行比较运算符(= > < >= <= <>)①关联子查询在select语句(查询结果中)
select s.name,s.gender,s.groupno,(select avg(t.age)from student t)--此处的平均年龄只作为常量,不是聚合函数
from student s;
--查询每个人的姓名、年龄和班级平均年龄②关联子查询在条件语句中
select empno, ename, sal--外查询from empwhere sal > (select min(sal) from emp)--括号内是内查询and sal < (select max(sal) from emp);
--查询emp表中不是高或低工资的员工编号、姓名、工资

5.2多行子查询

指子查询语句的返回结果不止一行
当在where子句中引用多行子查询时必须用多行比较符(in any all)

(1.1)in运算符

在多行子查询中使用in运算符时
外查询会尝试与子查询结果中任何一个结果进行匹配
只要有一个匹配成功则外查询会返回当前的检索记录
select empno,ename,job
from emp
where deptno in
(select deptno from dept where dname<>'SALES');
--查询emp表中不是销售部门的员工信息

(1.2)exists运算符

exists存在(前面可以加not)--查询有预备党员的小组
select s.groupnofrom student swhere s.groupno in select t.groupnofrom student twhere t.political = '预备党员');
select distinct s.groupnofrom student swhere exists (select t.groupnofrom student twhere t.political = '预备党员'and s.groupno = t.groupno);
--查询没有预备党员的小组
select distinct s.groupnofrom student swhere not exists (select t.groupnofrom student twhere t.political = '预备党员'and s.groupno = t.groupno);工作中常用 exists代替 in(速度更快)in关联子查询先子查询全部再主查询(速度慢,但容易想)exists:关联子查询先主查询一条一条查询再子查询(子查询不需要查询全部,速度更快)
①将原 SQL中 in改为 exists
②在子查询中添加条件(原子查询的结果=原主查询中 in的前面一致)

(2)any运算符

any运算符必须与单行操作符结合使用
并且返回行只要匹配子查询的任何一个结果即可
select deptno,ename,sal
from emp
where 
sal>any (select sal from emp where deptno=30)
and deptno<>30;--and与sal语句是并列的
--查询emp表中工资大于30号部门的任意一个员工工资的其他部门的员工信息
--实质上查询emp表中工资大于30号部门的低的一个员工工资的其他部门的员工信息

(3)all运算符

all运算符必须与单行操作符结合使用
并且返回行必须匹配子查询的所有结果
select deptno,ename,sal
from emp
where 
sal>all (select sal from emp where deptno=30);
----查询emp表中工资大于30号部门的所有员工工资的其他部门的员工信息
--与any相比较

5.3多列子查询

select *
from student s 
where (s.age,s.gender)=(select t.age,t.gender from student t where name='张简简');
--查询年龄和性别都和张简简相同的人
--注意s.age,s.gender和t.age,t.gender前后顺序要一致

5.4关联子查询

在单行或多行子查询中内查询和外查询是分开执行的
外查询仅仅使用内查询的终结果在一些特殊需求的子查询中内查询和外查询相互关联
被称为关联子查询①关联子查询在select语句(查询结果中)
select s.name,s.gender,s.groupno,(select avg(t.age)from student t where t.groupno=s.groupno)
from student s;
--使用了两个表别名
--不需要使用分组函数
--例 select avg(t.age) from student t where t.groupno*=1即可查询1组的平均年龄②关联子查询在条件语句中
select s.name,s.age
from student s
where s.age>(select avg(t.age) from student t where t.groupno=s.groupno);
--查询比小组平均年龄大的人

5.5子查询难点用法

--查询A型血人数比B型血人数多的宿舍
select ssaxx.dormno
from (select d.dormno,count(1) ssaxxrs from student s join dorm d on s.dormid=d.id where s.xo='A' group by d.dormno) ssaxx--把A血型的寝室和人数看作一个表
join (select d.dormno,count(1) ssbxxrs from student s join dorm d on s.dormid=d.id where s.xo='B' group by d.dormno) ssbxx--把B血型的寝室和人数看作一个表
on ssaxx.dormno=ssbxx.dormno
where ssaxx.ssaxxrs>ssbxx.ssbxxrs;
--当问题不清晰的时候拆解成多个表来解决问题即可

6 开窗函数

也称分析函数窗,就是范围在over子句所限定的范围内进行查询,速度优于子查询。

6.1 partition by

select s.name,s.groupno,s.age,max(s.age) over(partition by s.groupno) age1
from student s;
--查询所有同学姓名、组号、年龄和其最大年龄
--partition by 类似于 group by具有分组的作用
--【max(s.age) over(partition by s.groupno) age1】是一个整体使用多个聚合函数时每个要单独加over语句
--由于受开窗范围的影响别名(此处为age1)要放在 order by后

6.2 order by

select s.name,s.groupno,s.age,max(s.age)over(partition by s.groupno order by s.age)
from student s;
--查询所有同学姓名、组号年龄和窗口内大年龄
--order by不仅仅具有排序的作用只有 order by 没有 partition by 则仅有排序功能 会使窗口发生变化窗口变化为从 partition by选定的窗口的行数据开始到与被查询主体 order by后的列名(此处为s.age)相同值的所有数据行为止(不明白就运行代码试试)

6.3 排序类开窗函数 row_number()、 rank()、dense_rank() 

在窗口范围内对 order by 后指定的数据进行排序select s.name,s.groupno,s.age,row_number() over(partition by s.groupno order by s.age)
from student s;
--相同年龄也分先后顺序如:排序 1  2  3  4  5年龄 18 19 19 19 20
select s.name,s.groupno,s.age,rank() over(partition by s.groupno order by s.age)
from student s;
--并列第二然后第五如:排序 1  2  2  2  5年龄 18 19 19 19 20
select s.name,s.groupno,s.age,dense_rank() over(partition by s.groupno order by s.age)
from student s;
--并列第二然后第三如:排序 1  2  2  2  3年龄 18 19 19 19 20

6.4 偏移类开窗函数 lag() lead()

select s.name,s.groupno,s.age,lag(s.age) over(partition by s.groupno order by s.age)
from student s;
--lad(参数1,参数2,参数3)参数1(列名)所处位置的数据往上偏移参数2个位置如果偏移后数据为空则用参数3的数据填充
--lead(参数1,参数2,参数3)往下偏移

6.5 了解部分

(1)first_value() last_value()

--不可和聚合函数同用
select s.name,s.groupno,s.age,first_value(s.age) over(partition by s.groupno order by s.age),last_value(s.name) over(partition by s.groupno order by s.age)
from student s;    
--注意要写逗号
--first_value(col_name)返回该窗口中某列的个值
--last_value(col_name)返回该窗口中某列的后一个值

(2)影响开窗范围的参数(range between 参数1 and 参数2)(可以有聚合函数,必须有order by)

range between 参数1 and 参数2
在原来的窗口范围内再进行选定select q.realname,q.groupno,q.age,max(q.age) over(partition by q.groupno order by q.agerange between 参数1 and 参数2) 
from qqinfo q;参数可以替换为以下:
unbounded preceding 组内首行
current row 当前行
unbounded following 组内末行
1 preceding 组内当前行前面1行
1 following 组内当前行后面1行
range 值比较--不了解
rows 行比较--不了解

7 其他

7.1 查询中的集合操作

两个集合间 交 并 差
(1)并 union (自带去重效果)(去重必带排序)(oracle中去重和排序都非常慢)union all (不去除重复内容)(执行速度更快)
例:select s.name from student sunionselect e.name from emp e
此外要注意多列同时运算的情况:对应列如s.age和e.age的属性和类型要一致select s.name,s.age from student sunionselect e.name,e.age from emp e
(2)交( intersect )
(3)差 ( minus )

7.2 case when

查询结果根据类别不同,查询方式随之不同
select s.name,--逗号不能少case--开始when s.gender=1 then '男生'when s.gender= then '女生'--也可以只有一个 when then语句 else '其他'end--结束
from student s;需要注意的是 case when 是顺序执行的
如果前面的条件包含了后面的条件
则后面的条件
如:select s.name,casewhen s.score>60 then '及格'when s.score>80 then ''else '不及格'endfrom student s;--则60分以上的都是及格,即使是100也是及格而不是当 case when 中的条件是确定值(即用等号=)时可等价于decode如:select s.name,--逗号不能少decode(s.gendere,1,'男生',,'女生','其他')from student s;

7.3 行列相互转换

(1)行转列【常面】

将同一列内容分成多列
① group by
② case when
③ 聚合函数例(查询班内全部人数,男生数量,女生数量):select count(1),count(case when s.gender=1 then '是' end) nans,count(case when s.gender= then '是' end) nvsfrom student s;
例(查询各组全部人数,男生数量,女生数量):select s.groupno,count(1),count(case when s.gender=1 then '是' end) nans,count(case when s.gender= then '是' end) nvsfrom student sgroup by s.groupno;

(2)列转行【常面】

将不同列的内容汇总到同一列
用 union[all](并-操作)select name,'男' gender from stul where nans=1
union
select name,'女' from stu1 where nvs=1;

相关文章:

Oracle-第一章-多表查询和其他

4多表关联查询 4.1表的别名 ①在多表关联查询时&#xff0c;如果多个表之间存在同名的列&#xff0c;则必须用表名限定列的引用如dept.deptno,emp.deptno ②为使语句简洁&#xff0c;使用表别名&#xff0c;表别名在from子句中定义如 emp e ③表别名一经定义&#xff0c;在整…...

Office Visio 2016安装

哈喽&#xff0c;大家好。今天一起学习的是Visio 2016的安装&#xff0c;这是一个绘制流程图的软件&#xff0c;用有效的绘图表达信息&#xff0c;比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件&#xff0c;便于IT和商务人员就复杂…...

GPT从入门到精通之 GPT 模型入门及原理介绍

GPT 模型入门及原理介绍 如果你关心人工智能&#xff0c;并关注最新的自然语言处理技术&#xff0c;那么你可能听说过 GPT 模型。GPT&#xff08;Generative Pre-trained Transformer&#xff09;是 OpenAI [1] 研究团队开发的一种基于 Transformer 架构的模型&#xff0c;能够…...

USB数据线上的“疙瘩”

在不少键盘、鼠标或是游戏外设的数据线末端我们都能见到一小段金属圆环。虽然这算得上是习以为常的一个设计&#xff0c;但如果说到其具体作用的话很多人一下子还真回答不上来。反正笔者在这里先可以告诉大家&#xff0c;这货肯定不是简简单单的配重块或是装饰品&#xff0c;要…...

公司新来了个00后测开,上来一顿操作给我秀麻了.....

开年公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍!给公司…...

深度学习架构-Tensorflow

深度学习基本概念 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的目的 就是让计算机能够像人一样思考。 强人工智能&#xff1a;就是要使机器学习人的理解、学习和执行任务的能力。 弱人工智能&#xff1a;指用…...

SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)

一、实例操作 ①、引入依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.4.Final</version></dependency> ②、创建实体类 package com.springboot.entity;im…...

字节测开岗面试记:二面被血虐,幸好还是拿到了Offer.....

在互联网做了几年之后&#xff0c;去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好&#xff0c;更重要的是&#xff0c;它是对你专业能力的背书&#xff0c;大厂工作背景多少会给你的简历增加几分竞争力。 但说实话&#xff0c;想进大厂还真没那么容易。最近面试字…...

只会标准答案,是不可救药的愚蠢

听说今天高考&#xff0c;谨以此文作为高考寄语。 前段时间网上看到一个金句&#xff0c;非常值得分享&#xff0c;“最难沟通的&#xff0c;不是那些头脑空空的人&#xff0c;而是满脑子只有标准答案的人”。 前两天直播我放了一首何勇的老歌&#xff0c;当时年轻的时候&#…...

RocketMQ broker启动失败

版本&#xff1a;4.9.3 现象&#xff1a;NameServer启动没问题&#xff0c;Broker无法启动。 查看日志&#xff0c;没有broker方面的报错&#xff0c;应该是整个服务都没起来。 于是开始网上搜索解决方案&#xff1a; 方案1&#xff1a; 删除store文件夹。 删除之后问题依…...

浅谈useMemo函数

什么是 useMemo&#xff1f; useMemo 是 React 中的一个 Hook&#xff0c;它可以用来缓存计算结果&#xff0c;并在后续的渲染中重复利用这些计算结果。useMemo 接收两个参数&#xff1a;一个函数和一个依赖数组。当依赖数组中的任何一个值发生变化时&#xff0c;useMemo 会重…...

【Python】Python系列教程-- Python3 推导式(十九)

文章目录 前言列表推导式字典推导式集合推导式元组推导式&#xff08;生成器表达式&#xff09; 前言 往期回顾&#xff1a; Python系列教程–Python3介绍&#xff08;一&#xff09;Python系列教程–Python3 环境搭建&#xff08;二&#xff09;Python系列教程–Python3 VSc…...

docker对cpu资源做限制

系列文章目录 文章目录 系列文章目录一、cgroup1.groups四大功能2.CPU 资源控制 二、1.限制可用的 swap 大小&#xff0c; --memory-swap2.对磁盘IO配额控制&#xff08;blkio&#xff09;的限制 总结 一、cgroup 1.groups四大功能 资源限制&#xff1a;可以对任务使用的资源…...

国际化语言项目

基本概念 1、使用QString对象表示所有用户可见的文本。由于QString内部使用Unicode编码实现&#xff0c;所以它可以用 于表示所有需要向用户呈现的文本。当然&#xff0c;对于仅程序员可见的文本并不需要都变为QString对象&#xff0c;可利 用Qt提供的QCString或原始的“char …...

交直流系统潮流计算及相互关联特性分析(Matlab代码实现)

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

如何快速掌握Facebook运营+独立站运营基础?

在当今数字化时代&#xff0c;Facebook运营和独立站运营成为许多企业和个人创业者的关键战略。通过巧妙地结合这两个渠道&#xff0c;你可以有效地推广品牌、吸引目标受众并实现商业目标。本文将为你介绍如何快速掌握Facebook运营和独立站运营的基础知识&#xff0c;为你的业务…...

Java之旅(十三)

Java 类 Java类是Java编程语言中的基本构建块&#xff0c;是一种用户定义的数据类型&#xff0c;它可以被看作是一个模板或蓝图。它是对象的模板&#xff0c;&#xff0c;描述了一组具有相同特征&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;的对象。Java …...

Calibre 6.18.1 正式发布,功能强大的开源电子书工具

导读Calibre 开源项目是 Calibre 官方出的电子书管理工具。它可以查看&#xff0c;转换&#xff0c;编辑和分类所有主流格式的电子书。Calibre 是个跨平台软件&#xff0c;可以在 Linux、Windows 和 macOS 上运行。 Calibre 6.18.1 正式发布&#xff0c;此次更新内容如下&#…...

如何在C语言中定义和使用函数?

如何在C语言中定义和使用函数&#xff1f; 引言&#xff1a; 函数是C语言中的一个重要概念&#xff0c;它使程序能够模块化、重用和组织代码。通过将一段逻辑相关的代码封装到函数中&#xff0c;我们可以提高代码的可读性、可维护性和重用性。本文将详细介绍在C语言中定义和使…...

【C++】4.多媒体库:SFML库入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍SFML库使用。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习知识&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#…...

【算法题】1717. 删除子字符串的最大得分

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面…...

Codeforces Round 877 (Div. 2) ABCD

A. Blackboard List solve: 1、生成的数一定不是负数&#xff0c;所以有负数的情况下&#xff0c;负数一定是原来的数。 2、没有负数的情况下&#xff0c;最大的数一定是原来的数&#xff0c;因为操作只能使数变小。 void solve() {cin>>n;for(int i0;i<n;i)cin>&…...

easyExcel导入失败提示用户第几行有误并回滚数据

思路&#xff1a; 在controller定义一个map&#xff0c;将map传入excel监听器&#xff0c;在监听器中处理excel的数据&#xff0c;读取到某一行出现错误就将错误提示信息存入map并抛出一个异常给service。在service方法上开启事务&#xff0c;并将异常出实现数据回滚&#xff0…...

问道价值互联网,区块链的下一个十年 | 2023 开放原子全球开源峰会区块链分论坛即将启幕

随着全球 Web3 浪潮经由数字藏品、元宇宙的日渐普及而实现落地&#xff0c;区块链在“信息互联网”转向“价值互联网”中的重要作用正得到进一步认可。在数字经济蓬勃发展、数据成为重要生产要素的时代&#xff0c;区块链已不仅仅是一项技术、一种工具&#xff0c;更是一种思维…...

解读 Nginx 配置

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; 文章目录 1、Nginx 配…...

知识变现海哥:课程定价容易出现的三大误区

哈喽&#xff0c;大家好&#xff0c;我是海哥&#xff0c;知识付费变现创业教练&#xff0c;教育公司培训总监&#xff0c;从事知识付费变现咨询10年&#xff0c;已助力3000人实现知识付费变现。 很多做知识付费的老师都有定价方面的困惑。怕定太高&#xff0c;卖不出去&#…...

Android开发 LogDog (日志狗)V2.0.0

目录 一、简介 二、使用推荐 1、初始化LogDog 2、运行中如何更改初始化时的配置&#xff1f; 三、更改 四、新功能 1、Log过滤 2、自定义打印 3、提供占位符式打印 一、简介 LogDog V1.0 版本https://blog.csdn.net/Ym_quiet/article/details/130453232?spm1001.2014…...

JavaScript break

在JavaScript中&#xff0c;break语句用于提前退出或终止循环或switch语句。它允许您立即停止循环或switch的执行&#xff0c;并继续执行后面的代码。 以下是在循环中使用break的示例&#xff1a; javascript for (var i 0; i < 10; i) { if (i 5) { break; // 当…...

linux服务器使用curl命令处理常用es查询

目录 场景&#xff1a; 结果格式化显示&#xff1a; 验证服务启动&#xff1a; 单个参数变量查询&#xff1a; 分页查询&#xff1a; 日期范围查询: must中单个参数条件查询 must中多个参数条件查询 使用filter过滤查询 使用sort过滤查询 总结&#xff1a; 场景&#xf…...

Office Visio 2013安装

哈喽&#xff0c;大家好。今天一起学习的是Visio 2013的安装&#xff0c;这是一个绘制流程图的软件&#xff0c;用有效的绘图表达信息&#xff0c;比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件&#xff0c;便于IT和商务人员就复杂…...

用电脑做网站/app推广拉新工作可靠吗

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 1. 为什么要有工厂模式? "Talk is cheap,show me the code". 想要找到这个问题的答案&#xff0…...

重庆网红打卡点有哪些地方/seo网址超级外链工具

lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了&#xff0c;下面我来总结一下lftp文件上传&#xff0c;文件下载&#xff0c;及文件查找等等相关命令吧。 lftp连接的几种方法&#xff0c;最常用的是lftp namesite&#xff0c;这样可以不用明文输入密码。 1、lf…...

建立网站的技术路径/免费网站外链推广

for循环&#xff1a;语法 for循环的好基友是数组 for&#xff08;初始值&#xff08;var a 1&#xff09;&#xff1b;循环条件&#xff08;a<10&#xff09;;改变条件&#xff08;a&#xff09;&#xff09; { 写在内面表示一起循环 }外面只一次 初始值定义变量可以定义多个…...

响应式网站用什么软件做效果/广州百度竞价开户

最近有一些烦&#xff0c;虚拟机跑代码&#xff0c;跑着跑着存储不够&#xff0c;我就去扩大磁盘&#xff0c;结果虚拟机崩了&#xff0c;试了一上午的修复办法&#xff0c;仍然无法修复&#xff0c;于是只能重装虚拟机&#xff0c;配置各种环境&#xff0c;这里总结一下Ubuntu…...

人是用什么做的视频网站/吉林网络seo

由于页面设计需要&#xff0c;页面展示图片&#xff0c;并可点击下载按钮进行下载&#xff08;需要前端打包多个图片&#xff0c;所以需要使用ajax请求图片获得二进制内容&#xff0c;不能直接使用img或a进行下载&#xff09;&#xff0c;如图&#xff1a;问题现象图片存储再阿…...

网站建设价格评审资料清单/深圳seo推广培训

线程中一个比较大的问题,就是任务一般是死循环. 而且如果强行终止线程,往往会带来内存泄漏的问题. 这方面最好的办法,就是设置一个值作为标志. 如果这个标志发生了变化,就break. 最好的方式是用事件的方式,而不是用sleep()轮询的方式. 因为sleep是有不可避免的时间差的. 下面看…...