zoukankan      html  css  js  c++  java
  • mysql学习之路_连接查询

    回顾

    列属性:主键,自增长,唯一键。

    关系:一对一,一对多,多对多

    三层范式:

    1NF:字段设计必须符合原子性

    2NF:不存在部分依赖(没有复合主键)

    3NF:不存在传递依赖(实体单独成表)

    逆规范化:效率磁盘空间博弈;

    高级数据操作:

    新增操作:主键冲突(更新与替换),蠕虫复制

    更新操作:限制更新数量:limit

    删除操作:限制删除数量:limit。清空表结构:truncate

    查询操作:select选项;

    字段别名: 数据源(单表,多表,子查询[别名]

    Where子句(条件判断:从磁盘)

    Group by子句(判断结构,针对分组统计结果)

    Order by子句(排序,多字段排序)

    Having 子句 (判断结果,针对分组进行统计结果)

    Limit子句 (限制记录数,分页)

    连接查询

    连接查询:将多张表(可以大于2张)进行记录的连接(按照某个指定条件进行数据拼接)

    最终结果:记录数有可能变化,字段数一定会增加(至少两张表合并)

    连接查询的意义:用户查看数据的时候,需要现实的数据来自多张表。

    连接查询分类

    Sql将连接查询分为四类:外链接,自然连接,内连接,交叉连接

    连接查询:join,使用方式 左表join 右表;

             左表;在join关键字左边的表;

             右表:在join 关键字右边的表;

       

    交叉连接

    Cross join从一张表中循环取出每一条记录,每张记录都去另一张表进行匹配。

    匹配一定保留(没有条件匹配),而连接本身字段就全增加(保留),最终会形成的结果叫做笛卡尔积

    基本语法:

    左表 cross join 右表;==from 左表,右表;

    笛卡尔积没有意义:应该尽量避免(交叉查询没用)交叉连接的价值:保证连接结构的完整性。

    例:select * from my_stu cross join my_class;

    内连接:

    内连接:[inner] join;

            从左表中取出没一条记录去右表中所有记录进行匹配,匹配必须是某个条件,在左表中与右表中相同的最终会保留,否则不保留。

    基本语法

    左表 [inner] 右表 on 左表.字段=右边.字段;

    On 表示连接条件;

    条件字段就是代表相同的业务含义

    如:内连接

    Select *from my_stu a join my_class b

    On a.c_id=b.id;

    php中会覆盖:

      字段别名以及表别名对的使用:在查询数据的时候,不同表有同名字段,这个时候需要加上表名才能区分,而表名太长,通常使用别名。

    内连接可以使用where 代替on关键字(where没有on效率高)

    外链接:

    外链接:outer  join ,以某张表为主,取出里面所有的记录,然后每条与另一表进行连接,不管能不能匹配上条件,最终都会保留。

    能匹配,正确保留,不能匹配其他字段制空null

    外连接分为两种:以某张表为主

    以左表为主: left join :左外连接

    以右表为主 right join :右外连接

    基本语法

    左表  left/right join 右表 on 左表.字段=右表.字段;

    例: select * from My_stu a left/right  join My_class  b

    On a.c_id=b.id

     虽然左连接和右连接有主表差异,但是显示的结果永远是左表数据在左边,右表数据在右边,左连接和右连接可以相互转

     自然连接

    Natural join :自动匹配连接条件,系统以字段名为匹配模式(同名字段作为条件,多个同名字段作为条件)

    自然连接分为自然内连接。自然外连接

    自然内连接 select * from My_stu

                 Natural join my_class;

    自然外连接 :左表 natural left/right join 右表

    例:select * from my_stu natural left/right join my_class;

    其实 内连接与外连接都可以模拟自然连接!!!!!!!!!

  • 相关阅读:
    推荐系统中的注意力机制——阿里深度兴趣网络(DIN)
    负样本采样及bias校准、ctr平滑
    todo提纲
    漫谈深度学习时代点击率预估技术进展 &&深度学习在推荐系统上的发展
    对数据分析的一点思考
    计算广告中常用深度学习网络
    pandas常见函数详细使用
    ann搜索算法(Approximate Nearest Neighbor)
    LintCode翻转字符串问题
    python常用库
  • 原文地址:https://www.cnblogs.com/lqh969696/p/9709730.html
Copyright © 2011-2022 走看看