mysql 查询 条件过滤机制是怎样的
发布网友
发布时间:2022-04-28 15:00
我来回答
共1个回答
热心网友
时间:2022-04-09 22:14
这是一个大题目,这里只能简单讲解一下。SQL查询的筛选就是实现从一个或多个父记录行集合里筛选出所需要的子记录行集合。
数据库引擎具体的筛选机制是相当复杂的,除非您要成为一个数据库管理系统的开发工程师,一般人没有必要去了解它。当我们需要筛选记录时将筛选逻辑的表述语句提交给数据库引擎去执行就可以了,只要描述这些筛选逻辑语句的语法正确,那么数据库引擎就会忠实地执行并返回相关的结果。
SQL语言里有多种主要方式来筛选记录。
其一是利用where子句设置筛选准则,这是最常用和最重要的筛选方式。我们知道数据库表实际上是二维表,其横向坐标是字段(属性),纵向坐标比较特别,不像电子表格excel它没有固定的行号,纵向定位必须依赖各个字段的字段值(属性值)。因此筛选准则实际就是规定字段值(或者基于字段值的计算表达式)满足(或不满足)某个或多个条件,既可以是精确满足的(使用=号)也可以模糊满足的(使用like运算符)。筛选可以针对单字段也可以针对多字段,我们可以通过逻辑与、逻辑或连接多个筛选条件。
其二是利用表间连接来方式来筛选记录,包括左连接、右连接、对等连接、自连接等,这种连接方法主要是用于筛选出两个记录集之间的交集或非交集。
其三是利用子查询筛选记录,包括[ANY | ALL | SOME]子查询、in子查询、exists子查询等等,其作用跟第二种类似。
当然还有Group、分组里的having子句、distinct关键字、limit等关键字、正则表达式等等方式都可以用于筛选记录,内容相当丰富,筛选可以通过一种或多种方式组合实施,以满足千变万化的筛选需求。