MySQL进阶,第1张

MySQL进阶,第2张

Not:拒绝任何逻辑表达式,或者关键字,比如like,null,between等。
group by和having子句在select语句中用于将表分成组,并返回符合having子句条件的组。
语法:select语句的开头
group by[all]Aggregate _ free _ expression[,Aggregate _ free _ expression]*
[having search _ conditions]
select语句的结尾
group by:指定表将被划分到的组。如果选择表项包含聚合函数,将为每个组计算总值。这些总计的结果显示在新列中,而不是新行中。用户可以在having子句中引用这些新的总计列。在group by之前,可以在select_list中使用avg、count、max、min和sum等集合函数。表格可以按列的任意组合进行分组。
all: Transact-SQL扩展,包括结果中的所有组,这里的所有组甚至包括被where子句排除的那些组。如果同时使用having子句,那么all的意义就会被否定。
aggregate _ free _ expression:没有聚合函数的表达式。Transact-SQL扩展允许按列名和表达式分组,而不使用聚合函数。
having:为group by子句设置条件,类似于为select语句设置条件的方法。具有的搜索条件可以包括集合函数表达式。否则,其搜索条件与where搜索条件相同。
order by:按列排列结果。select输出的列可以由列名、列别名或列位置引用。比如这三句话完全等价:从我的表组按id选择id作为我的id,从我的表组按id选择id作为我的名字,从我的表组按id选择id作为我的id,从我的表组按1选择name作为我的名字。当然,我们不赞成第三种用法,这样会对程序的可读性造成不好的影响。若要按降序排序,请在order by子句中将desc关键字添加到要排序的列名中。缺省值是升序,也可以用ASC关键字显式指定。
limit子句:用于限制select语句返回的行数。Limit接受一个或两个数字参数。如果给定两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定返回的行数。初始行的偏移量是0(不是1)。如果给定一个参数,它指示偏移量为0的返回行数。也就是说极限5和极限0,5是完全等价的。
至于procedure关键字的含义,我不太清楚。好像支持存储过程,而MySQL本身不支持存储过程。好像是留作以后扩展用的。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » MySQL进阶

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情