1、创建两个表:
create table minors(
minor_id number primary key,
minor_name varchar2(30) not null,
credit_hour number(2)
);
create table minors2(
minor_id number primary key,
minor_name varchar2(30) not null,
credit_hour number(2)
);
2、分别插入数据:
insert into minors values(10101,'计算机原理',4);
insert into minors values(10201,'自动控制原理',3);
insert into minors values(10301,'工程制图原理',4);
insert into minors2 values(10201,'自动控制原理',3);
insert into minors2 values(10301,'工程制图原理',4);
3、使用in 和exists的查询语句:
1)、select minor_id,minor_name,credit_hour from minors where
minor_id in (select minor_id from minors2);
MINOR_ID MINOR_NAME CREDIT_HOUR
10201 自动控制原理 3
10301 工程制图原理 4
2)、select minor_id,minor_name,credit_hour from minors where
exists (select minor_id from minors2);
MINOR_ID MINOR_NAME CREDIT_HOUR
10101 计算机原理 4
10201 自动控制原理 3
10301 工程制图原理 4
3)、select minor_id,minor_name,credit_hour from minors a where
exists (select minor_id from minors2 b where a.minor_id =
b.minor_id);
MINOR_ID MINOR_NAME CREDIT_HOUR
10201 自动控制原理 3
10301 工程制图原理 4
4、注意:
1)、第一条查询语句在表minors2很大时,查询效率很慢;
2)、第二条语句中,因为子查询中未限制条件,导致查询结果为表minors的全表查询。