zoukankan      html  css  js  c++  java
  • 联表操作

      

    一、联表查询:内联结、外联结

      1、笛卡儿积:将第一个表的每一行和第二个表的每一行联接成一行生成的所有数据。如果不止两个表的话依此类推。如果只想选择其中的一部分数据的话,可以使用where子句

      2、内联结(inner join on或join on ):根据两个或多个表中的列之间的关系,从这些表中查询数据:

        a)、创建三张表,user_role为t_user和t_role的关联表:

     1 create table t_user(
     2   id number primary key,
     3   name varchar2(30),
     4   sex varchar2(10)
     5 );
     6 create table t_role(
     7     id number primary key,
     8     post varchar2(30),--置位
     9     pay number --薪资
    10 );
    11 create table user_role(
    12     user_id number references t_user(id) ,
    13     role_id number references t_role(id)
    14 );

        b)、查询时采用  表名(inner) join 表名 on 关联条件   进行查询:

    1 select t_user.name,t_user.sex,t_role.post,t_role.pay from t_user inner join user_role on t_user.id = user_role.user_id 
    2 inner join t_role on t_role.id=user_role.role_id;

      3、外连接:左外连接,右外连接,完全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。通常省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。

        

    1 select *from t_user left join t_role on t_role.id=t_user.id;  --左边的表保留全部的信息,右边的表没有匹配到信息则显示为null
    2 select *from t_user right join t_role on t_role.id=t_user.id; --右边的表保留全部的信息,左边的表没有匹配到信息则显示为null
    3 select *from t_user full join t_role on t_role.id=t_user.id;  --左右连边的表都保留全部的信息,如果对方没有匹配到则对方显示为null

        

      

  • 相关阅读:
    Eclipse工作间的基本配置。
    多态的 好处和弊端。
    线程转换状态。
    成员内部类如何访问。
    实现runnable接口启动线程相比继承Thread类启动线程的优点。
    Java中的命名规范。
    内部类的访问特点。
    那天无意间又看到一篇关于心流的文章
    科技爱好者周刊139
    形势与政策 期末考试
  • 原文地址:https://www.cnblogs.com/czj-zhm/p/5879640.html
Copyright © 2011-2022 走看看