Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Enter password:
Connected.
SQL>
3 3 sname varchar2(10),
4* 4 city varchar2(10),
Table created.
3 cname varchar2(10),
4 city varchar2(10),
5 rating number(4),
6 snum number(4),
Table created.
3 amount number(8),
5 cnum number(4),
6 snum number(4),
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
2 ,100);
1 row created.
1 row created.
2 200);
1 row created.
2 ',300);
1 row created.
2 ',100);
1 row created.
2 ',300);
1 row created.
2 100);
1 row created.
Table altered.
1 row created.
2 ;
1 row created.
2 );
1 row created.
2 );
1 row created.
2 );
1 row created.
1 row created.
2 );
1 row created.
2 );
1 row created.
2 );
1 row created.
1 row updated.
1 row updated.
SQL> update customers set snum=1002 where cnum=2003;
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
2 ;
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
1 row updated.
SNUM
1001
1003
1002
1002
1001
2008 chinmay surat 300
1007
1004
7 rows selected.
12
13
11
15
10
SNUM
1007
3003 767.19 10-MAR-97 2001
1002
1007
1003
1002
1001
1002
1001
9 rows selected.
MAX(AMOUNT)
-----------
5160.45
MAX(AMOUNT)
-----------
1098.16
SQL> select count(odate) from orderX where odate='10-Mar-1997';
COUNT(ODATE)
------------
COUNT(ONUM)
-----------
AVG(AMOUNT)
-----------
2750.92222
COUNT(SNUM)
-----------
10-MAR-97 767.19
8 rows selected.
MAX(AMOUNT)
-----------
5160.45
COUNT(DISTINCTCITY)
-------------------
MIN(AMOUNT)
-----------
767.19
4723
5160.45
75.75
18.69
1713.23
6 rows selected.
COUNT(SNUM)
-----------
2 um;
um
ERROR at line 2:
CNAME SNAME
---------- ---------------
harsh piyush
gita anand
lalit sejal
govind sejal
chirag piyush
chinmay rajesh
pratik miti
7 rows selected.
2 where customers.city=salesmen.city;
no rows selected
8 rows selected.
CNAME SNAME
---------- ---------------
harsh piyush
gita anand
lalit sejal
govind sejal
chirag piyush
chinmay rajesh
pratik miti
7 rows selected.
8 rows selected.
CNUM
2002
3010 1309.95 10-JUN-97 1002
2004
2004
2006
2006
2008
2008
7 rows selected.
CNUM CNAME
---------- ----------
2003 lalit
2004 govind
2008 chinmay
SNUM COMMISSION
---------- ----------
1002 13
1002 13
1002 13
1007 15
1007 15
1003 10
6 rows selected.
SQL> select c1.CNUM, c2.CNUM from Customers c1, Customers c2 group by c1.CNUM, c2.CNUM
HAVING c1.Rating=c2.Rating AND c1.CNUM!=c2.CNUM;
select c1.CNUM, c2.CNUM from Customers c1, Customers c2 group by c1.CNUM, c2.CNUM HAVING
c1.Rating=c2.Rating AND c1.CNUM!=c2.CNUM
ERROR at line 1:
SQL> Select CNUM, CNAME "Common cities with sejal customers", CITY from Customers where CITY IN
(select CITY from Customers where SNUM=(Select SNUM from Salesmen where SNAME='Sejal')) AND
CNUM NOT IN (select CNUM from Customers where SNUM=(Select SNUM from Salesmen where
SNAME='Sejal'));
Select CNUM, CNAME "Common cities with sejal customers", CITY from Customers where CITY IN (select
CITY from Customers where SNUM=(Select SNUM from Salesmen where SNAME='Sejal')) AND CNUM
NOT IN (select CNUM from Customers where SNUM=(Select SNUM from Salesmen where
SNAME='Sejal'))
ERROR at line 1:
SNUM SNAME
1001 piyush
1002 sejal
1002 sejal
1001 piyush
SQL> select s1.SNUM, s1.SNAME, s2.SNUM, s2.SNAME, s1.CITY from Salesmen s1, Salesmen s2 where
s1.CITY=s2.CITY AND s1.SNUM!=s2.SNUM;
CITY
london
london
SQL> select c1.CNUM, c1.CNAME, o.ONUM from Customers c1, orderX o where o.CNUM=c1.CNUM;
9 rows selected.
SQL> select * from OrderX where AMOUNT > (select AVG(AMOUNT) from OrderX where ODATE='10-
APRIL-97');
SNUM
1002
1007
1003
1001
1002
3011 9891.88 10-JUN-97 2006
1001
6 rows selected.
SQL> select AVG(Commission) "avg cmssn of london SM" from Salesmen where CITY='London';
----------------------
SQL> select AVG(Commission) "avg cmssn of london SM" from Salesmen where CITY='london';
----------------------
11.5
SQL> select * from OrderX where SNUM=(select SNUM from Customers where CNAME='harsh');
SNUM
1001
1001
SQL> select * from OrderX where SNUM=(select SNUM from Customers where CNAME='chirag');
ONUM AMOUNT ODATE CNUM
SNUM
1001
1001
SQL> select * from OrderX where SNUM=(select SNUM from Salesmen where SNAME='miti');
no rows selected
SQL> select * from OrderX where SNUM IN(select SNUM from Salesmen where CITY='london');
SNUM
1001
1001
SNUM
1001
SQL> select SNUM, SNAME, Commission from Salesmen where SNUM IN (select SNUM from Customers
where CITY='london');
1001 piyush 12
SQL> select * from Customers where CNUM - (select SNUM from Salesmen where SNAME='sejal')
>=1000;
SNUM
1003
1002
1002
1001
1007
1004
6 rows selected.
SQL> select COUNT(*) "> avg rating in Surat" from Customers where Rating > (select AVG(Rating) from
Customers where CITY='surat');
---------------------
SQL> select * from OrderX where CNUM=(select CNUM from Customers where CNAME='chirag');
SNUM
1001
1001
SQL> select CNAME, Rating from Customers where CNUM IN (select CNUM from OrderX where
AMOUNT > (select AVG(AMOUNT) from OrderX));
CNAME RATING
---------- ----------
lalit 200
chirag 100
SQL> select SNUM, SUM(AMOUNT)"Total Amount" from OrderX group by SNUM HAVING
SUM(AMOUNT) > (select MAX(AMOUNT) from OrderX);
SNUM Total Amount
---------- ------------
1001 14614.88
SQL> select SNUM, SNAME from Salesmen where SNUM IN (select SNUM from OrderX group by
OrderX.SNUM HAVING COUNT(*) > 1);
SNUM SNAME
---------- ---------------
1001 piyush
1002 sejal
1007 rajesh
SQL> select * from OrderX o1 where AMOUNT >= (select AVG(AMOUNT) from OrderX o2 group by
CNUM Having o1.CNUM=o2.CNUM);
SNUM
1002
1007
1003
1002
3011 9891.88 10-JUN-97 2006
1001
6 rows selected.
SQL> select SUM(AMOUNT) "total amt per day where total >= 2000 of max amount on that day", ODATE
from OrderX o1 group by ODATE HAVING SUM(AMOUNT)>=((select MAX(AMOUNT) from OrderX o2
group by ODATE HAVING o1.ODATE=o2.ODATE)+2000);
select SUM(AMOUNT) "total amt per day where total >= 2000 of max amount on that day", ODATE from
OrderX o1 group by ODATE HAVING SUM(AMOUNT)>=((select MAX(AMOUNT) from OrderX o2 group by
ODATE HAVING o1.ODATE=o2.ODATE)+2000)
ERROR at line 1:
SQL> Select SNUM, SNAME from Salesmen s1 where CITY NOT IN (select CITY from Customers c1 where
c1.SNUM=s1.SNUM) AND CITY IN (select CITY from Customers);
SNUM SNAME
---------- ---------------
1004 miti
SQL>
SQL> Select count(distinct(SNUM)) "Number of salesemen having multiple customers" from Customers
c1 where Exists (select count(CNUM), SNUM from Customers c2 where c1.SNUM=c2.SNUM group by
SNUM having count(CNUM)>1);
Select count(distinct(SNUM)) "Number of salesemen having multiple customers" from Customers c1
where Exists (select count(CNUM), SNUM from Customers c2 where c1.SNUM=c2.SNUM group by
SNUM having count(CNUM)>1)
ERROR at line 1:
SQL> Select distinct(c1.SNUM), SNAME from Customers c1, Salesmen where c1.SNUM=Salesmen.SNUM
AND Exists (select count(CNUM), SNUM from Customers c2 where c1.SNUM=c2.SNUM group by SNUM
having count(CNUM)>1);
SNUM SNAME
---------- ---------------
1001 piyush
1002 sejal
SQL> Select distinct(c1.SNUM), SNAME from Customers c1, Salesmen where c1.SNUM=Salesmen.SNUM
AND Exists (select count(CNUM), SNUM from Customers c2 where c1.SNUM=c2.SNUM group by SNUM
having count(CNUM)=1);
SNUM SNAME
---------- ---------------
1007 rajesh
1003 anand
1004 miti
2 (select SNUM from OrderX o1 group by SNUM Having (Select count(*) from OrderX o2 where
o1.SNUM=o2.SNUM AND ODATE=(Select max(ODATE) from OrderX o3 where o3.SNUM=o2.SNUM))>1);
SNUM SNAME CITY COMMISSION
15
SQL> Select * from Customers where exists (Select * from Customers where city='Surat');
no rows selected
SQL> Select * from Customers where exists (Select * from Customers where city='surat');
SNUM
1001
1003
1002
1002
1001
1007
1004
7 rows selected.
2 (select SNUM from OrderX o1 group by SNUM Having (Select count(*) from OrderX o2 group by
CNUM, ODATE, SNUM having o1.SNUM=o2.SNUM AND ODATE=(Select max(ODATE) from OrderX o3
where o3.SNUM=o2.SNUM))>1);
15
SQL> select * from Salesmen inner join Customers c1 on Salesmen.SNUM=c1.SNUM where exists (select
Rating from Customers c2 where c2.CNUM=c1.CNUM AND Rating>=300);
13 2004 govind
15 2008 chinmay
SQL> select * from OrderX where Amount < (select min(amount) from OrderX, Customers where
OrderX.CNUM= Customers.CNUM AND City='London');
no rows selected
SQL> select * from OrderX where Amount < (select min(amount) from OrderX, Customers where
OrderX.CNUM= Customers.CNUM AND City='london');
SNUM
1007
1002
SQL> select * from Customers where Rating > (select max(rating) from Customers where City='Rome');
no rows selected
SQL> select * from Customers where Rating > (select max(rating) from Customers where City='rome');
SNUM
1002
1007
SQL> select * from Customers where Rating NOT In (select Rating from Customers where City='surat');
CNUM CNAME CITY RATING
SNUM
1004
1001
1001
1007
1002
SQL> select * from Customers where Rating >= (select max(rating) from Customers where SNUM=(select
SNUM from Salesmen where SNAME='Sejal'));
no rows selected
SQL> select * from Customers where Rating >= (select max(rating) from Customers where SNUM=(select
SNUM from Salesmen where SNAME='sejal'));
SNUM
1002
SQL> select * from OrderX where Amount > (select max(amount) from OrderX, Customers where
OrderX.CNUM= Customers.CNUM AND City='london');
SNUM
1002
1007
1003
1001
1002
1001
6 rows selected.
no rows selected
12 2001 harsh
11 2001 harsh
SQL> Select o1.Amount "max amount for a day", o1.SNUM, o1.ODATE, o2.Amount "min amount for a
day", o2.SNUM from OrderX o1, OrderX o2 where o1.Amount=(Select max(Amount) from OrderX o3
where o3.ODATE=o1.ODATE) AND o2.Amount=(Select min(Amount) from OrderX o4 where
o4.ODATE=o2.ODATE) AND o1.ODATE=o2.ODATE group by o1.ODATE, o1.SNUM, o2.SNUM,
o1.AMOUNT, o2.Amount;
max amount for a day SNUM ODATE min amount for a day SNUM
1309.95 1002
18.69 1007
75.75 1002
4723 1001
SQL>