关于MySQL,DQL,约束,以及多表关系。

DQL数据库表记录查询

排序查询 ORDER BY

     排序规则:ASC 升序,DESC 降序;
        SELECT * FROM 表名 ORDER BY 列名 ASC;升序排列
        SELECT * FROM 表名 ORDER BY 列名 ASC,列名 DESC;先按照前面的排,前面的一样再按照后面的排。

聚合函数

    常用的聚合函数:COUNT(列名) -- 求个数
        MAX()-- 求最大值
        MIN () -- 求最小值
        SUM()-- 求和
        AVG()-- 求平均值

    聚合韩式排除为MULL值的列,解决方案
        不采用 为NULL的列
        函数 IFNULL(列名,0)

分组查询:GROUP BY

    1.基础格式: GROUP BY 分组字段
    2.注意事项:
        1.分组之后,查询的结果是 分组的字段 或者是聚合函数
        2.两个区别 WHERE 和 HAVING
            2.1 WHERE分组之前的条件筛选,不满足就不参与分组,后面能跟聚合函数
            2.2 HAVING 分组之后的条件筛选,不满足条件,不显示出来,后面可以跟聚合函数

    3.案例
        SELECT 性别,COUNT(主键id) FROM 学生表 GROUP BY 性别;-- 根据性别进行分组,分组后查询学生表中不同性别各自的人数。

分页查询:LIMIT (MySQL数据库专属)

    1.基础格式
        LIMIT 起始位置,每页条数
    2.计算公式 
        起始位置=(当前页数-1)* 每页条数
    3.案例
        SELECT * FROM 表名 LIMIT 开始位置,每条页数;

约束

*概念:对表中的数据进行限定,保证表中数据的正确性、有效性和完整性。

非空约束

    1.名称:NOT NULL 
    2.三种操作的方式
        a.创建表的时候添加非空约束
            CREATE TABLE 表名称(列名1,数据类型1,列名2,数据类型2 NOT NULL);
        b.表创建完毕之后,再添加非空约束【条件:不能已经有重复的】
            ALTER TABLE 表名称 MODIFY 列名 数据类型 NOT NULL;
        c.删除非空约束
            ALTER TABLE 表名称 MODIFY 列名 数据类型;

唯一约束

    1.名称:UNIQUE 
    2.效果:不能添加重复的数据,NULL只能有一个
    3.三种操作方式
        a.创建表的时候添加唯一约束
            CREATE TABLE 表名称(列名1,数据类型1,列名2,数据类型2 UNIQUE);
        b.表创建完毕之后,再添加唯一约束
            ALTER TABLE 表名称 MODIFY 列名 数据类型 UNIQUE;
        c.删除唯一约束
            ALTER TABLE 表名称 DROP INDEX 列名称;

主键约束

    1.名称:PRIMARY KEY
    2.效果:非空且唯一,而且一张表中只能有一个主键
    3.三种操作方式
        a.创建表的时候添加主键约束
            CREATE TABLE 表名称(列名1,数据类型1 PRIMARY KEY,列名2,数据类型2 );
        b.表创建完毕之后,再添加唯一约束
            ALTER TABLE 表名称 MODIFY 列名 数据类型 PRIMARY KEY;
        c.删除唯一约束
            ALTER TABLE 表名称 DROP PRIMARY KEY;

        d.自动增长:
            *概念:如果某一列是数值类型的,使用AUTO_INCREMENT;
            1.创建表的时候添加
                CREATE TABLE 表名称(列名1,数据类型1 PRIMARY KEY AUTO_INCREMENT,列名2,数据类型2 );
            2.表创建完毕之后,再添加
                ALTER TABLE 表名称 MODIFY 列名 数据类型 AUTO_INVREMENT;
            2.删除
                ALTER TABLE 表名称 列名 数据类型;

外建约束

    1.名称:FOREIGN KEY
        效果:让两个表之间产生关联,自己表的外键连别人表的主键
    2.三种操作方式
        a.创建表大的时候添加外键约束
            CREATE TABLE 表名称(
                列名1,数据类型,
                列名2,数据类型,
                CONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键));
        b.创建表后添加外键约束
            ALTER TABLE 表名称 ADD ONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键));
        c.删除外键
            ALTER TABLE 表名称 DROP FOREIGN KEY 外键名;
    3.级联操作:多个表主外表关系删除和修改的时候,彼此之间后受影响
            a.添加级联操作
                ALTER TABLE 表名称 ADD ONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键))ON UPDATE CASCADE;
            b.关键子:ON UPDATE CASCADE;
                     ON DELETE CASCADE;

多表关系

1.一对多
    实例:
        部门和员工之间的关系
    建表原则:
        一是主键,多的添加外键连接一的主键;
2.多对多
    实例:
        学生与课程之间的关系
    建表原则:
        设计一个中间表,至少包含看两个字段(两个表的主键)
3.一对一
    实例:
        人和身份证
    建表原则:
        再任意一方添加外键(唯一(UNIQUE)),指向另一方的主键。

范式

1.范式的含义
    设计数据库的时候遵循的规范
2.范式分类
    第一范式(1NF):每一项数据都是不可分割的原子项
    第二范式(2NF):消除部分依赖
    第三范式(3NF):消除传递依赖
    巴斯-科德范式()
    第四范式(4NF)
    第五范式(5NF)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值