84 lines
1.4 KiB
SQL
84 lines
1.4 KiB
SQL
-- set of numbers is a table
|
|
-- create one set with 3 elements
|
|
|
|
create table myset1 (element number);
|
|
|
|
insert into myset1 values (1);
|
|
insert into myset1 values (2);
|
|
insert into myset1 values (3);
|
|
|
|
commit;
|
|
|
|
-- check if 1 is an element
|
|
|
|
select 'TRUE' BOOL from dual
|
|
where 1 in
|
|
(select element from myset1);
|
|
|
|
-- create second set with 3 elements
|
|
|
|
create table myset2 (element number);
|
|
|
|
insert into myset2 values (1);
|
|
insert into myset2 values (5);
|
|
insert into myset2 values (6);
|
|
|
|
commit;
|
|
|
|
-- union sets
|
|
|
|
select element from myset1
|
|
union
|
|
select element from myset2;
|
|
|
|
-- intersection
|
|
|
|
select element from myset1
|
|
intersect
|
|
select element from myset2;
|
|
|
|
-- difference
|
|
|
|
select element from myset1
|
|
minus
|
|
select element from myset2;
|
|
|
|
-- subset
|
|
|
|
-- change myset2 to only have 1 as element
|
|
|
|
delete from myset2 where not element = 1;
|
|
|
|
commit;
|
|
|
|
-- check if myset2 subset of myset1
|
|
|
|
select 'TRUE' BOOL from dual
|
|
where 0 = (select count(*) from
|
|
(select element from myset2
|
|
minus
|
|
select element from myset1));
|
|
|
|
-- equality
|
|
|
|
-- change myset1 to only have 1 as element
|
|
|
|
delete from myset1 where not element = 1;
|
|
|
|
commit;
|
|
|
|
-- check if myset2 subset of myset1 and
|
|
-- check if myset1 subset of myset2 and
|
|
|
|
select 'TRUE' BOOL from dual
|
|
where
|
|
0 = (select count(*) from
|
|
(select element from myset2
|
|
minus
|
|
select element from myset1)) and
|
|
0 =
|
|
(select count(*) from
|
|
(select element from myset1
|
|
minus
|
|
select element from myset2));
|