SQL学习6-数据库导入导出,设计表的三范式

  
    6.1、将数据库当中的数据导出
        在windows的dos命令窗口中执行:(导出整个库)
            mysqldump bjpowernode>D:\bjpowernode.sql -uroot -p333
        
        在windows的dos命令窗口中执行:(导出指定数据库当中的指定表)
            mysqldump bjpowernode emp>D:\bjpowernode.sql -uroot –p123

    6.2、导入数据
        create database bjpowernode;
        use bjpowernode;
        source D:\bjpowernode.sql

7、数据库设计三范式(重点内容)
    
    7.1、什么是设计范式?
        设计表的依据。按照这个三范式设计的表不会出现数据冗余
    
    7.2、三范式都是哪些?

        第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。

        第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖。
            多对多?三张表,关系表两个外键。
            t_student学生表
            sno(pk)        sname
            -------------------
            1                张三
            2                李四
            3                王五

            t_teacher 讲师表
            tno(pk)        tname
            ---------------------
            1                王老师
            2                张老师
            3                李老师

            t_student_teacher_relation 学生讲师关系表
            id(pk)        sno(fk)        tno(fk)
            ----------------------------------
            1                1                3
            2                1                1
            3                2                2
            4                2                3
            5                3                1
            6                3                3
        
        第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。
            一对多?两张表,多的表加外键。
            班级t_class
            cno(pk)            cname
            --------------------------
            1                    班级1
            2                    班级2

            学生t_student
            sno(pk)            sname                classno(fk)
            ---------------------------------------------
            101                张1                1
            102                张2                1
            103                张3                2
            104                张4                2
            105                张5                2
        
        提醒:在实际的开发中,以满足客户的需求为主,有的时候会拿冗余换执行速度

    7.3、一对一怎么设计?

        一对一设计有两种方案:主键共享
            t_user_login  用户登录表
            id(pk)        username            password
            --------------------------------------
            1                zs                    123
            2                ls                    456

            t_user_detail 用户详细信息表
            id(pk+fk)    realname            tel            ....
            ------------------------------------------------
            1                张三                1111111111
            2                李四                1111415621

        一对一设计有两种方案:外键唯一。
            t_user_login  用户登录表
            id(pk)        username            password
            --------------------------------------
            1                zs                    123
            2                ls                    456

            t_user_detail 用户详细信息表
            id(pk)       realname            tel                userid(fk+unique)....
            -----------------------------------------------------------
            1                张三                1111111111        2
            2                李四                1111415621        1
            

你可能感兴趣的:(sql,学习,数据库)