数据库三(连表联查、视图) 您所在的位置:网站首页 三码联查是什么意思 数据库三(连表联查、视图)

数据库三(连表联查、视图)

2024-06-27 19:06| 来源: 网络整理| 查看: 265

文章目录 一、mysql的三大范式二、连表联查1.union2.笛卡尔积3.表连接4.逻辑判断5.连表查询 三、从其他表中加载数据四、视图五、sql执行顺序六、索引七、事务八、在xshell中执行脚本运行sql语句九、总结

一、mysql的三大范式 原子性 字段不可在分割 唯一性 字段必须依赖于主键 冗余性 避免数据量过大 二、连表联查

删除之前的表,创建两个新表,插入数据 student 在这里插入图片描述

score 在这里插入图片描述

1.union union:多个结果集进行合并(纵) 格式:select 字段 from 表名 union 表名; 注意:查询时多张表的字段数量保持一致 直接使用union时,相同的数据只显示一行 使用union all时,相同的数据都会显示 查询结果的列名以第一次sql语句的结果列为准

truncate table student;清空表 在这里插入图片描述

2.笛卡尔积

前面的数据与后面表的数据每一行去匹配,10*30会变成300行数据 在这里插入图片描述

3.表连接

为了减少数据膨胀,在笛卡尔积的基础上增加条件 1个ID对应三科成绩,数据变为30行 在这里插入图片描述 join

join中连接条件用on 不用where。left join:左表为准 匹配右表的数据,左表中的数据匹配不到右表的数据就显示null,右边的数据和左表不匹配就不会显示 格式:select 字段 from 表名 left join 表名 on 连接条件;right join:右表为准 匹配左表的数据,右表中的数据匹配不到左表的数据就显示null,右边的数据和左表不匹配就不会显示 格式:select 字段 from 表名 right join 表名 on 连接条件;inner join:两张表的交集 格式:select 字段 from 表名 inner join 表名 on 连接条件;

在原先的student中增加一个学生 “学生”,便于观察结果 左连接 以左表为准,右边没有补空 在这里插入图片描述 右连接 以右表为准,学生没有匹配到 在这里插入图片描述 内连接 只显示两者共有的,不以某一个为准 在这里插入图片描述

4.逻辑判断

逻辑判断:case when 判断条件 then 值 [when 判断条件 then]* [else 值] end 格式一: 在这里插入图片描述 格式二: 在这里插入图片描述 注意:枚举类型判断时,要加上引号,如上的1,0表示男女,判断时需加上引号

5.连表查询 select * from student where id in(select distinct studentid from score where score


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有