SQL--数据的过滤和分组
过滤数据
Distinct 直接跟在select后面,后面跟一个或多个字段,从结果集中删除列中的重复值。达到一个列或多个列的去重复作用。将所有null值视为相同的值
语法:
Select distinct 字段 from 表名
注:null的查询方法比较特殊 为空is null 不为空is not null
Where指定搜索条件以过滤from返回的行。仅返回导致搜索条件计算为true的行。
And查询满足两个条件的行,用于组合两个布尔表达式。要两个条件同时为真才能返回数据
(>,=<)比较运算符
Or查找满足任意一个条件的行
当and和or一起连用的时候对数据的筛选是有影响的,and的优先级比or的大。所以先查询and再查询or
例:select * from sc
where cno='c001' or
cno='c002' and score >80
;
Between查询两个值之间的值的行,主要用于做两个数字之间的查询也可以用于两个日期之间的查询。
语法:字段 between 数值 and 数值
例:select * from student
where sage between 21 and 22
;
可以使用大于或等于且小于或等于来替换between运算符
语法:字段 <= 数值 and 字段 >=数值
例:select * from student
where sage <=22 and sage >= 21
;
in查找值列表中具有值的行,可以把多个on连在一起的条件简化成in
语法:column IN (v1, v2, v3)
column = v1 OR column = v2 OR column = v3
注:v1、v2指的是一些具体的值。数字类型不需要写单引号,字符串类型就要写单引号
例:select * from student
where sage in (21,22)
;
like查找包指定含字符串的行(模糊查询)
注:英文字母在数据库中不区分大小写
通配符
%:表示0个或多个字符的字符串
下划线:表示任意单个字符
[ ]:表示指定集合中的任意单个字符串
[ - ]:表示指定范围内的单个字符
[^]:表示不再列表或范围内的任何单个字符
like模糊查询默认是不区分大小写的
例:select * from student
where sname like '陈%'
;
列和表的别名
用于为表或表中的列提供临时名称,只在运行时生效,简化SQL的可读性
语法:
表::Select 列名 from 表名 AS 别名
列:Select 列名 AS 别名 from 表名
注:AS关键字可以省略
分组数据
Group by 根据by指定的规则对数据进行分组,分组就是将一个“数据集”划分成若干个“小区域”进行数据处理
Count()是一个聚合函数。计数,记某一个组有多少行数据。
Count(*)表示对整个表进行计数,每一行做了一个分组
例:select ssex, count(*)
from student
group by ssex;
聚合函数:sum()、AVG()、min()、max()。
字段要放在聚合函数中或group by中,group by后面的字段可以比上面的字段多
上面的字段不会影响总行数,只会影响显示出来的列有哪些字段
Having通常与group by一起使用,跟在group by的后面
无名列:就是没有命名的列,最好给它命名,因为它有可能在查询中报错。如果在子查询中做了一些聚合函数,那么你在用这些列的时候就会报错。
过滤列不能用上面列的命名代替
结果时分组之后的运算,分组之后把计算出来的列赋予了它一个名称,但是分组和过滤要先运行
例:select sno,sum(score)总成绩 from sc
group by sno
having sum(score)>150
;
SQL--数据的过滤和分组相关推荐
- 【SQL语法基础】数据过滤:SQL数据过滤都有哪些方法?
我在上篇文章中讲到过,提升查询效率的一个很重要的方式,就是约束返回结果的数量,还有一个很有效的方式,就是指定筛选条件,进行过滤.过滤可以筛选符合条件的结果,并进行返回,减少不必要的数据行. 那么在今天 ...
- 数据过滤:SQL数据过滤都有哪些方法?
我在上篇文章中讲到过,提升查询效率的一个很重要的方式,就是约束返回结果的数量,还有一个很有效的方式,就是指定筛选条件,进行过滤.过滤可以筛选符合条件的结果,并进行返回,减少不必要的数据行. 那么在今天 ...
- sql 基础语法 创建数据库和数据表 数据增删改查 分组查询 子查询回顾
参考链接: SQL教程 MySQL教程 一.创建数据库语法 --用master数据库 use master --判断数据库是否存在,若存在则删除 if exists (select * from sy ...
- 【4 - 分组】Sql Server - 郝斌(分组group by、过滤having、聚合函数max() / count()、排序order by、select语句的执行顺序)
课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili 目录 group by(分组) group by a,b 的用法 having( ...
- SQL数据分组:GROUD BY与HAVING
SQL数据分组 GROUP BY 语句 HAVING 子句 GROUP BY 语句 GROUP BY 语句用于结合合计函数(比如 SUM),根据一个或多个列对结果集进行分组. SQL GROUP BY ...
- mysql怎么排序检索_MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)...
.空格被忽略,可以用一或多个空格分开指令. 检索单个列: SELECT 列名 FROM 表名: 检索多个列: 当心逗号 SELECT 列1,列2,列3 FROM 表: 检索所有列:(*)通配符 S ...
- SQL的基础学习:二、数据的过滤
数据的过滤 过滤数据 1.普通过滤 1.使用where子句 2.where子句操作符 2.高级过滤 组合WHERE 子句(AND.OR.IN.NOT) 3.用通配符进行过滤-LIKE的使用 总结 过滤 ...
- sql数据黑马程序员——SQL入门
最近研究sql数据,稍微总结一下,以后继续补充: ---------------------- ASP.Net+Android+IO开辟S..Net培训.等待与您交流! --------------- ...
- 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接
[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲>数据库编程1 Oracle 过滤 函数 分组 外连接 自连接本文实验基于的数据表:winso ...
- MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
最新文章
- 7-2 然后是几点 (C语言)
- phpstudy下的mysql升级
- js实现数独算法(优化版本)
- 没错,接单就是特简单!
- Pytorch教程(十六):FashionMNIST数据集DataSet DataLoader
- 动态规划训练8 [E - Multiplication Puzzle POJ1651]
- python输错了怎么办_python怎么实现输错三次密码之后锁定
- 关于JAVA匿名内部类,回调,事件模式的一点讨论
- 数据库中union和union all的区别
- 推荐一个CodeProject上的SlideForm控件
- javascript之事件模型
- 高通平台如何新增加一个分区,并mount到android系统中
- 解决安装Discuz!插件时提示“对不起,您安装的不是正版应用,安装程序无法继续执行”的方法...
- Atitit 查找轮廓 findContours
- 【python】80行代码实现压缩包密码破解软件,支持zip和rar
- matlab 龙格库塔函数,matlab龙格库塔
- Eclipse 绿豆沙
- 使用chrome添加网页到桌面
- websocket+php+layIm实现 单聊、群聊功能 即时通讯【可发送图片文件】
- python可执行文件的扩展名_可执行文件的扩展名是什么
热门文章
- web开发报错:The origin server did not find a current representation for the target…
- 基于CNN的手写数字识别
- 注意力机制Attention Mechanism及论文
- 论文阅读_图注意力网络
- python求满足条件的值的个数_Python list中选择满足某种条件的数据操作
- 基于JSP的大学生健康管理系统
- html div flex,利用css flex实现垂直居中
- $().click()和$().on(‘click‘,function(){})的区别
- 5W无线充非认证版便宜实用无线充电器常用方案
- 计算机英语写一封邮件给汤姆作文,英语仿写一封信 介绍自己