zoukankan      html  css  js  c++  java
  • Day04 多表查询

    1. 笛卡尔集
     
    笛卡尔集会在下面条件下产生:
    • 省略连接条件
    • 连接条件无效
    • 所有表中的所有行互相连接
     
    为了避免笛卡尔集, 可以在 WHERE加入有效的连接条件。
     
    2. Oracle连接
     
     
    3. 等值连接
     
     
    4. 表的别名
     
     
     
     
     
    5. 连接多个表
     
     
    6. 非等值连接
     
     
    7. 内连接和外连接
     
     
     
    8. 自连接
     
     
    9. 1999连接
     
     
     
    SQL语句的多表查询方式:
     
    例如:按照department_id查询employees(员工表)和departments(部门表)
    的信息。
    方式一(通用型):SELECT ... FROM ... WHERE
    SELECT e.last_name,e.department_id,d.department_name
    FROM employees e,departments d
    where e.department_id = d.department_id
     
    方式二:SELECT ... FROM ... NATURAL JOIN ...
    有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id)
    SELECT last_name,department_id,department_name
    FROM employees
    NATURAL JOIN departments
     
    方式三:SELECT ... JOIN ... USING ...
    有局限性:好于方式二,但若多表的连接列列名不同,此法不合适
    SELECT last_name,department_id,department_name
    FROM employees
    JOIN departments
    USING(department_id)
     
    方式四:SELECT ... FROM ... JOIN ... ON ...
    常用方式,较方式一,更易实现外联接(左、右、满)
    SELECT last_name,e.department_id,department_name
    FROM employees e
    JOIN departments d
    ON e.department_id = d.department_id
     
     
    --内连接
        1)
        --等值连接
        --不等值连接
        2)
        --非自连接
        --自连接
     
    --外连接
        --左外连接、右外连接、满外连接
     
  • 相关阅读:
    微信证书发布涉及到的问题
    C# Timer自带定时器
    微信accesstoken回调
    c#数组乱序,打乱数组
    JS 数组乱序
    百度地图LBS开放平台AK一直没有用
    C# 微信支付证书使用
    提交失败问题一:检测到有潜在危险
    apache如何发布地图服务
    Java后端进阶教程
  • 原文地址:https://www.cnblogs.com/fengze/p/6663950.html
Copyright © 2011-2022 走看看