SQL之查询

来源:互联网 发布:3dmax下载mac 破解版 编辑:程序博客网 时间:2024/06/06 12:37
本文纯属娱乐,如有不足之处敬请指正主要聊聊select的完整执行顺序,当然这是从其他博主那挖来的,嘿嘿1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select 的字段;8、使用order by对结果集进行排序。看完上面内容后,我想了想:1、from后面跟什么其实可以不用谈,但是我最烦老师说这很简单就不说了,随便举几个吧,可以跟表名,也可以跟视图,更可以跟一条语句eg:select * from(select * from table_name)t where +条件限制,还可以跟什么我就想不起来了,因为我也是菜鸟2、where后面主要跟条件限制,像 id=‘123’ and name like ‘%小红%’ and age<>'22' or weight<'110' 都可以3、group by是用来分组的eg:一般用到的就是“每”这个字 现有一个这样的表:每个部门有多少人 就要用到分组的技术select DepartmentID as '部门名称',COUNT(*) as '个数' from BasicDepartment group by DepartmentID这个就是使用了group by +字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID(DepartmentID)将数据集进行了分组;然后再进行各个组的统计数据分别有多少;如果不用count(*) 而用类似下面的语法select DepartmentID,DepartmentName from BasicDepartment group by DepartmentID将会出现错误消息 8120,级别 16,状态 1,第 1 行选择列表中的列 'BasicDepartment.DepartmentName' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。英文错误提示 :Column 'BasicDepartment.DepartmentName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.原则:(1)这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;(2)要么就要被包含在聚合函数中。4、专业点说聚合函数是对一组值执行计算并返回单一的值的函数(其实这句话看看就行,让我嘚瑟嘚瑟),只需要记记,求一堆数的平均值(avg),求和(sum),统计个数(count),取最大值(max),取最小值(min),还有像方差,标准差之类的我基本没用过,喜欢就自己追去吧。5、having其实跟where没啥区别,无非是where的条件限制用在group by之前,而having用在group by之后罢了(呵呵,我是这么理解的),但是group by之后的数据跟之前的数据可是不一样的。6、表达式(一般由常量、变量、函数、运算符组成的式子,由嘚瑟了一把)应该有三种情况:南波湾:表名后面跟<字段名表达式>南波图:select语句后跟<目标表达式>eg:*,表名.*,avg()南玻思锐:where语句后更<条件表达式>eg:比较大小>,指定范围between...and...,集合in,字符匹配like,控制is null,多重条件or7、select这个比较难,不理解的上网查查哈8、order by排序用的,默认的是有小到大,加上desc会很神奇的从大到小了,不信可以试试
1 0
原创粉丝点击