• oracle数据库关联查询


    数据库范式(3种)

    关联查询:

    1外链接

    (1)左外链接

    (2)右外连接

    (3)全连接

    2内连接:

    create table T_class(

    classid integer primary key,

    className varchar2(255),

    studentcount integer

    )

    insert INTO T_class

    values

    (5,'班级5',56)

    CREATE table T_student(

    stuid integer primary key,

    stuName varchar2(255),

    stuScore float,

    classid integer

    )

    INSERT INTO t_student(stuid,stuName,stuScore)

    values

    (5,'小明',88)

    --插入后,班级5没有人,小明没有班级:下面我们开始查询

    --当我们在查询学生信息时,如果也想查询到他的所在班级信息,我们就需要将这两个表关联起来,就是我们的:关联查询

    select * FROM T_class

    select * FROM t_student

    --外连接(左外连接,右外连接,全连接)

    --左外连接:通过left 和join关键字,left表示关键字的左边是主表,右边是附表,无论两边的id是不是对应,

    --主表信息都展示出来,附表只展示ID能对应起来的数据,其他不能对应起来的数据都展示为null

    select * FROM t_student t1 LEFT JOIN t_class c1 on t1.classid=c1.classid

    --左外连接另一种写法:

    select * FROM t_student t1, t_class c1 WHERE t1.classid= c1.classid(+)

    --右外连接:通过right 和join关键字,right表示关键字右边是主表,左边是附表,

    select * FROM t_student t1 RIGHT join t_class c1 ON t1.classid=c1.classid

    --右外连接另一种写法:

    select * FROM t_student t1,t_class c1 where t1.classid(+)=c1.classid

    --全连接:通过full和join关键字连接,相当于两个表都是主表,所有信息都展示,全连接没有简写方式

    select * FROM t_student t1 full join t_class  c1 on t1.classid=c1.classid

    --上面的方式classid都显示了两次,下面的方法可以自定义显示内容

    select t1.*,c1.className,c1.studentcount FROM t_student t1 full join t_class c1 on t1.classid=c1.classid

    --内连接:只查询两个表通过id能对应起来的数据(相当于两个都是附表)

    select * FROM t_student t1 inner join t_class c1 on t1.classid=c1.classid

    --内连接简写:

    select * FROM t_student t1, t_class c1 WHERE t1.classid= c1.classid

  • 相关阅读:
    【转】揭秘令牌桶
    各空白字符说明
    【转】Python正则表达式指南
    python的urlparse
    【转】HTTP Header 详解
    ElasticSearch(六)底层索引控制
    ElasticeSearch(五)分布式索引架构
    Elasticsearch(四)优化用户体验
    ElasticSearch(三)不仅仅是查询
    ElasticSearch(二) 关于DSL
  • 原文地址:https://www.cnblogs.com/txf0324/p/11040142.html
Copyright © 2020-2023  润新知