MySQL基础(二)

##MySQL约束与设计


###第一章 

DQL 数据库表记录的查询(排序、聚合、分组、分页)

    1.排序查询
    a.基础语法:ORDER BY 列名称 排序规则
    b.排序规则:ASC(默认) 升序。 DESC 降序
     案例:
         SELECT * FROM 学生表 ORDER BY 数学成绩 ASC (升序)
         SELECT * FROM 学生表 ORDER BY 数学成绩 DESC (降序)
    
    2.聚合函数
    a.常用的聚合函数
       COUNT(列名)     -- 求个数
       MAX(列名)       -- 求最大值
       MIN(列名)       -- 求最小值
       SUM(列名)       -- 求和
       AVG(列名)       -- 求平均值
    b.注意:聚合函数排除NULL值的列。解决方案:
               A.不采用为NULL的列
               B.函数 IFNULL(列名,0)
    c.案例:统计学生表当中的,数学成绩平均值
           SELECT AVG(IFNULL(数学成绩,0)) FROM 学生表;

    3.分组查询
    a.格式:GROUP BY 分组的字段
    b.注意:
            1. 分组之后查询的字段:分组字段、聚合函数
            2. where 和 having 的区别?
                1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
                2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。
    c.案例
            SELECT 性别,COUNT(主键id) FROM 学生表 GROUP BY 性别;  --  根据性别进行分组,查询学生表当中的性别和对应的人数
            SELECT COUNT(主键id) FROM 学生表 WHERE 成绩>80 GROUP BY 性别 HAVING COUNT(主键ID)>2;  -- 从学生表当中查询成绩大于80,对性别分组要求人数大于2,显示最后的结果.

    4、分页查询      LIMIT mysql数据库专属的LIMIT
        A.基础格式
            LIMIT 起始位置,每页条数
        B.计算公式
            起始位置 = (当前页数-1)*每页条数
        C.案例: 每页条数显示4条,在第6页的写法
            SELECT * FROM 表名称 LIMIT 20,4; -- (6-1)*4 =20

###第二章 

约束(非空、唯一、主键、外键)

    1.非空约束
    A.名称
            NOT NULL
        B.效果
            不能添加为空的数据.("姓名","商品编号")
        C.三种操作的方式
            a.创建表的时候,添加非空约束
                CREATE TABLE 表名称 (列名1 数据类型1,列名2 数据类型2 NOT NULL);
            b.表创建完毕之后,再添加非空约束
                ALTER TABLE 表名称 MODIFY 列名称 数据类型 NOT NULL;
            c.删除非空约束
                ALTER TABLE 表名称 MODIFY 列名称 数据类型;
    2、唯一约束
        A.名称
            UNIQUE 
        B.效果
            不能添加重复的数据,NULL只能有一个.("手机号码","身份证","邮箱")
        C.三种操作的方式
            a.创建表的时候,添加唯一约束
                CREATE TABLE 表名称 (列名1 数据类型1,列名2 数据类型2 UNIQUE);
            b.表创建完毕之后,再添加唯一约束【条件:不能有重复的】
                ALTER TABLE 表名称 MODIFY 列名称 数据类型 UNIQUE;
            c.删除唯一约束
                ALTER TABLE 表名称 DROP INDEX 列名称;
    3、主键约束
        A.名称
            PRIMARY KEY      主键的关键字
            AUTO_INCREMENT    自动增长的关键字(根据上一行的数据进行自动增长)
        B.效果
            主键效果: 非空并且唯一,而且在一张表当中只能有一个主键
            自动增长: 在上一行的基础上,自动加上1
        C.三种操作的方式
            a.创建表的时候,添加主键约束
                CREATE TABLE 表名称 (列名1 数据类型1 PRIMARY KEY AUTO_INCREMENT,列名2 数据类型2);
            b.表创建完毕之后,再添加主键约束【条件:不能有重复的】
                ALTER TABLE 表名称 MODIFY 列名称 数据类型  PRIMARY KEY AUTO_INCREMENT;
            c.删除主键约束
                ALTER TABLE 表名称 DROP PRIMARY KEY;  -- 删除主键约束
                ALTER TABLE 表名称 MODIFY 自动增长的列名称 自动增长的数据类型;  -- 删除自动增长的效果
    4、外键约束
        A.名称
            FOREIGN KEY 
        B.效果
            让两个表之间产生关联,自己表的"外键"连上别人表的"主键"
        C.三种操作的方式    
            a.创建表的时候,添加外键约束
                CREATE TABLE 表名称(
                    列名1 数据类型1,
                    列名2 数据类型2,
                    CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键)
                );
            b.表创建完毕之后,再添加外键约束
                ALTER TABLE 表名称 ADD CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键);
            c.删除外键约束
                ALTER TABLE 表名称 DROP FOREIGN KEY 外键别名;
        D.外键级联操作
            a.级联的含义: 
                多个表主外键关系删除和修改的时候,彼此之间会受到影响
            b.两个级联的关键字
                级联更新      ON UPDATE CASCADE
                级联删除    ON DELETE CASCADE 
            c.添加级联操作的语法
                ALTER TABLE 表名称 ADD CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键) ON UPDATE CASCADE ON DELETE CASCADE;
            
###第三章 

多表关系(一对多、多对多、一对一)


    1、一对多
        A.生活实例: 
            部门和员工之间的关系
        B.建表原则:
            一是主键,多是外键.多的外键指向一的主键
    2、多对多
        A.生活实例:
            学生和课程之间的关系
        B.建表原则:
            设计一个"中间表",至少包含两个字段(两个表的主键)
    3、一对一 (了解即可)
        A.生活实例:
            人和身份证的关系
        B.建表原则:
            在任意一方添加外键(唯一约束 UNIQUE )指向另一方的主键
            
###第四章 

范式


    1、范式的含义
        设计数据库的时候,遵循的规范
    2、范式的分类
        A. 第一范式(1NF) 每一项都是不可以分割的原子数据.不能存在合并项
        B. 第二范式(2NF) 抽取了核心直接依赖关系,其他间接关系放在一边
        C. 第三范式(3NF) 再次抽取间接表当中的依赖关系.
        D. 巴斯-科德范式(BCNF)
        E. 第四范式(4NF)
        F. 第五范式(5NF)
    
###第五章 


    1、命令行备份和还原
        A.备份数据库
            mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
        B.还原数据库
            a.登录数据库
            b.创建数据库
            c.使用数据库
            d.执行文件  source 文件路径

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值