A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区 黑马粉丝团   /  2018-7-12 21:41  /  4372 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.having和where的区别?
2.什么情况下会用到group by分组函数?
3.什么情况下会用到一对多,什么情况下会用到多对多?

评分

参与人数 1黑马币 +1 收起 理由
abaoo2018 + 1 神马都是浮云

查看全部评分

26 个回复

倒序浏览
贾宗虎

1.having和where的区别?

where 的判断条件,会在分组前,符合条件的数据会被分到组里
having 会在分组后,判断符合条件的数据被查询出来

2.什么情况下会用到group by分组函数?

当查询的数据,需要进行分组统计的时候,例如查询班级男生个数的时候.

3.什么情况下会用到一对多,什么情况下会用到多对多?

一对多,例如部门和员工,所有员工有且只能有一个部门,而一个部门可以有多名员工的时候,用一对多
多对多,例如学生和课程,一名学生可以选择多门课程,而一门课程也可以有多名学生来上课.这个时候用多对多.




回复 使用道具 举报
1.having和where的区别?
where 用于在group by分组前,不符合where后面条件的记录不会参与分组。
having用在group by分组后,不符合having条件的分组将不会被显示。

2.什么情况下会用到group by分组函数?
当需要进行和聚合函数相关(大多数是统计相关的查询,比如平均数、最大最小值,计数等)等需要分类统计的时候,会使用gourp by

3.什么情况下会用到一对多,什么情况下会用到多对多?
一对多的话即在一个记录对应另一个表中的多个记录有关,比如部门和员工,一个部门可以有多个员工
多对多,则是在类似于学生选课的场景,一个学生可以选多门课程,而一门课程也可以有多人选择。
回复 使用道具 举报
吴佳更

1.having和where的区别?
2.什么情况下会用到group by分组函数?
3.什么情况下会用到一对多,什么情况下会用到多对多?
1.where在分组之前进行限定,如果不符合判断,就不进入分组,having在分组之后进行限定,如果不符合判断就不显示.where后面不能加聚合函数,having可以
2.分组的时候.可以根据某项属性进行分组,一般是为了统计,跟聚合函数一起使用比较多.
3.部门与员工情况下一般是一对多.多对多比如淘宝收藏东西,或者学生选课和学生
回复 使用道具 举报
1.having和where的区别?
where用于组创建之前,如果不满足条件,则不参与分组where后不可以用聚合函数
having用于组创建之后,如果不满足则不进行展出,having可以用聚合函数

2.什么情况下会用到group by分组函数?
需要按照特定条件进行查询的时候会用到group by分组函数

3.什么情况下会用到一对多,什么情况下会用到多对多?
关于一对多和多对多主要是看表与表之间的对应关系来决定
回复 使用道具 举报
1.having和where的区别?
where是在分组字段前限定的条件,不满足条件则不参与分组. where不可以使用聚合函数
having是在分组字段后限定的条件,不满足则不查询处理. having后面可以使用聚合函数

2.什么情况下会用到group by分组函数?
当表内的字段重复性较高时可以用分组函数,例如:分成男女组,各不同的部门分组.

3.什么情况下会用到一对多,什么情况下会用到多对多?
当一个数据可以对应多个数据的时候就使用一对多(多对一),例如:班级号对学生
当数据可以对应多个数据,被对应的数据同时也可以对应多个数据时可以用到多对多,例如:学生和课程




回复 使用道具 举报
刘宵 中级黑马 2018-7-12 21:49:40
7#
1.having和where的区别?

where在group by 的前面,而having是在后面,并且它后面可以添加聚合函数。

2.什么情况下会用到group by分组函数?

在需要对结果进行分组的时候。

3.什么情况下会用到一对多,什么情况下会用到多对多?

当两张表的关系是一对多的时候,用到一对多,比如学生和班级 的关系, 一个班级对应多个学生。
多对多的应用场景比如 共享单车和人的关系, 一个人可以骑很多共享单车,而一辆共享单车可以对应多个人骑。
回复 使用道具 举报
杨银万
1.having和where的区别?
having的判断在分组之后,若条件不满足就不会被查询出来
where的判断在分组之前,若条件不满足就不会加入分组中
2.什么情况下会用到group by分组函数?
当需要用某个字段的值来分别进行查询时,可以使用分组查询
3.什么情况下会用到一对多,什么情况下会用到多对多?
当一张表代表的一个实体可以包含另一张表代表的多个实体时,使用一对多
当一张表代表的一个实体可以包含另一张表代表的多个实体时,而另一张表代表的一个实体也可以包含这张表代表的多个实体时,用多对多




回复 使用道具 举报
====林传伟=====
1.having和where的区别?
having用在group by后 where用在group by前,having后可以跟聚合函数where不行

2.什么情况下会用到group by分组函数?
需要对字段进行分组的时候,例如性别

3.什么情况下会用到一对多,什么情况下会用到多对多?
例如一个班级有多个学生,多个学生在一个班级,就用到一对多,一个班级有多名老师任教,一个老师可以教多个班级,这就需要用到多对多




回复 使用道具 举报
梁端刚
1.having和where的区别?
having和where都是判断语句
having使用在group by后,在分组后判断,可以对聚合函数判断
where使用在groupby 前,先判断后分组,不可判断聚合函数

2.什么情况下会用到group by分组函数?
当某些列具有共同的特性时,可以以此特性进行分组
3.什么情况下会用到一对多,什么情况下会用到多对多?
1对多 比如公司与员工,一个公司可以有多个员工,但每个员工只对应一个公司
多对多比如学生和课程,一个学生可以选多个课程,同时一个课程也可以被多个学生选择
回复 使用道具 举报

1.having和where的区别?
where用在group by前面,having放在放在group by后面,having后面的条件可以包含聚合函数
2.什么情况下会用到group by分组函数?
需要把相同的数组作为一组的时候
3.什么情况下会用到一对多,什么情况下会用到多对多?
[1]类似一个人属于一个部门,一个部门有多个人
[2]类似学生与课程的关系,一个学生可以选择多门课程,一个课程可以有很多人
回复 使用道具 举报
黄希

1.having和where的区别?
        1、where是在分组前进行筛选,having是在分组后进行过滤;
        2、where后面不能进行聚合函数的判断,having后面可以进行聚合函数的判断。

2.什么情况下会用到group by分组函数?
        1、与distinct作用一样,去除重复记录;
        2、需要使用聚合函数计算分组后的数据,例如count求记录数、max求最大值、min求最小值、sum求和、avg求平均值。

3.什么情况下会用到一对多,什么情况下会用到多对多?
        例如班级与学生,是一对多的关系
        例如学生与课程,是多对多的关系

回复 使用道具 举报
洪文生
1.having和where的区别?
1,where 用在分组前对表中数据进行限定,不满足就不参与分组;having用在分组之后的限定,如不满足就不查询;
2,having后能跟聚合函数,where后不能。

2.什么情况下会用到group by分组函数?
在对表中的数据按照 某一字段进行分析时

3.什么情况下会用到一对多,什么情况下会用到多对多?
部门和个人情况下就是一对多;
学生和课程就是多对多情况;
回复 使用道具 举报
王宇晨
1.having和where的区别?
having在分组之后进行限定,如果不满足结果则不会被查询出来,后面可以跟聚合函数的判断。
where在分组之前进行限定,如果不满足条件则不参与分组,后面不可以跟聚合函数。
2.什么情况下会用到group by分组函数?
当表中有很多数据重复时,可以把结果中相同的字段分为一组,可以减少代码的冗余。
3.什么情况下会用到一对多,什么情况下会用到多对多?
当一个数据对应多个数据时会用到一对多,例如部门和员工,班级和学生。
当多个数据与多个数据相互对应时会用到多对多,例如老师和学生,学生和课程





回复 使用道具 举报
1.        having和where的区别?
from orders group by product where sum(price) > 30;
运行有误, group by 后面不能出现 where,使用 having
先where条件进行判断 后用group by 分组 后用 having 筛选 可以使用聚合函数
2.        什么情况下会用到group by分组函数?
一般与聚合函数一起使用
3.什么情况下会用到一对多,什么情况下会用到多对多?
一对多:最常用的关系 部门和员工
多对多:学生选课表 和 学生表, 一门课程可以有多个学生选
一对一:相对使用比较少。员工表 简历表, 公民表 护照表
回复 使用道具 举报
1.having和where的区别?
having判定条件在分组之后,如果不满足条件,则不会被查询出来,并且可以在having字句后使用聚合函数
where判定条件要在分组之前,如果不符合条件,则不参与分组,而且在where后不可以使用聚合函数

2.什么情况下会用到group by分组函数?
当我们查询需要对不同的情况进行查询的时候会使用到分组查询 例如性别分组 部门分组等这些情况...

3.什么情况下会用到一对多,什么情况下会用到多对多?
例如部门与员工的关系 一个部门下有很多的员工 很多的员工对应的是一个部门  再比如客户与订单 一个客户有很多的订单 很多的订单是一个客户的这种情况下会使用一对多
例如学生与老师,一个学生可以有多个老师 而一个老师也会有多个学生 这种的就是多对多的情况


回复 使用道具 举报
官启文
1.having和where的区别?
先过滤在分组  where后不能有聚合函数
分组后过滤,先分组后过滤 having后面可以使用聚合函数
2.什么情况下会用到group by分组函数?
分组查询
3.什么情况下会用到一对多,什么情况下会用到多对多?
一个任务,有人多可以同时使用,一对多
多对多 多个任务多人交叉使用
回复 使用道具 举报
1.having和where的区别?
having 用在分组之后,可以使用聚合函数,where使用在分组之前,不符合条件的数据会被排除出分组,having只是不显示不符合条件的数据
2.什么情况下会用到group by分组函数?
查询的数据具备相同属性可以使用分组函数,方便进行查询
3.什么情况下会用到一对多,什么情况下会用到多对多?
两个表之间,A表可以对应B表多组数据  为一对多
多对多 例如课程与学生  两个表可以互相对应多组数据




回复 使用道具 举报
郑雪平

DQL查询语句是经常使用的一种语句,它分为四种类型:一.排序查询,语法是:order by 子句,排序的方式有两种:asc自然排序,也叫升序。另一种是desc降序,需要注意的是如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。二.聚合函数:将一列数据作为一个整体,进行纵向的计算。1. count:计算个数;2. max:计算最大值;3. min:计算最小值;4. sum:计算和;5. avg:计算平均值。需要注意聚合函数的计算,排除null值。三.分组查询: 使用的语法:group by  四: 分页查询, 语法:limit 开始的索引,每页查询的条数;  约束概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。分为四大类:一。主键约束:primary key;2. 非空约束:not null;3. 唯一约束:unique;4. 外键约束:foreign key;主键的约束:1. 在创建表时,添加主键约束;2.删除主键; 3.创建完表后,添加主键;二。非空约束:not null,某一列的值不能为null;三:唯一约束:unique,某一列的值不能重复;四:外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。一。数据库的设计与 多表之间的关系:1. 一对一;2. 一对多(多对一);3. 多对多关系。 多表之间的实现关系:1. 一对一;2. 一对多(多对一);3. 多对多关系。二。数据库设计的范式:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求,目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF)
回复 使用道具 举报
1.having和where的区别?having 可以放在聚合函数前面而where不能


2.什么情况下会用到group by分组函数?
要进行同数据的统计或计算时,一般配合聚合函数使用

3.什么情况下会用到一对多,什么情况下会用到多对多?

一对多一般像员工和部门的例子,一个部门可以有多个员工,而一个员工却不能有多个部门,
多对多好比学生上课,一个学生可有多个课程,而一个课程也可以有多个学生
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马