工作中,我们经常需要编写 SQL 脚本,对数据库进行增、删、改、查,很少会考虑到 Sql 性能优化 实际上,从性能角度考虑,有很多 Sql 关键字都有它们各自的使用场景;如果使用恰当,能大大地提升后端服务的响应效率...下面以 Mysql 为例,罗列出几个比较实用的小 Tips 2. union、union all、or union [all] 代表联合查询,即:将多个查询结果合并起来成一个结果并返回 PS:union...联合查询针对每一个查询结果,必须保证列数量、列数据类型及查询顺序一致 语法如下: # 以两张表的联合查询为例 # table_one:表一 # table_two:表二 # 表一中的查询字段:table_one_field1...,直接返回表联合后的结果 因此,union all 执行效率要高很多,在不需要去重和排序时,更推荐使用 union all or or 用于 SQL where 子句中,SQL 脚本可读性更高,但是它会引起全表扫描...,根本不走索引查询 所以通常情况下,union [all] 查询会利用索引进行查询,执行效率要高于 or;但是当 or 条件中查询列相同,or 的执行效率要高于 union 3. group by +
FROM users WHERE UPDATE_DATE BETWEEN '2021-08-12 11:22:09' AND '2021-08-15 11:22:33'; Oracle oracle sql...日期比较: 在今天之前: select * from up_date where update < to_date('2021-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss
最近在收集SQL每日一题时,找到这套比较经典的SQL面试题。 我根据题目重新梳理了一遍,包括表结构,表之间的关系,测试数据,题目,参考答案等。其中大部分参考答案在各种数据库平台上通用。...四张表之间的关系如下图: 我们来解读一下上面的关系: 1、课程表Course的课程编号(Cid)作为主键,在成绩表(SC)中可以看到一个或多个学生的课程分数,两表之间是属于1:n的关系。...同理学生表(Student)与成绩表(SC)也是1:n的关系 2、教师表Teacher的教师编号(Tid)作为主键,在课程表(Course)中可以带一门或多门课程,两表之间也是属于1:n的关系。...查询和" 01 "号的同学学习的课程完全相同的其他同学的信息 SELECT * FROM Student WHERE SID in ( SELECT SID FROM SC WHERE CID in...查询各科成绩最高分、最低分和平均分: 以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 --SQL
,同个商品可以在不同的业务机构销售,也就说:业务机构与商品是多对多的关系 假设现在有 n 个机构,每个机构下有几个商品,如何查询出这几个门店下各自商品的销售情况?...SQL 也能走索引 实现简单,也好理解,SQL 也能走索引,而且只查询一次数据库,貌似可行 唯一可惜的是:有点费 OR,如果业务机构比较多,那 SQL 会比较长 作为候选人之一吧,我们接着往下看...所以还需要对查出来的结果集进行一次过滤,过滤出我们想要的结果集 姑且也作为候选人之一吧,我们继续往下看 行行比较 SQL-92 中加入了行与行比较的功能,这样一来,比较谓词 = 、 和 IN 谓词的参数就不再只是标量值了...:有点不好理解,因为我们平时这么用的少,所以这种写法看起来很陌生 另外,行行比较是 SQL 规范,不是某个关系型数据库的规范,也就说关系型数据库都应该支持这种写法 总结 1、最后选择了 行行比较 这种方式来实现了需求...2、某一个需求的实现往往有很多种方式,我们需要结合业务以及各种约束综合考虑,选择最合适的那个 3、行行比较是 SQL-92 中引入的,SQL-92 是 1992 年制定的规范 行行比较不是新特性,而是很早就存在的基础功能
,同个商品可以在不同的业务机构销售,也就说:业务机构与商品是多对多的关系 假设现在有 n 个机构,每个机构下有几个商品,如何查询出这几个门店下各自商品的销售情况?...,貌似可行 唯一可惜的是:有点费 OR,如果业务机构比较多,那 SQL 会比较长 作为候选人之一吧,我们接着往下看 混查过滤 同样是利用 Mybatis 的 动态 SQL ,将 business_id...所以还需要对查出来的结果集进行一次过滤,过滤出我们想要的结果集 姑且也作为候选人之一吧,我们继续往下看 行行比较 SQL-92 中加入了行与行比较的功能,这样一来,比较谓词 = 、 和 IN 谓词的参数就不再只是标量值了...:有点不好理解,因为我们平时这么用的少,所以这种写法看起来很陌生 另外,行行比较是 SQL 规范,不是某个关系型数据库的规范,也就说关系型数据库都应该支持这种写法 总结 1、最后选择了 行行比较 这种方式来实现了需求...2、某一个需求的实现往往有很多种方式,我们需要结合业务以及各种约束综合考虑,选择最合适的那个 3、行行比较是 SQL-92 中引入的,SQL-92 是 1992 年制定的规范 行行比较不是新特性,而是很早就存在的基础功能
需求背景 业务机构下销售商品,同个业务机构可以销售不同的商品,同个商品可以在不同的业务机构销售,也就说:业务机构与商品是多对多的关系 假设现在有 n 个机构,每个机构下有几个商品,如何查询出这几个门店下各自商品的销售情况...实现简单,也好理解,SQL 也能走索引,而且只查询一次数据库,貌似可行 唯一可惜的是:有点费 OR,如果业务机构比较多,那 SQL 会比较长 作为候选人之一吧,我们接着往下看 混查过滤 同样是利用...所以还需要对查出来的结果集进行一次过滤,过滤出我们想要的结果集 姑且也作为候选人之一吧,我们继续往下看 行行比较 SQL-92 中加入了行与行比较的功能,这样一来,比较谓词 = 、 和...实现简单,SQL 也能走索引,而且只查询一次数据库,感觉可行 只是:有点不好理解,因为我们平时这么用的少,所以这种写法看起来很陌生 另外,行行比较是 SQL 规范,不是某个关系型数据库的规范,也就说关系型数据库都应该支持这种写法...2、某一个需求的实现往往有很多种方式,我们需要结合业务以及各种约束综合考虑,选择最合适的那个 3、行行比较是 SQL-92 中引入的,SQL-92 是 1992 年制定的规范 行行比较不是新特性
在PHP中,“强比较”(===)与“弱比较”(==)是两种不同的比较运算符,它们在比较值时的行为和准则有显著差异。理解这两者的区别对于编写高质量和可靠的PHP代码至关重要。...强比较(===) 定义:强比较运算符,即全等比较符,要求比较的两个值不仅值相等,而且类型也必须相同。 优势:提供了严格的类型检查,减少了因类型转换导致的意外行为,提高了代码的可预测性和安全性。...使用场景:在需要精确匹配值和类型时使用,例如安全敏感的场景或者在处理那些可能返回多种类型的值的函数时。 弱比较(==) 定义:弱比较运算符,即等值比较符,仅要求比较的两个值在进行类型转换后相等。...严格性:强比较比弱比较更严格,因此在需要精确控制的场景中更可靠。 灵活性:弱比较比强比较更灵活,能够处理更多样的比较情况,但这也可能带来不预期的结果。...使用 ===:0 === '0' 为 false,因为虽然它们的值相等,但类型不同(一个是数字,一个是字符串)。 结论 在PHP编程中,选择使用强比较或弱比较取决于具体的应用场景。
PHP中的对象比较 在之前的文章中,我们讲过PHP中比较数组的时候发生了什么?。这次,我们来讲讲在对象比较的时候PHP是怎样进行比较的。...首先,我们先根据PHP文档来定义对象比较的方式: 同一个类的实例,比较属性大小,根据顺序,遇到不同的属性值后比较返回,后续的不会再比较 不同类的实例,比较属性值 ===,必须是同一个实例 我们通过一个例子来看下...'TRUE' : 'FALSE', PHP_EOL; // FALSE 这个例子中,我们进行了的对比,在这种对比中,都是根据属性值来进行比对的,而对比的顺序也是属性值的英文排序。...当一个对象的属性比另一个对象多时,这个对象也会比属性少的对象大。 对象的比较其实和数组是有些类似的,但它们又有着些许的不同。...一个重要的方面就是把握住它们都会进行属性比较,另外还有就是===的差别,数组中===必须是所有属性的类型都相同,而对象中则必须是同一个实例,而且对象只要是同一个实例,使用===就不会在乎它属性值的不同了
一、前言 前几天在Python最强王者交流群【FiNε_】问了一个Python自动化办公的问题。问题如下所示:两行数据的位置怎么互换?第一行换到第二行这样这样 。...可以使用下面的代码,如下所示: import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('test.xlsx') # 选择要操作的工作表...sheet = workbook['Sheet1'] # 获取第一行和第二行的数据 first_row = sheet[1] second_row = sheet[2] # 交换两行数据 for...文件 workbook.save('test1.xlsx') 当然上面这个代码还是有局限性的,灵活性不高。...这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
今天碰到一个字典比较的问题,就是比较两个字典的大小,其实这个用的不多,用处也没多少,但是还是记录一下。...字典的比较顺序如下: 1、先比较字典的元素的个数,那个多,就哪个大; 2、比较字典的键,在比较字典的键的时候,需要注意的是比较的顺序是按照keys返回值来进行的比较; 3、比较字典的值,值也是按照items...返回值来进行比较,主要就是按照数字和字母的大小比较; 4、如果以上的比较都相等,那么就都是相等的。...','age':17} #比较的时候,根据keys返回的比较,所以27比17大,而不是比较我们看到的顺序 >>> cmp(dict4,dict5) 1 >>> for i in dict4: ......age name 这也就是一个字典的比较,按照顺序来比较即可。
前言 ---- SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL...语言提高计算机应用系统的工作质量与效率。...身边很多人工作中经常和SQL打交道, 可是每人的编写SQL风格都独树一帜。 刚好在githup上看到一个不错的编码风格, 在这里给大家推荐一下。...https://github.com/mattm/sql-style-guide 介绍 ---- 1、使用小写的SQL 小写SQL比大写SQL易读,而且不必一直按住shift键。...写在同一行中: 查询所有列(*)或者只查询1列或者两列 查询语句没有额外复杂性 -- Good select * from users -- Good select id from users --
第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。 VIA 虚拟接口适配器 (VIA) 协议和 VIA 硬件一同使用。...试图连接到 SQL Server 时,与可能导致管道忙错误的 Named Pipes 相比,该队列可以带来有限的平稳效果。 通常,TCP/IP 在慢速 LAN、WAN 或拨号网络中效果较好。...服务器可以同时监听所有已启用的协议的请求。客户端计算机可以选取一个协议,或按照 SQL Server 配置管理器中列出的顺序尝试这些协议。...它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限。 要解释这个问题,我还是摘录微软官方的资料比较好(见上面“SQL Server中网络协议”) 2. 为什么用命名管道?...要使用命名管道连接到SQL Server,客户端代码中的连接字符串大致的语法是这样的 "server=.
示例2.2 select distinct xing, ming from B 返回如下结果: 返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了...3.COUNT统计 select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 count是不能统计多个字段的...,下面的SQL在SQL Server和Access中都无法运行。...但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论 附W3school的讲解 SQL SELECT DISTINCT 语句 在表中,可能会包含重复值。...如需从 Company” 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句: SELECT DISTINCT Company FROM Orders 结果: Company
最原始的写法就是for循环。...var index = 0; index < arr.length; index++) { console.log(myArray[index]); // 1 2 3 4 5 } 缺点:这种写法比较麻烦...for...in循环主要是为遍历对象而设计的,不适用于遍历数组 for...of for…of是ES6新增的遍历方式,它提供了统一的遍历机制。...for...of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、Generator 对象,以及字符串 优点: 有着同...类似数组的对象包括好几类。
httpd工作模式中的prefork、worker、event优缺点: http服务,需要客户端和服务器端建立连接,httpd有三种工作模式:prefork worker event 优点:在资源够用的情况下服务稳定...http 2.2和2.4的区别 httpd2.2 可以通过修改配置文件来改变当前服务器所试用的模块. http2.4 :两种方式: 静态模块 动态模块 如果把MPM编译成静态模块,那么要改变MPM,只能通过重新编译安装...每个子进程在生命周期内所能服务的最多请求个数 StartServers 4 服务开启时,启动的子进程的个数; MaxClients...中event参数 StartServices 默认进程数 MinSpareThreads 最小空闲进程数 MaxSpareThreads...,当达到设置值以后,APACHE就会结束当前的子进程 总结: 安全和效率中考虑参数设置,并且自己测试,才能得到比较满意的配置
比较什么如果你上培训班或者在学校学习的话,你的老师大概率可能会告诉你对于:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;本来这里就有点复杂了,还非要搞出另外 2 个概念。...比较好记的就是 == 比较的是内存地址,equals 比较的是具体的值。...所以 Java 为 String 搞了一个 String Pool,对于程序中,你这样定义的字符 String s1 = "iSharkFly";这个数据是存储在 String Pool 里面的。...,这个对象在 Heap 内存中。...只需要记住的是 == 比较的是内存地址,在对值进行比较的时候并不可靠。在实际编码过程中,这种比较也比较常见的,所以还是有必要了解下这个。
大家好,又见面了,我是你们的朋友全栈君。 一、分组统计每个班的分数前三名(等同于LeetCode:185....values('12','三年级',60); insert student values('13','三年级',40); insert student values('14','三年级',90); sql...Trips and Users 题目详见:https://leetcode.com/problems/trips-and-users/ sql: SELECT Request_at Day,
DBLINK的定义 当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINK本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。...QAZ1234' Go 执行完后我们会看到在SSMS的服务器对象下面有一个创建好的DBLINK连接,如下图: DBLINK的作用 前面的定义已经说明,通过DBLINK本地数据库可以像访问本地数据库一样访问远程数据库表中的数据...DBLINK示例 以本地Customers表和远程数据库192.168.0.39里SQL_Road数据库下的Orders表为例 Customers表 远程数据库中的Orders表 我们想用本地的Customers...表关联远程数据库192.168.0.39里SQL_Road数据库下的Orders表里的数据,可以这样写SQL: SELECT c.姓名,o.订单日期 FROM Customers c JOIN [192.168.0.38...].SQL_Road.dbo.Orders o ON c.客户ID=o.客户ID 结果如下: 这样我们就将本来隔绝的两个表通过DBLINK关联上了。
14 15 /** 16 * equals:比较两个String对象的值是否相等 17 * 即:比较内容 18 * 结果:true,true 19 *...: (1)equals:比较两个String对象的值是否相等。...(2)= =:比较两个String对象的指向的内存地址是否相等。...String类在java中被大量运用,甚至在class文件中都有其身影,因此将其设计为简单轻便的非可变类是比较合适的。 (1)创建。 ...(3)compareTo:比较两个String对象的值是否相等。
JavaScript在设计时,有两种比较运算符: 第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果; 第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false...由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。...另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己: NaN === NaN; // false 唯一能判断NaN的方法是通过isNaN()函数: isNaN(NaN); // true...最后要注意浮点数的相等比较: 1 / 3 === (1 - 2 / 3); // false 这不是JavaScript的设计缺陷。...要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值: Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true 摘录自:https://www.liaoxuefeng.com
领取专属 10元无门槛券
手把手带您无忧上云