MySQL数据库----------小知识点

**********************补2016年5月23日的博客*************************

MySQL数据库 常用数据类型:

int                整数型            4个字节

Varchar           字符串型                          1个字是两个字符

bit                    bool型                    

datetime           日期时间型                      长度(字节):8

decimal             小数型                

float   double      小数型

      注:

       varchar 规定长度,不管内容长度多少,实际长度小于等于规定长度

        char规定长度,不管内容长度多少实际长度就是规定长度

建表应该注意的有:

【1】分类、分层、分步

【2】在数据库图表中的表之间创建关系:

一对多关系

一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。例如,publishers 和 titles 表之间具有一对多关系:每个出版社出版很多书,但是每本书名只能出自一个出版社。

只有当一个相关列是一个主键或具有唯一约束时,才能创建一对多关系。

多对多关系

多对多关系中,A 表中的一行可以匹配 B 表中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由 A 表和 B 表的外部键组成。例如,authors 和 titles 表具有多对多关系,这是由于这些表都与titleauthors 表具有一对多关系。titleauthors 表的主键是 au_id 列(authors 表的主键)和 title_id 列(titles 表的主键)的组合。

一对一关系

一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。

这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。可以利用一对一关系来:

    • 分割具有多列的表。

    • 由于安全原因而隔离表的一部分。

    • 保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据。

    • 保存只适用于主表的子集的信息。

 

举例一:

         (1) 一对一:  班级与班长之间的联系:

                               一个班级只有一个正班长

                               一个班长只在一个班中任职

         (2) 一对多:班级与学生之间的联系:
                              一个班级中有若干名学生,
                             每个学生只在一个班级中学习
        (3) 多对多:课程与学生之间的联系:
                             一门课程同时有若干个学生选修
                             一个学生可以同时选修多门课程


举例二:

               员工姓名,员工性别,员工年龄,岗位,部门名称,部门主管,部门职责。

               如果它们都放在一起会产生冗余,粘连。

              所以要建两个表:

              员工(员工姓名,员工性别,员工年龄,岗位,部门代号)

              部门(部门名称,部门主管,部门职责,部门代号)

       

举例三:

          老师(代号,姓名,性别,年龄)

          课程(代号,名称,课时数)

          课程安排表(老师代号,课程代号,时间段)

 

原文地址:https://www.cnblogs.com/yuyu1993/p/5523592.html