SqlServer 多表连接、聚合函数、模糊查询、分组查询应用总结(回归基础)
--exists 结合 if else 以及 where 条件来使用判断是否有数据满足条件
select * from Class where Name like '%[1-3]班'
if (not exists(select * from Class where len(Name)>=5))
select '满足条件'
else
select '不满足条件'
--in not in 用来做范围判断
select * from Student where ClassId in(select Id from Class) and ClassId%2=0
--表连接 使用场景:当你要查询的数据发布在多张表中,且这几张表存在关联关系
--2种表连接
--1.内连接:会去掉用不到的数据
select * from Class
select * from Student
--制作表连接的步骤 1.确定起始表 2.把所有表连接起来,并用on关键字设置引用关系 3.选择需要的列
select * from Class
inner join Student on
Class.Id=Student.ClassId
--2.外连接
--2.1左外连接 2.2右外连接 2.3全连接
--会显示两张表公有的数据,确定会显示左边表的数据,右边表没有的则显示为null
select * from Class left join Student on Class.Id=Student.ClassId
--与左连接相反,确定会显示右边表的数据,左边表没有的则显示为null
select * from Class right join Student on Class.Id=Student.ClassId
--全连接:左外连接+右外连接,除了显示公有的数据,还会把多余的数据显示
select * from Class full join Student on Class.Id=Student.ClassId
--聚合函数:多用于统计数据和分析数据上
--count()条数:通常情况下不要和*搭配使用,要和一个常量数字使用,因为常量的性能较快
--max,min也可以对字符串、时间类型进行操作
select count(*) from Class
select count(Id) from Class
select count(0) from Class --推荐写法
--max()最大值
select max(Id) from Class
--min()最小值
select min(Id) from Class
--sum()求和
select sum(Id)from Class
--avg()平均数
select avg(Id) from Class
--分组查询:结合聚合函数一起使用关键字后面可以使用
--分组查询中 select 关键字可以使用聚合函数或出现在group by字句中的列
--注意:如果你还想要在select 后面显示其他列的值,你可以在group by字句后继续写与分组字段同表的其他查询的字段,记住是同表!!!
select count(0) 数量,Class.Name,Class.Id from Class inner join Student on Class.Id=Student.ClassId
group by Class.Name,Class.Id
having count(0) >=2
--where和having区别:where是对表中所有的数据的筛选,having是对分组统计后的数据进行筛选
SqlServer 多表连接、聚合函数、模糊查询、分组查询应用总结(回归基础)的更多相关文章
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
- MySQL聚合函数与数据分组
我们最常需要的是汇总数据而不是把他们实际检索出来 确定表中行数(或满足某个条件或包含某个特定值的行数) 确定表中行组的和 找出表列(或所有行或特定列)的最大值,最小值和平均值 聚集函数是运行在行组上, ...
- CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏
CASE函数 作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...
- Django 聚合查询 分组查询 F与Q查询
一.聚合查询 需要导入模块:from django.db.models import Max, Min, Sum, Count, Avg 关键语法:aggregate(聚合结果别名 = 聚合函数(参数 ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- (转)python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
- Django基础(5) ----基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询
一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...
- Django 多表查询 聚合查询 分组查询 F查询 Q查询
# -------------------------------------------------------------------------------------------------- ...
- mysql——单表查询——分组查询——示例
一.基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ...
随机推荐
- LintCode笔记 - 8. 旋转字符串
这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来 原题目,各位小伙伴也可以试着做一下 . 旋转字符串 中文English 给定一个字符 ...
- (三)pandas 层次化索引
pandas层次化索引 1. 创建多层行索引 1) 隐式构造 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组 Series也可以创建多层索引 import numpy ...
- 08 Flask源码剖析之flask拓展点
08 Flask源码剖析之flask拓展点 1. 信号(源码) 信号,是在flask框架中为我们预留的钩子,让我们可以进行一些自定义操作. pip3 install blinker 2. 根据flas ...
- 使用位运算、值交换等方式反转java字符串-共四种方法
在本文中,我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法. StringBuilder(str).reverse() char[]循环与值交换 byte循环与值交换 apa ...
- C++ 深搜调错
因为前两天某网站的比赛一个深搜错了,我只得了3等奖,我找不到错误,给别的大佬看他们又嫌恶心.emm……,比赛结束后我自己反思了一下,深搜写错了该怎么办,或者说怎样避免写错. 首先,变量名不要太ex,比 ...
- 为Dark模拟做出的一些微小的贡献
这几周经过liners大佬的指导,发现自己的代码实现能力确实太过于垃圾,所以根据他的指示,我应该去多多练习一下Dark模拟,但是最近刚刚入手Dark模拟的我感到非常的吃力,所以本人今天写博客一篇来讲述 ...
- CUDA中关于C++特性的限制
CUDA中关于C++特性的限制 CUDA官方文档中对C++语言的支持和限制,懒得每次看英文文档,自己尝试翻译一下(没有放lambda表达式的相关内容,太过于复杂,我选择不用).官方文档https:// ...
- layui 魔改:上传时的真实进度条
这个问题本身不复杂,难点在于需要改 layui 的源码. HTML略. 网页的JS域: layui.use(['upload','element','layer'], function(){ var ...
- Lucas定理 & Catalan Number & 中国剩余定理(CRT)
又双叒叕来水数论了 今天来学习\(Lucas \:\ \& \:\ Catalan Number\) 两者有着密切的联系(当然还有CRT),所以放在一起学习一下 \(Lucas\) 定义\(\ ...
- java消除整型数组中重复的元素,排序后输出新数组
法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...