Chinaunix首页 | 论坛 | 博客
  • 博客访问: 529730
  • 博文数量: 135
  • 博客积分: 3568
  • 博客等级: 中校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-19 17:52
文章分类

全部博文(135)

文章存档

2012年(29)

2011年(41)

2010年(26)

2009年(12)

2008年(9)

2007年(12)

2006年(6)

分类: Oracle

2009-06-02 10:37:11

目的:使用Oracle Sql删除A表中记录,但是要求仍在B表中使用的记录不应该删除。


SQL>
SQL> create table t1 (v1 number,v2 varchar(8));


表が作成されました。


SQL> insert into t1 values(1,'a');


1行が作成されました。

SQL> insert into t1 values(2,'b');

1行が作成されました。

SQL> insert into t1 values(3,'c');

1行が作成されました。

SQL> insert into t1 values(4,'d');

1行が作成されました。

SQL> insert into t1 values(5,'e');

1行が作成されました。

SQL> insert into t1 values(6,'f');

1行が作成されました。

SQL> insert into t1 values(7,'g');

1行が作成されました。

SQL> insert into t1 values(8,'h');

1行が作成されました。

SQL> create table t2 (v1 number,v2 varchar(8));

表が作成されました。

SQL> insert into t2 values(2,'b');

1行が作成されました。

SQL> insert into t2 values(4,'d');

1行が作成されました。

SQL> insert into t2 values(6,'f');

1行が作成されました。

SQL> insert into t2 values(8,'h');

1行が作成されました。

SQL>
SQL>
SQL> select * from t1;
        V1 V2
---------- --------
         1 a
         2 b
         3 c
         4 d
         5 e
         6 f
         7 g
         8 h

8行が選択されました。

SQL> select * from t2;

        V1 V2
---------- --------
         2 b
         4 d
         6 f
         8 h

SQL>

SQL> select * from t1 where(
  2 select 1 from t2
  3 where t1.v1 = t2.v1
  4 and t1.v2= t2.v2) is null;

        V1 V2
---------- --------
         1 a
         3 c
         5 e
         7 g

SQL>
SQL> delete from t1 where(
  2 select 1 from t2
  3 where t1.v1 = t2.v1
  4 and t1.v2= t2.v2) is null;

4行が削除されました。

SQL>
SQL> select * from t1;
        V1 V2
---------- --------
         2 b
         4 d
         6 f
         8 h

SQL> select * from t2;
        V1 V2
---------- --------
         2 b
         4 d
         6 f
         8 h
SQL>
SQL> drop table t1;


表が削除されました。


SQL> drop table t2;


表が削除されました。

SQL>
SQL>

阅读(1344) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~