MySQL中的查询子句
select
确定结果集中应该包含那些列
from
指明所要提取数据的表,以及这些表是如何连接的
where
过滤不需要的数据
group by
用于对具有想用列值的行进行分组
h
查询语句 字句名称使用目的 select 确定结果集中应该包含那些列 from 指明所要提取数据的表,以及这些表是如何连接的 where 过滤不需要的数据 group by 用于对具有想用列值的行进行分组 having 过滤掉不需要的组 order by 按一个或多个列,对最后结果集中的行进行排序 select语句由几个组建或者说子句构成。不过在MySQL中,只有一种子句是必不可少的,那就是select子句。 select子句
在此查询中,from子句只列出了一个表(department),并且select子句只是在结果集中需要包含所有department表中的列(通过 * 号表示)。该查询的含义可以表是如下: 当然也可以选择只获取department表终各列的一个子集,例如:
因此select子句的作用可以概括如下: 我们可以在select子句中加上: 例:
如果只是需要执行一个内建函数或对简单的表达式求值可以完全省略from子句,例如:
将会返回MySQL版本,用户,和当前的数据库名。 列的别名 可以在select子句中的每个元素后面增加列别名来达到自定义标签的目的:
为了在子句中更清晰地表是列名,可以在这些别名前面加上关键字as,例如:
去除重复的行 可以在select关键字之后加上distinct关键字来去除重复的行:
from子句 表 是关联行的集合。包含3种类型: 子查询产生的表 子查询是包含在另一个查询中的查询。 子查询可以出现在select语句中的各个部分并且被包含在圆括号中。 在from子句中,子查询的作用是根据其他查询子句(其中的from子句可以与其他表进行交互)产生临时表。例:
在外围查询中,通过别名(本例中为e)来引用子查询。 视图 视图是存储在数据字典中的查询,它的行为表现得像一个表,但实际上并不拥有任何数据(实际上是一张虚拟表)。 当发出一个对视图的查询时,该查询会被绑定到视图定义上,以产生最终被执行的查询。 例:定义一个查询employee表的视图,其中包含了一个对内奸函数的调用:
当视图被创建后,并没有产生或存储任何数据,服务器只是简单地保留该查询以供将来使用。现在既然该视图已经存在了,就可以对其发出查询请求,例如:
表连接 如果from子句中出现了多个表,那么要求同时包含各表之间的连接条件。例:
定义表别名 有两种在from子句之外引用表的方式: 例:
还可以在别名前面使用as关键字,如:
where子句 where子句用于在结果集中过滤掉不需要的行。 例如,如果需要查询employee表,但是只想获取头衔为head teller的雇员数据,那么就可以在查询的where子句中进行指定:
该子句中只包含了一个过滤条件,但在需要时可以同时包含更多的条件,它们之间使用操作符and、or或者not分割:
如果在where子句中需要同时使用and和or等操作符,可以使用圆括号来进行条件分组:
group by和having子句 group by子句用于根据列值对数据进行分组。 在使用group by子句的同时可能还需要使用having子句mssql 查询子句,它能够以与where子句类似的方式对分组数据进行过滤。 下面的查询首先为每个部门计算其所含的雇员数,然后返回至少包含2个雇员的部门名称:
order by子句 order by子句用于对结果及中的原始列数据或是根据列数据计算的表达式结果进行排序。 例:
业科技结合多列进行排序:
现在结果及中首先根据雇员ID排序,然后根据账户类型排序。 在order by子句中各列出现的顺序决定了对各列进行排序的次序。 1.升序或降序排序 在排序时,可以通过关键字asc和desc指定是升序还是降序。 由于默认情况下是升序排序,因此只需要在想要降序排序时加上desc关键字即可。例:
2.根据表达式排序 可以在order by子句后增加表达式来进行排序:
3.根据数字占位符排序 如果需要根据select子句中的列来排序,那么可以选择使用该列位于select子句中的位置号来替代列名。 例如,加沙需要根据返回的第2列和第5列排序,则可以采用如下方法:
转载于: (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |