zoukankan      html  css  js  c++  java
  • SQL学习笔记4

    列的 SQL 别名语法

    SELECT column_name AS alias_name
    FROM table_name;

    表的 SQL 别名语法

    SELECT column_name(s)
    FROM table_name AS alias_name;
     

    在下面的情况下,使用别名很有用:

    • 在查询中涉及超过一个表
    • 在查询中使用了函数
    • 列名称很长或者可读性差
    • 需要把两个列或者多个列结合在一起

    表的别名实例

    下面的 SQL 语句选取 "菜鸟教程" 的所访问记录。我们使用 "Websites" 和 "access_log" 表,并分别为它们指定表别名 "w" 和 "a"(通过使用别名让 SQL 更简短):

    实例

    SELECT w.name, w.url, a.count, a.date 
    FROM Websites AS w, access_log AS a 
    WHERE a.site_id=w.id and w.name="菜鸟教程";

    执行输出结果:

    不带别名的相同的 SQL 语句:

    实例

    SELECT Websites.name, Websites.url, access_log.count, access_log.date 
    FROM Websites, access_log 
    WHERE Websites.id=access_log.site_id and Websites.name="菜鸟教程";

    执行输出结果:

     
    ***********************************************************************************************************************************************************************************************************************

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

    最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。

    不同的 SQL JOIN

    在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:

    • INNER JOIN:如果表中有至少一个匹配,则返回行
    • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
    • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN:只要其中一个表中存在匹配,则返回行
    inner join <= min(left join, right join)
    full join >= max(left join, right join)
     inner join < min(left join, right join) 时, full join > max(left join, right join)


    首先,连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。

    左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。

    外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。

    **********************************************************************************************************************************************************************************************************************

    INNER JOIN 关键字在表中存在至少一个匹配时返回行。

    SQL INNER JOIN 语法

    SELECT column_name(s)
    FROM table1
    INNER JOIN table2
    ON table1.column_name=table2.column_name;

    或:

    SELECT column_name(s)
    FROM table1
    JOIN table2
    ON table1.column_name=table2.column_name;

    注释:INNER JOIN 与 JOIN 是相同的。

  • 相关阅读:
    ETL之Kettle
    java 之webmagic 网络爬虫
    【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解
    【AC自动机】【字符串】【字典树】AC自动机 学习笔记
    【前缀和】【two-pointer】【贪心】洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题解
    【KMP】【矩阵加速】【递推】洛谷 P3193 [HNOI2008]GT考试 题解
    【KMP】洛谷P2375 [NOI2014]动物园 题解
    【KMP】【字符串】KMP字符串匹配算法 学习笔记
    【DP】+【贪心】【前缀和】洛谷P2893 [USACO08FEB]修路Making the Grade 题解
    【字典树】【树】【二进制】bzoj1954/POJ3764The xor-longest Path 题解
  • 原文地址:https://www.cnblogs.com/chickenwrap/p/9966869.html
Copyright © 2011-2022 走看看