Oarcle 之连接查询

        连接查询:连接查询是关系数据库中最主要的查询,主要包括内连接外连接和交叉连接等。通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询。(来自360百科)

如何进行表的连接查询

  两种方式:1. sql 1992 和 2. sql 1999

    1.1992语法

      select table .column,table2.column

      from table1 .table2

      where table 1.column1=table2.column2;

      *where 后跟表的连接条件

连接类型:

  1.笛卡尔积(表X表)

    select * from emp,dept;

  2.等值连接(列=列)

    查询员工的薪水等级

    select e.name,d.dname from emp e ,dept d where e.deptno=d.deptno

  3.非等级连接(列!=列)

    查询员工的薪水等级

    select e.ename ,s.grade from emp e, salgrade s where e.sal between s.losal and  s.hisal;

  4.自连接(表自己连接自己)

    查询员工上司的姓名:以“XXX的上司是xxx”方式显示

    select e1.ename ||'的上司是'||e2.ename from emp e1,emp e2 where e1.mgr =e2.empno;

  5.外连接(在满足一张表的内容都显示的基础上,连接另外以张表,如果连接匹配则正常显示,连接不匹配,另外一张表补null)

    select e.eneam,d.dname from emp e, dept d where e.deptno = d.deptno;

    “(+)” 在右边,我们称这次查询为“左外连接查询”
    “(+)” 在左边,我们成这次查询为“右外连接查询”
    “(+)” 在等号哪一边,哪张表就补null

  注*:因为会补null,所以不同的左右外连接会出现两个表的行数不相等,多的行数会用null来填充不匹配的数据

猜你喜欢

转载自www.cnblogs.com/weishenme/p/10742843.html