数据库知识

2023-09-16 18:01:35

1、count(1),count(*),count(列名)的区别和联系?

        当表的数据量很大时候,count(1)比count(*) 更加消耗时间,如果count(1)是聚索引那么count(*)会更快一些,因为count(*)会自动优化指定哪一字段。 综上所述,count(1)和count(*)基本没有区别!

        count(1)会统计表中的所有记录数,包含NULL,count会统计该字段在表中的出现次数,忽略了NULL的情况。

        三者区别:count(*)包含了所有的列,相当于所有的行,统计结果不忽略NULL

                          count(1)包含了忽略所有的列,用1表示代码行,统计结果不忽略NULL

                          count会统计该字段出现的次数,统计结果忽略NULL

执行效率上面:如果目标列名是主键count > count(1) = count(*)

                         如果目标列名非主键count(1) = count(*) > count

                         如果表多列都没主键count(1) > count(*) > count(列名)

最佳查找方法是:SELECT COUNT(主键列)

2、DROP、TRUNCATE、DELETE的区别?

DROP用来删除数据库和表格

TEUNCATE用来删除表格里的数据,但是不能回滚

DELEDE用来删除表格里的数据,可以回滚

3、内连接和外连接的区别?

内连接包括等值连接和自然连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行;外连接有左外连接和右外连接,可以由以下关键字指定:LEFT JOIN,RIGHT JOIN,INNER JOIN

4、SQL编码题:
4.1 查询学号1003-1010的学生信息(通过BETWEEN关键字实施)

SELECT *  
FROM student  
WHERE student.StudentNo BETWEEN 1002 AND 1010;

4.2 查询邮箱为空的学员信息.(通过<=>关键字实施)

SELECT * FROM student WHERE student.Email <=> NULL;


4.3 根据学号得到所有学生平均分后,过滤掉80分以下的学生后,对成绩进行降序排列,取前三名

SELECT result.StudentNo ,AVG(result.StudentResult) 
FROM result 
GROUP BY (result.StudentNo) 
HAVING AVG(reesult.StudentResult) >= 80 
ORDER BY (AVG(result.StudentResult)) DESC 
LIMIT 0, 3;

更多推荐

mysql实际调优

一般实际调优的情况就不需要去考虑mysql数据库结构或者命名优化那些。做这些优化是大动作,也不是咱们一般人去接触到的。所以我们针对mysql的调优其实大部分还是针对索引进行优化。我们刚接触这个表的话可以先查询当前表中所有的索引使用SHOWINDEXFROMyourtable;然后了解完索引之后,去测试之前反映时间很长的

全栈式多终端模型部署框架 nndeploy 重磅开源!

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。推理框架现状和痛点现在业界尚不存在各方面都远超其同类产品的推理框架,不同推理引擎在不同平台,硬件和模式下分别具有各自的优势,比如TensorRT有足够多的灵活性,在GPU执行时可

三相电机的烧毁原因以及如何保护

三相电动机,具有一定的过载能力,短时间过载对电动机的影响不大,但是,电动机的电流长时间超过额定电流,就会使电动机严重发热而损坏,如果电动机定子绕组内部发生短路,也会使绕组电流增加而烧毁电机。所以三相电动机需要有的保护装置包括,过载保护,短路保护、缺相保护,漏电保护,过热保护等。EOCR系列电机保护器由施耐德韩国公司生产

【C++】STL之list深度剖析及模拟实现

前言list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前

【数据结构】【项目】BitMap?40亿电话号码如何快速去重?

目录前言实现完整代码参考资料前言40亿电话号码如何快速去重?我们往往会想到bitmap数据结构中的Bitmap是一种位图索引非常高效的数据结构,用于存储处理大规模数据的位信息,其中每个位对应于一个元素,如果位为1,则表示该元素存在于集合中,否则表示不存在。如果要表示一个包含10个元素的数据集,可以创建一个包含10位的位

卡尔曼滤波(Kalman Filter)C#测试

一、操作过程刚学了一下卡尔曼滤波,具体原理还没细看,大致过程如下分为两步,第一步Predict,以下两个公式第二步Correct,以下三个公式公式看起来很复杂,其中是我们要处理的数据,是滤波之后的值,其他一些有些是需要给定的,有些是中间值。从t=1时刻开始,通过第一步,计算得到的值,给到第二步Correct里,第二步的

java入坑之Jsoup(待补充)

一、快速入门1.1配置<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.16.1</version></dependency>1.2解析xmlJsoup:jsoup是一款Java的HTML解析器,可直接解析某

C++宏的用法

​1.命名空间:这样可以把不同功能段的代码进一步封装起来#defineBEGINS(x)namesapcex{#defineENDS(x)}BEGINS(TEST1)voidfunc(){printf("helloworld");}intmain(){func();return0;}ENDS(TEST1)BEGINS(

19.组合模式(Composite)

意图:将对象组成树状结构以表示“部分-整体”的层次结构,使得Client对单个对象和组合对象的使用具有一致性。上下文:在树型结构的问题中,Client必须以不同的方式处理单个对象和组合对象。能否提供一种封装,统一简单元素和复杂元素的概念,让对象容器自己来实现自身的复杂结构,让Client可以像处理简单元素一样来处理复杂

leetcode 332. Reconstruct Itinerary(重构行程)

有一些票tickets,tickets[i]=[from,to],每个出发到达城市名字都是3个大写英文字母,同一个出发城市时,优先去字母顺序较小的到达城市。必须先从“JFK”出发。每个ticket必须用且只用一次,所有ticket一定会形成至少一个有效的行程(出发至到达的一路上遍历所有城市)按顺序记录行程上的城市并返回

应用商店优化之关键词优化指南2

在寻找良好关键词的方法中,分析竞争对手是寻找关键词的最佳且最可靠的方法。查找排名最高的关键词或者是获得最多下载量的关键词,这样就可以准确的瞄准那些带来最大价值的关键词,从而带来更好的优化效果。1、选择正确的关键词。搜索分数用来衡量关键词流行度的分数。该分数是一个从1到100的数字,分数越高,对该关键词进行的搜索就越多。

热文推荐