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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-5-13 14:51  /  2389 人查看  /  32 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.having和where的区别?
答:
where
        1.对查询结果进行分组前,将不符合 where 条件的行去掉,即在分组之前过滤数据,即先过滤再分组。
        2.where 后面不可以使用聚合函数
having
        1.having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,即先分组再过滤。
        2.having 后面可以使用聚合函数

2.什么是主键,主键有什么作用?
答:主键就是表中记录的唯一标识。
        无规矩不成方圆,无约束不成完整数据。主键能对表进行约束规范,保证了数据的正确性、有效性和完整性。
       
3.我们今天学了几种约束,主键必须要有哪几种约束?
答:四种约束;
                1.主键约束:primary key,非空且唯一,一张表只能有一个字段为主键,主键就是表中记录的唯一标识。
                2.非空约束:not null,某一列的值不能为null
                3.唯一约束:unique,某一列的值不能重复(注:唯一约束可以有null值,也可以有多条记录为null值)
                4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。
        主键必须要非空和唯一约束。       

4.什么情况下会用到group by分组函数?
答:
在需要对查询出来结果数据进行分组时,使用到group by分组函数。
使用group by 分组函数时需要注意以下几点:
        1.分组之后查询的字段只能是分组字段、聚合函数
        2. where 和 having 的区别?
                        1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
                        2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。
                       
5.什么情况下会用到一对多,什么情况下会用到多对多?
答:
一对多(1:n) 例如:班级和学生,部门和员工,客户和订单,分类和商品。
一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。

多对多(m:n) 例如:老师和学生,学生和课程,用户和角色
多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马