黑马程序员技术交流社区

标题: 【厦门校区JavaEE8期-每日总结】MySQL约束 [打印本页]

作者: 厦门校区    时间: 2019-7-6 11:57
标题: 【厦门校区JavaEE8期-每日总结】MySQL约束
1.having和where的区别?
2.什么是主键,主键有什么作用?
3.我们今天学了几种约束,主键必须要有哪几种约束?
4.什么情况下会用到group by分组函数?
5.什么情况下会用到一对多,什么情况下会用到多对多?
作者: 郑梅月    时间: 2019-7-6 19:01
1.having和where的区别?
答:(1) where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
     (2)where 后不可以跟聚合函数,having可以进行聚合函数的判断。
2.什么是主键,主键有什么作用?
答:主键是表中一个非空且唯一的字段。
        主键用来标识表中的记录。
3.我们今天学了几种约束,主键必须要有哪几种约束?
答:主键约束、非空约束、唯一约束、外键约束
      主键必须有非空和唯一约束
4.什么情况下会用到group by分组函数?
答:select后 既有表结构本身的字段,又有需要使用聚合函数(COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段,就要用到group by分组,查询的限定条件里有需要用聚合函数计算的字段时也需要用分组.
5.什么情况下会用到一对多,什么情况下会用到多对多?
答:
一对多:一个球队有多位球员,但一个球员只属于一个球队,这时候球员与球队就是一对多的关系。
多对多:一个学生有多个老师,一个老师也可以有多个学生。这时候老师与学生就是多对多的关系。

作者: 李保佳    时间: 2019-7-6 19:41

1.having和where的区别?
1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?

(1)非空且唯一的键值
(2)一张表只能有一个主键,是这个表记录的唯一标识,主键创建后无特殊情况,都不会进行变更的

3.我们今天学了几种约束,主键必须要有哪几种约束?
分类:
        1. 主键约束:primary key
        2. 非空约束:not null
        3. 唯一约束:unique
        4. 外键约束:foreign key

主键必须有非空约束和唯一约束。
4.什么情况下会用到group by分组函数?

需统计相同特征的某一类的数据,把这些数据当成一个整体的信息


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

一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
   多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
作者: 何凯    时间: 2019-7-6 20:02
1.having和where的区别?
        having 是在分组之后进行条件判断的,而且它能判断聚合函数
        where 是分组前进行判断条件的,它的后面不能跟聚合函数

2.什么是主键,主键有什么作用?
        一张表里面只能有一个主键,主键可以是多条列,如果是多条列的时候需要设置为联合主键
        主键是表示一张表的,主键是唯一不为null的

3.我们今天学了几种约束,主键必须要有哪几种约束?
        学了四种约束 分别为 主键约束 唯一约束 非空约束 外键约束
        主键约束中就包含了唯一约束和非空约束

4.什么情况下会用到group by分组函数?
        一般在进行聚合函数count统计时会用到group by的分组 分别对多组统计

5.什么情况下会用到一对多,什么情况下会用到多对多?
        比如员工和部门的关系,部门就是1 员工就是多的一方
        多对多的情况是 一个学生可以选择多门课程,一门课程可以被多个学生选择
作者: 朱铭恺    时间: 2019-7-6 20:10
本帖最后由 朱铭恺 于 2019-7-8 09:07 编辑

1.having和where的区别?

where在分组之前使用,后不可使用聚合函数
having在分组之后使用,后可使用聚合函数

2.什么是主键,主键有什么作用?

- 主键即数据库中数据表一个非空唯一的一标识
- 一个表只能有一个主键,但是主键可以由多列组成,如联合主键
- 主键不建议修改
- 作用:作为操作的标识,提高操作效率,保证数据操作的准确性、有效性和完整性,能够用来进行多表操作。

3.我们今天学了几种约束,主键必须要有哪几种约束?

- 非空约束
- 唯一约束
- 主键约束
- 外键约束
主键约束包含非空约束和唯一约束

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

当需要对字段(列)中相同的内容进行分组操作时,可使用group by


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


当存在1对多的关系,并且多表需要与一表产生联系时,可通过在多表添加外键建立一对多的关系,如:部门和员工
当存在多对多的关系,并且多表与多表需产生联系时,可使用添加中间表与外键的方式,建立多对多的关系, 如:学生和课程

作者: 郭伟杰-    时间: 2019-7-6 20:21
1.having和where的区别?

答:1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如       果不满足结果,则不会被查询出来。
    2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?

答: 含义:非空且唯一
     一张表只能有一个字主键,但是可以多个字段确定为一个主键
     主键就是表中记录的唯一标识

3.我们今天学了几种约束,主键必须要有哪几种约束?

答:4种约束,主键约束:primary key,非空约束:not null,唯一约束:unique,
             外键约束:foreign key
    必须要有的是主键约束和外键约束

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

答:当需要对记录进行统计时,对查询信息进行分组,相同数据作为一组时会用到分组函数

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

答:一对多:在多的一方建立外键,指向一的一方的主键
    多对多:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
作者: 辛全旺    时间: 2019-7-6 21:04

1.having和where的区别?
答:       
        where在分组查询中在分组前进行判断,不满足条件不参加分组,having在分组后进行判断,不满足条件不会显示。

2.什么是主键,主键有什么作用?
答:       
        主键是对表中的列的数据进行约束,被约束的列数据必须满足数据唯一且不为空,一个表中中只能有一个主键,一个主键可以包含多个列,包含多个列时叫做联合主键。

3.我们今天学了几种约束,主键必须要有哪几种约束?
答:       
        被主键约束的列,该列的数据必须是唯一且不能为空。

4.什么情况下会用到group by分组函数?
答:       
        对表中的数据进行统计时,对不同类型的数据进行统计就需要分组查询。

5.什么情况下会用到一对多,什么情况下会用到多对多?
答:
        当一个字段a对应多个字段b,而一个字段b只对应一个字段a,此时a和b就是一对多的关系,如果a和b在同一个表中可以拆分成两个表,多表中的b字段可以作为外键指向一表中的a字段,a字段为了避免重复,可以设置为主键。
        当一个字段a对应多个字段b,而一个字段b也对应多个字段a,此时a和b就是多对多的关系,如果a和b在同一个表中可以拆分成两个表,再创建一个包含a和b字段的三表,前两表的a和b字段可以作为外键指向三表的a和b字段,为了避免重复,三表中的a和b字段可以设为联合主键。。
作者: 孙健健    时间: 2019-7-6 21:12

1.having和where的区别?

where是用在分组前进行的数据处理,后不可以跟聚合函数
heving是用在分组后进行的数据处理,后可以跟聚合函数。

2.什么是主键,主键有什么作用?

主键就是表中记录的唯一标识,主键的含义是非空且唯一,作用就是用来当做标识

3.我们今天学了几种约束,主键必须要有哪几种约束?

4种约束
        1.非空约束
        2.唯一约束
        3.主键约束
        4.外键约束
答:主键里包含非空约束和唯一约束


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

在我需要对一列字段进行统计运算的时候,就会用到 group  by



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

当俩个表关系是父子关系的时候,会用到一对多关系,列入:一个部门和多个员工

列入学生和课程:一个学生可以选择多个课程,一个课程也可以被多个学生选择,在这种情况下会用到多对多
作者: 郭付民    时间: 2019-7-6 21:16

1.having和where的区别?

(1)where是对分组前的条件进行筛选,如果不满足条件,则不参与分组。having是对分组后的条件筛选,如果不满足条件,则不会被查询出来。
(2)where后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?

主键是数据库表中其值能唯一标识一条记录的一个字段或者多个字段的组合,主键字段非空且唯一。
(1)保证实体的完整性。
(2)加快数据库的操作速度。
(3)用来唯一标识数据库中的每一条记录。

3.我们今天学了几种约束,主键必须要有哪几种约束?

非空约束not null,某一列的值不能为空。
唯一约束unique,某一列的值不能重复。
主键约束primary key,某一段的值唯一且非空,可以是一个字段,也可多个字段组成联合主键。
外键约束foreign key,外键是在从表中与主表主键对应的那一列,主表是用来约束别人的表,从表是被别人约束的表。多表中不能使用主表中不存在的数据,主表中不能删除从表已引用的数据
被主键约束的字段唯一且不能为空,故应该包含非空约束和唯一约束。

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

分组可以对表中的数据进行分类汇总,更加直观的表达我们想要的数据,分组是对某个字段的数据进行统计,像获得最大值或者最小值以及每个组对应的个数等,所以分组会跟聚合函数一起使用。

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

一对多:即存在1对n的关系,如员工与部门的关,一个员工只能有一个部门,一个部门有多个员工,建表原则是在从表创建一个字段,字段作为外键指向主表的主键 。
多对多:即当存在n 对m的关系,如学生与课程的关系,一个学生有多门课程,一门课程可以有多个学生。多对多关系建表原则是需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
作者: 李保佳    时间: 2019-7-6 21:27

1.having和where的区别?
1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?

(1)非空且唯一的键值
(2)一张表只能有一个主键,是这个表记录的唯一标识,主键创建后无特殊情况,都不会进行变更的

3.我们今天学了几种约束,主键必须要有哪几种约束?
分类:
        1. 主键约束:primary key
        2. 非空约束:not null
        3. 唯一约束:unique
        4. 外键约束:foreign key

主键必须有非空约束和唯一约束。
4.什么情况下会用到group by分组函数?

需统计相同特征的某一类的数据,把这些数据当成一个整体的信息


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

一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
   多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
作者: 邱昊翔    时间: 2019-7-6 21:27

1.having和where的区别?
答:where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
         where 后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?
答:主键是作为表的行的唯一标识的候选关键字。
       主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。
    ①可以保证实体的完整性;
    ②能够加快数据库的操作速度;
    ③在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值    重复;


3.我们今天学了几种约束,主键必须要有哪几种约束?
答:四种约束:主键约束 primary key,唯一约束 unique,外键约束  foreign key,非空约束notnull
    主键必须有:非空约束not null 和 唯一约束 unique

4.什么情况下会用到group by分组函数?
答:group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。
       SELECT子句中的列名必须为分组列或列函数。
       列函数对于GROUP BY子句定义的每个组各返回一个结果。
   

5.什么情况下会用到一对多,什么情况下会用到多对多?
答:一对多:部门和员工
    一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。

    多对多:学生选课表 和 学生表, 一门课程可以有多个学生选择,一个学生选择多门课程
    多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
作者: 邹楷能    时间: 2019-7-6 21:28
1.having和where的区别?
答:where是对分组前的数据进行筛选,而having是对分组后的数据进行筛选,where后面不能跟聚合函数,而having后面能够跟聚合函数。

2.什么是主键,主键有什么作用?
答:主键就是使该键中的值唯一非空,其作用是保证数据的唯一标识。

3.我们今天学了几种约束,主键必须要有哪几种约束?
答:今天我们学了4中约束,主键有三种约束,唯一约束,非空约束,主键约束。

4.什么情况下会用到group by分组函数?
答:当需要对数据进行分组操作并进行统计的时候会用到group by。

5.什么情况下会用到一对多,什么情况下会用到多对多?
答:在一个表的一个字段作为外键指向另一个表的主键的时候使用一对多,例如用户和,当两个表之间互相存在一对多的关系的时候使用多对多,例如:学生和课程。
作者: 许俊杰    时间: 2019-7-6 21:41

1.having和where的区别?
having可以接聚合函数使用,where不行

2.什么是主键,主键有什么作用?
主键是表中一行数据的标识,主键具有唯一性,用来区分各个数据使用。
3.我们今天学了几种约束,主键必须要有哪几种约束?
四种:
        非空约束
        唯一约束
        主键约束
        外键约束

主键的约束:是用来确定唯一一条记录的,所以有唯一约束、非空约束

4.什么情况下会用到group by分组函数?
当使用聚合函数时会需要使用group by。

5.什么情况下会用到一对多,什么情况下会用到多对多?
如部门与员工之间的关系就是一对多关系。
如学生与学科之间的关系就是多对多关系。
作者: 王猛虎    时间: 2019-7-6 21:42
1.having和where都可用于对条件的限制,where在分组前做条件限制,having用于分组后的条件限制
where后面不能跟聚合函数,having可以

2.主键用于唯一确定一条数据记录的键,主键可以用于确定唯一一条记录

3.非空约束,唯一约束,主键约束,外键约束
主键包含非空约束和唯一约束

4.对数据进行分组统计的时候

5.表与表之间存在一对多情况下,表与表之间存在多对多情况下
作者: 林锦长    时间: 2019-7-6 21:55

1.having和where的区别?
区别:
(1). where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
(2). where 后不可以跟聚合函数,having可以进行聚合函数的判断。


2.什么是主键,主键有什么作用?
主键: 指的是一个列或多列的组合,主键的值能唯一地标识表中的每一行,通过它可强制表的实体完整性。
主键主要是用于其他表的外键关联,以及键对应记录的修改与删除。
作用:
(1)保证实体的完整性;
  (2)加快数据库的操作速度
  (3)在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。
  (4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录


3.我们今天学了几种约束,主键必须要有哪几种约束?
四种约束:分别是
    1. 主键约束:primary key
    2. 非空约束:not null
    3. 唯一约束:unique
    4. 外键约束:foreign key
主键必须要有:非空约束,唯一约束


4.什么情况下会用到group by分组函数?
group by:查询结果集中的某一列(或多列),进行分组,值相等的为一组。
(1)聚合函数(count,sum,avg,max,min)的作用对象:
(2)如果未对查询结果分组,聚合函数将作用于整个查询结果。
(3)如果对查询结果分组后,聚合函数将分别作用于每个组。


5.什么情况下会用到一对多,什么情况下会用到多对多?
(1)一对多(多对一):
* 如:部门和员工
* 分析:一个部门有多个员工,一个员工只能对应一个部门

(2)多对多:
* 如:学生和课程
* 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择
作者: 陈伟锋    时间: 2019-7-6 21:56
1.having和where的区别?
having用在分组语句group by 之后,可以跟聚合函数
where 用在分组语句group by 之前,不可以跟聚合函数

2.什么是主键,主键有什么作用?
主键是表中记录的唯一标识

3.我们今天学了几种约束,主键必须要有哪几种约束?
        1. 主键约束:primary key
        2. 非空约束:not null
        3. 唯一约束:unique
        4. 外键约束:foreign key
主键必须要有非空约束和唯一约束

4.什么情况下会用到group by分组函数?
分组函数一般和聚合函数一起用

5.什么情况下会用到一对多,什么情况下会用到多对多?
一对多:一个部门有多个员工
多对多:一个学生有多门课程,一门课程有多个学生
作者: 黎先帆    时间: 2019-7-15 18:54

1.having和where的区别?

(1)where是对分组前的条件进行筛选,如果不满足条件,则不参与分组。having是对分组后的条件筛选,如果不满足条件,则不会被查询出来。
(2)where后不可以跟聚合函数,having可以进行聚合函数的判断。

2.什么是主键,主键有什么作用?

主键是数据库表中其值能唯一标识一条记录的一个字段或者多个字段的组合,主键字段非空且唯一。
(1)保证实体的完整性。
(2)加快数据库的操作速度。
(3)用来唯一标识数据库中的每一条记录。

3.我们今天学了几种约束,主键必须要有哪几种约束?

非空约束not null,某一列的值不能为空。
唯一约束unique,某一列的值不能重复。
主键约束primary key,某一段的值唯一且非空,可以是一个字段,也可多个字段组成联合主键。
外键约束foreign key,外键是在从表中与主表主键对应的那一列,主表是用来约束别人的表,从表是被别人约束的表。多表中不能使用主表中不存在的数据,主表中不能删除从表已引用的数据
被主键约束的字段唯一且不能为空,故应该包含非空约束和唯一约束。

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

分组可以对表中的数据进行分类汇总,更加直观的表达我们想要的数据,分组是对某个字段的数据进行统计,像获得最大值或者最小值以及每个组对应的个数等,所以分组会跟聚合函数一起使用。

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

一对多:即存在1对n的关系,如员工与部门的关,一个员工只能有一个部门,一个部门有多个员工,建表原则是在从表创建一个字段,字段作为外键指向主表的主键 。
多对多:即当存在n 对m的关系,如学生与课程的关系,一个学生有多门课程,一门课程可以有多个学生。多对多关系建表原则是需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2