zoukankan      html  css  js  c++  java
  • MySQL连接的使用

    为什么要有连接

    在实际使用创建表的时候我们不可能将所有的信息都放在一个表中,也就是不同的信息会放在不同的表中,所以我们最终需要的信息

    可能在多个表中,这就需要我们使用连接来查询我们想要的信息。

    有几种连接

    一般情况下我们主要使用下面三种连接:

    1. INNER JOIN(等值连接):获取两个表中字段匹配关系的记录。

    2. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

    3. RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

    使用连接的一般思路

    1. 首先要分析我们需要的数据存在哪些表中;

    2. 找到这些表中关联的数据列,没有关联的数据列的话一般不能进行连接查询;

    3. 确定使用哪种连接方式;

    4. 编写查询语句测试;

    假设我们有下面的两个表:
    student表:

    id name
    1 h
    2 j
    3 k
    4 l
    5 m
    6 n
    7 o

    grade表:

    id grade
    1 88
    2 90
    3 87
    4 85

    下面来看三种查询的结果:

    1. INNER JOIN
    select a.id,a.name,b.grade
    from student as a
    inner join grade as b
    on a.id=b.id;
    

    结果为:

    id name grade
    1 h 88
    2 j 90
    3 k 87
    4 l 85
    1. LEFT JOIN
    select a.id,a.name,b.grade
    from student as a
    left join grade as b
    on a.id=b.id;
    

    结果为:

    id name grade
    1 h 88
    2 j 90
    3 k 87
    4 l 85
    5 m NULL
    6 n NULL
    7 o NULL
    1. RIGHT JOIN
    select a.id,a.name,b.grade
    from student as a
    right join grade as b
    on a.id=b.id
    

    结果为:

    id name grade
    1 h 88
    2 j 90
    3 k 87
    4 l 85

    其中的左右表是根据放在join的左右来定义的。

  • 相关阅读:
    Linux命令行工具之pidstat命令
    Linux命令行工具之vmstat命令
    进程的状态与转换
    curl常用命令
    Linux常用命令
    TCP TIME_WAIT和CLOSE_WAIT
    OSI参考模型与TCP/IP参考模型与TCP/IP协议栈
    限流算法
    正向代理和反向代理
    oracle全量、增量备份
  • 原文地址:https://www.cnblogs.com/noob-l/p/13274038.html
Copyright © 2011-2022 走看看