ORACLE SQL AND ANSI SQL (common)

来源:互联网 发布:centos 7 nfs安装配置 编辑:程序博客网 时间:2024/06/05 17:17


子查询

SQL> select * from t3 where exists (select 1 from t4 where t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS---------- ------------------- -------        13 UET$                SYS         9 I_FILE#_BLOCK#      SYS        43 I_FILE1             SYSSQL> select * from t3 where exists (select 1 from t4 where t4.object_id  in t3.object_id);   OBJECT_ID OBJECT_TYPE         STATUS---------- ------------------- -------        13 UET$                SYS         9 I_FILE#_BLOCK#      SYS        43 I_FILE1             SYSSQL> select * from t3 where exists (select 1 from t4 where t3.object_id!=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS---------- ------------------- -------        13 UET$                SYS         9 I_FILE#_BLOCK#      SYS        43 I_FILE1             SYS        88 zbk                 zbkSQL> select * from t3 where exists (select 1 from t4 where t4.object_id not  in t3.object_id);    OBJECT_ID OBJECT_TYPE         STATUS---------- ------------------- -------        13 UET$                SYS         9 I_FILE#_BLOCK#      SYS        43 I_FILE1             SYS        88 zbk                 zbk


等值连接


SQL> select * from t3,t4 where t3.object_id=t4.object_id;                                                                                            OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYSSQL> select * from t3 join t4 using (object_id); OBJECT_ID OBJECT_TYPE         STATUS  OBJECT_NAME                    OWNER---------- ------------------- ------- ------------------------------ ------------------------------        13 UET$                SYS     UET$                           SYS         9 I_FILE#_BLOCK#      SYS     I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS     I_FILE1                        SYS

SQL> select * from t3 join t4  on  (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS


外连接

SQL> select * from t3 left outer join t4  on (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS        88 zbk                 zbkSQL> select * from t3 left  join t4  on (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS        88 zbk                 zbkSQL> select * from t3,t4 where t3.object_id=t4.object_id(+); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS        88 zbk                 zbk

SQL> select * from t3 right outer join t4  on (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS                                               38 I_OBJ3                         SYS                                               51 I_CON1                         SYS                                                7 I_TS#                          SYS                                               56 I_CDEF4                        SYS7 rows selected.SQL> select * from t3 right  join t4  on (t3.object_id=t4.object_id);       OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS                                               38 I_OBJ3                         SYS                                               51 I_CON1                         SYS                                                7 I_TS#                          SYS                                               56 I_CDEF4                        SYS7 rows selected.SQL> select * from t3,t4 where t3.object_id(+)=t4.object_id; OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS                                               38 I_OBJ3                         SYS                                               51 I_CON1                         SYS                                                7 I_TS#                          SYS                                               56 I_CDEF4                        SYS7 rows selected.


全连接

SQL> select * from t3 full outer join t4 on (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS                                               51 I_CON1                         SYS                                               38 I_OBJ3                         SYS                                                7 I_TS#                          SYS                                               56 I_CDEF4                        SYS        88 zbk                 zbk8 rows selected.SQL> select * from t3 full  join t4 on (t3.object_id=t4.object_id); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------        13 UET$                SYS             13 UET$                           SYS         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS                                               51 I_CON1                         SYS                                               38 I_OBJ3                         SYS                                                7 I_TS#                          SYS                                               56 I_CDEF4                        SYS        88 zbk                 zbk8 rows selected.


ORACLE不支持这种写法,而应用上面的full jjoin

QL> select * from t3 ,t4 where t3.object_id(+)=t4.object_id(+);select * from t3 ,t4 where t3.object_id(+)=t4.object_id(+)                                          *ERROR at line 1:ORA-01468: a predicate may reference only one outer-joined tableSQL> select * from t3,t4 where t3.object_id(+)=t4.object_id  2  union   3  select * from t3,t4 where t3.object_id=t4.object_id(+); OBJECT_ID OBJECT_TYPE         STATUS   OBJECT_ID OBJECT_NAME                    OWNER---------- ------------------- ------- ---------- ------------------------------ ------------------------------         9 I_FILE#_BLOCK#      SYS              9 I_FILE#_BLOCK#                 SYS        13 UET$                SYS             13 UET$                           SYS        43 I_FILE1             SYS             43 I_FILE1                        SYS        88 zbk                 zbk                                                7 I_TS#                          SYS                                               38 I_OBJ3                         SYS                                               51 I_CON1                         SYS                                               56 I_CDEF4                        SYS8 rows selected.



0 0
原创粉丝点击