SQL1999语法

来源:互联网 发布:go高级编程书籍 编辑:程序博客网 时间:2024/05/19 16:33

在此使用的“(+)”只适用于Oracle数据库;

交叉连接的作用

交叉连接作用于两个关系上,并且第一个关系的每个元组与第二关系的所有元组进行连接,就是位了产生笛卡尔积

语法:

         SELECT[DISTINCT]*| 列名称

         FROM表1名称 [CROSS JOIN 表2名称]

         [WHERE条件(s)]

         [ORDERBY 排序的字段 ASC|DESC, 排序的字段2 ASC|DESC]

EgSELECT *

         FROM emp CROSS JOIN dept;

自然连接的作用

一般来说,在进行多表连接的时候一定会存在关联字段消除笛卡尔积,而关联字段的名称一般会一样,如果不一样也会有部分的相同;一样的情况,就可以用自然连接消除这个笛卡尔积;

         自然连接(NATURALJOIN)运算作用于两个关系,最终会通过两个关系产生出一种关系作为结果。自然连接只考虑哪些在两个关系模式中都出现的属性上取得相同的元组对;

语法:

         SELECT[DESTINCT]*|列名称

         FROM表1 [NATRURAL JOIN 表2]

         [WHERE 条件]

         [ORDERBY 排序的字段1 ASC|DESC]

EG: SELECT *

         FROM emp NATRURAL JOIN dept;

理解USING子句的使用

通过自然连接可以直接使用关联字段消除笛卡尔积,那么现在的两张表中没有存在这种关联字段的话,就可以通过USING子句完成笛卡尔积的消除;

语法:

         SELECT[DISTINGCT] *| 列名称

         FROM表1 [JOIN 表2 USING(关联列名称)]

         同上;

EgSELECT *

FROM emp JOIN dept USING(deptno);

 

理解ON子句的使用

         在之前编写等值连接时,采用关联字段进行笛卡尔积的消除,那么用户在SQL:1999语法之中通过ON子句可以由用户手工设置一个关联条件;

语法:

         SELECT*|列名称

         FROM     表1 [JOIN 表2 ON (关联条件)]

         同上;

Eg:SELECT*

FROM emp e JOIN salgrade s ON (e.sal between s.losal ands.hisal);

理解外链接的使用

在数据查询中外连接一共分为三种:左外连接,右外连接,全外连接;

语法:

         SELECT*|列名称

         FROM表1 [LEFT|RIGHT|FULL OUTER JOIN 表2 ON(关联条件)]

         同上;

注:对于左或右外连接可以使用(+),但是全外连接无法使用,全外连接只能使用SQL:1999Y语法;

Eg:SELECT *

FROM emp e RIGHT OUTER join dept d ON (e.deptno = d.deptno);

Eg:SELECT *

FROM emp e FULL OUTER join dept d ON (e.deptno = d.deptno);

 

原创粉丝点击