0% found this document useful (0 votes)
12 views25 pages

Adbms Assignment

Uploaded by

chandarohit201
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views25 pages

Adbms Assignment

Uploaded by

chandarohit201
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Rohit chanda; Sub-Advanced Database managemnet system

Assignment- 1

mysql> USE ROHIT;


Database changed

Table S:
mysql> CREATE TABLE S(
-> SID varchar(10),SNAME varchar(20),STATUS int(10),CITY
varchar(20),PRIMARY KEY (SID)
-> );
mysql> INSERT INTO S (SID, SNAME, STATUS, CITY) VALUES
('S1','SMITH','20','LONDON');
Query OK, 1 row affected (0.07 sec)

mysql> INSERT INTO S (SID, SNAME, STATUS, CITY) VALUES


('S2','JONES','10','PARIS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO S (SID, SNAME, STATUS, CITY) VALUES


('S3','BLAKE','30','PARIS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO S (SID, SNAME, STATUS, CITY) VALUES


('S4','CLARK','20','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO S (SID, SNAME, STATUS, CITY) VALUES


('S5','ADMAS','30','ATHENS');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT *FROM S;


+-----+-------+--------+--------+
| SID | SNAME | STATUS | CITY |
+-----+-------+--------+--------+
| S1 | SMITH | 20 | LONDON |
| S2 | JONES | 10 | PARIS |
| S3 | BLAKE | 30 | PARIS |
| S4 | CLARK | 20 | LONDON |
| S5 | ADMAS | 30 | ATHENS |
+-----+-------+--------+--------+
5 rows in set (0.01 sec)

1
Rohit chanda; Sub-Advanced Database managemnet system

Table P:

mysql> CREATE TABLE P(


-> PID varchar(10),PNAME varchar(20),COLOR varchar(10),WT
int(20),CITY varchar(20),PRIMARY KEY (PID)
-> );
Query OK, 0 rows affected, 1 warning (0.10 sec)
mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES
('P1','NUT','RED','12','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES


('P2','BOLT','GREEN','17','PARIS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES


('P3','SCREW','BLUE','17','ROME');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES


('P4','SCREW','RED','14','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES


('P5','CAM','BLUE','12','PARIS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO P (PID, PNAME, COLOR, WT, CITY) VALUES


('P6','COG','RED','19','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT *FROM P;


+-----+-------+-------+------+--------+
| PID | PNAME | COLOR | WT | CITY |
+-----+-------+-------+------+--------+
| P1 | NUT | RED | 12 | LONDON |
| P2 | BOLT | GREEN | 17 | PARIS |
| P3 | SCREW | BLUE | 17 | ROME |
| P4 | SCREW | RED | 14 | LONDON |
| P5 | CAM | BLUE | 12 | PARIS |
| P6 | COG | RED | 19 | LONDON |
+-----+-------+-------+------+--------+
6 rows in set (0.00 sec)

2
Rohit chanda; Sub-Advanced Database managemnet system

Table SP:
mysql> CREATE TABLE SP(
-> SID varchar(10),
-> PID varchar(10),
-> QTY int,
-> PRIMARY KEY (SID,PID),
-> FOREIGN KEY (SID) REFERENCES S(SID),
-> FOREIGN KEY (PID) REFERENCES P(PID)
-> );
Query OK, 0 rows affected (0.14 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P1','300');
Query OK, 1 row affected (0.02 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P2','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P3','400');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P4','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P5','100');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S1','P6','100');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S2','P1','300');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S2','P2','400');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S3','P2','200');
Query OK, 1 row affected (0.01 sec)

3
Rohit chanda; Sub-Advanced Database managemnet system

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S4','P2','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S4','P4','300');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SP(SID, PID, QTY) VALUES


('S4','P5','400');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT *FROM SP;
+-----+-----+------+
| SID | PID | QTY |
+-----+-----+------+
| S1 | P1 | 300 |
| S1 | P2 | 200 |
| S1 | P3 | 400 |
| S1 | P4 | 200 |
| S1 | P5 | 100 |
| S1 | P6 | 100 |
| S2 | P1 | 300 |
| S2 | P2 | 400 |
| S3 | P2 | 200 |
| S4 | P2 | 200 |
| S4 | P4 | 300 |
| S4 | P5 | 400 |
+-----+-----+------+
12 rows in set (0.00 sec)

Queries & SQL statements:

1. Get the full details of all the parts in London.


mysql> SELECT *FROM P WHERE CITY='LONDON';
+-----+-------+-------+------+--------+
| PID | PNAME | COLOR | WT | CITY |
+-----+-------+-------+------+--------+
| P1 | NUT | RED | 12 | LONDON |
| P4 | SCREW | RED | 14 | LONDON |
| P6 | COG | RED | 19 | LONDON |
+-----+-------+-------+------+--------+
3 rows in set (0.04 sec)

2. Get SID for suppliers who supply the part P1.


mysql> SELECT SID FROM SP WHERE PID='P1';
+-----+
| SID |

4
Rohit chanda; Sub-Advanced Database managemnet system

+-----+
| S1 |
| S2 |
+-----+
2 rows in set (0.01 sec)

3. Get all part-color/part-city combinations.

mysql> SELECT COLOR,CITY FROM P;


+-------+--------+
| COLOR | CITY |
+-------+--------+
| RED | LONDON |
| GREEN | PARIS |
| BLUE | ROME |
| RED | LONDON |
| BLUE | PARIS |
| RED | LONDON |
+-------+--------+
6 rows in set (0.00 sec)

4. Get all SID/PID doubles such that all are co-located.

mysql> SELECT DISTINCT SID, S.CITY,PID, P.CITY FROM S, P


-> WHERE (S.CITY = P.CITY);
+-----+--------+-----+--------+
| SID | CITY | PID | CITY |
+-----+--------+-----+--------+
| S4 | LONDON | P1 | LONDON |
| S1 | LONDON | P1 | LONDON |
| S3 | PARIS | P2 | PARIS |
| S2 | PARIS | P2 | PARIS |
| S4 | LONDON | P4 | LONDON |
| S1 | LONDON | P4 | LONDON |
| S3 | PARIS | P5 | PARIS |
| S2 | PARIS | P5 | PARIS |
| S4 | LONDON | P6 | LONDON |
| S1 | LONDON | P6 | LONDON |
+-----+--------+-----+--------+
10 rows in set (0.03 sec)

5. Get all SID/PID doubles such that they’re not co-located.

mysql> SELECT SID, S.CITY, PID , P.CITY FROM S, P


-> WHERE NOT(S.CITY = P.CITY);

5
Rohit chanda; Sub-Advanced Database managemnet system

+-----+--------+-----+--------+
| SID | CITY | PID | CITY |
+-----+--------+-----+--------+
| S5 | ATHENS | P1 | LONDON |
| S3 | PARIS | P1 | LONDON |
| S2 | PARIS | P1 | LONDON |
| S5 | ATHENS | P2 | PARIS |
| S4 | LONDON | P2 | PARIS |
| S1 | LONDON | P2 | PARIS |
| S5 | ATHENS | P3 | ROME |
| S4 | LONDON | P3 | ROME |
| S3 | PARIS | P3 | ROME |
| S2 | PARIS | P3 | ROME |
| S1 | LONDON | P3 | ROME |
| S5 | ATHENS | P4 | LONDON |
| S3 | PARIS | P4 | LONDON |
| S2 | PARIS | P4 | LONDON |
| S5 | ATHENS | P5 | PARIS |
| S4 | LONDON | P5 | PARIS |
| S1 | LONDON | P5 | PARIS |
| S5 | ATHENS | P6 | LONDON |
| S3 | PARIS | P6 | LONDON |
| S2 | PARIS | P6 | LONDON |
+-----+--------+-----+--------+
20 rows in set (0.01 sec)

6. Get PID for parts supplied by a supplier in London.

mysql> SELECT PID,CITY FROM P WHERE CITY='LONDON';


+-----+--------+
| PID | CITY |
+-----+--------+
| P1 | LONDON |
| P4 | LONDON |
| P6 | LONDON |
+-----+--------+
3 rows in set (0.00 sec)

7. Get all pairs of cities such that a supplier in the first


city supplies in the second city.

mysql> SELECT DISTINCT S.CITY, P.CITY


-> FROM S, P WHERE EXISTS
-> (SELECT * FROM SP WHERE SP.SID = S.SID AND
SP.PID = P.PID AND NOT S.CITY=P.CITY );

6
Rohit chanda; Sub-Advanced Database managemnet system

+--------+--------+
| CITY | CITY |
+--------+--------+
| LONDON | PARIS |
| LONDON | ROME |
| PARIS | LONDON |
+--------+--------+
3 rows in set (0.01 sec)
Assignment: 2

Table J:
mysql> CREATE TABLE J(
-> JID varchar(10),JNAME varchar(20),CITY
varchar(20),PRIMARY KEY (JID)
-> );
Query OK, 0 rows affected (0.04 sec)

mysql>
mysql> INSERT INTO J (JID, JNAME, CITY) VALUES
('J1','SORTER','PARIS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J2','DISPLAY','ROME');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J3','OCR','ATHENS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J4','CONSOLE','ATHENS');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J5','RAID','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J6','EDS','OSLO');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO J (JID, JNAME, CITY) VALUES


('J7','TAPE','LONDON');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT *FROM J;

7
Rohit chanda; Sub-Advanced Database managemnet system

+-----+---------+--------+
| JID | JNAME | CITY |
+-----+---------+--------+
| J1 | SORTER | PARIS |
| J2 | DISPLAY | ROME |
| J3 | OCR | ATHENS |
| J4 | CONSOLE | ATHENS |
| J5 | RAID | LONDON |
| J6 | EDS | OSLO |
| J7 | TAPE | LONDON |
+-----+---------+--------+
7 rows in set (0.00 sec)

Table SPJ:
mysql> CREATE TABLE SPJ(
-> SID varchar(10),
-> PID varchar(10),
-> JID varchar(10),
-> QTY int,
-> PRIMARY KEY(SID,PID,JID),
-> FOREIGN KEY (PID) REFERENCES P(PID),
-> FOREIGN KEY (SID) REFERENCES S(SID),
-> FOREIGN KEY (JID) REFERENCES J(JID)
-> );
Query OK, 0 rows affected (0.11 sec)

mysql>
mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES
('S1','P1','J1','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S1','P1','J4','700');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J1','400');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J2','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J3','200');

8
Rohit chanda; Sub-Advanced Database managemnet system

Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J4','500');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J5','600');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J6','400');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P3','J7','800');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S2','P5','J2','100');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S3','P3','J1','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S3','P4','J2','500');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S4','P6','J3','300');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S4','P6','J7','300');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P2','J2','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P2','J4','100');
Query OK, 1 row affected (0.01 sec)

9
Rohit chanda; Sub-Advanced Database managemnet system

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P5','J5','500');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P5','J7','100');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P6','J2','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P1','J4','100');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P3','J4','200');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P4','J4','800');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P5','J4','400');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO SPJ (SID, PID, JID, QTY) VALUES


('S5','P6','J4','500');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT *FROM SPJ;


+-----+-----+-----+------+
| SID | PID | JID | QTY |
+-----+-----+-----+------+
| S1 | P1 | J1 | 200 |
| S1 | P1 | J4 | 700 |
| S2 | P3 | J1 | 400 |
| S2 | P3 | J2 | 200 |
| S2 | P3 | J3 | 200 |
| S2 | P3 | J4 | 500 |
| S2 | P3 | J5 | 600 |
| S2 | P3 | J6 | 400 |
| S2 | P3 | J7 | 800 |
| S2 | P5 | J2 | 100 |
| S3 | P3 | J1 | 200 |

10
Rohit chanda; Sub-Advanced Database managemnet system

| S3 | P4 | J2 | 500 |
| S4 | P6 | J3 | 300 |
| S4 | P6 | J7 | 300 |
| S5 | P1 | J4 | 100 |
| S5 | P2 | J2 | 200 |
| S5 | P2 | J4 | 100 |
| S5 | P3 | J4 | 200 |
| S5 | P4 | J4 | 800 |
| S5 | P5 | J4 | 400 |
| S5 | P5 | J5 | 500 |
| S5 | P5 | J7 | 100 |
| S5 | P6 | J2 | 200 |
| S5 | P6 | J4 | 500 |
+-----+-----+-----+------+
24 rows in set (0.00 sec)

Queries & SQL statements:

1. Get the full details of project.

mysql> SELECT *FROM J;


+-----+---------+--------+
| JID | JNAME | CITY |
+-----+---------+--------+
| J1 | SORTER | PARIS |
| J2 | DISPLAY | ROME |
| J3 | OCR | ATHENS |
| J4 | CONSOLE | ATHENS |
| J5 | RAID | LONDON |
| J6 | EDS | OSLO |
| J7 | TAPE | LONDON |
+-----+---------+--------+
7 rows in set (0.00 sec)

2. Get the full details of project in London.

mysql> SELECT *FROM J WHERE CITY ='LONDON';


+-----+-------+--------+
| JID | JNAME | CITY |
+-----+-------+--------+
| J5 | RAID | LONDON |
| J7 | TAPE | LONDON |
+-----+-------+--------+
2 rows in set (0.00 sec)

3. Get the suppliers numbers for suppliers who supply


project J1.

11
Rohit chanda; Sub-Advanced Database managemnet system

mysql> SELECT SID, JID FROM SPJ WHERE JID='J1';


+-----+-----+
| SID | JID |
+-----+-----+
| S1 | J1 |
| S2 | J1 |
| S3 | J1 |
+-----+-----+
3 rows in set (0.00 sec)

4. Get all the shipments where the quantity is in the range


of 300 to 750 inclusive.

mysql> SELECT SID, QTY FROM SPJ WHERE QTY>='300' AND


QTY<='750';
+-----+------+
| SID | QTY |
+-----+------+
| S1 | 700 |
| S2 | 400 |
| S2 | 500 |
| S2 | 600 |
| S2 | 400 |
| S3 | 500 |
| S4 | 300 |
| S4 | 300 |
| S5 | 400 |
| S5 | 500 |
| S5 | 500 |
+-----+------+
11 rows in set (0.09 sec)
5. Get all the part color/ part city combinations.

mysql> SELECT DISTINCT COLOR, CITY FROM P;


+-------+--------+
| COLOR | CITY |
+-------+--------+
| RED | LONDON |
| GREEN | PARIS |
| BLUE | ROME |
| BLUE | PARIS |
+-------+--------+
4 rows in set (0.02 sec)

12
Rohit chanda; Sub-Advanced Database managemnet system

6. Get all the supplier number part number project number


triples such that the indicate supplier, part and project
are collocated.

mysql> SELECT DISTINCT SID, S.CITY, PID, P.CITY, JID, J.CITY


FROM S, P, J
-> WHERE S.CITY = P.CITY AND P.CITY = J.CITY;
+-----+--------+-----+--------+-----+--------+
| SID | CITY | PID | CITY | JID | CITY |
+-----+--------+-----+--------+-----+--------+
| S2 | PARIS | P5 | PARIS | J1 | PARIS |
| S3 | PARIS | P5 | PARIS | J1 | PARIS |
| S2 | PARIS | P2 | PARIS | J1 | PARIS |
| S3 | PARIS | P2 | PARIS | J1 | PARIS |
| S1 | LONDON | P6 | LONDON | J5 | LONDON |
| S4 | LONDON | P6 | LONDON | J5 | LONDON |
| S1 | LONDON | P4 | LONDON | J5 | LONDON |
| S4 | LONDON | P4 | LONDON | J5 | LONDON |
| S1 | LONDON | P1 | LONDON | J5 | LONDON |
| S4 | LONDON | P1 | LONDON | J5 | LONDON |
| S1 | LONDON | P6 | LONDON | J7 | LONDON |
| S4 | LONDON | P6 | LONDON | J7 | LONDON |
| S1 | LONDON | P4 | LONDON | J7 | LONDON |
| S4 | LONDON | P4 | LONDON | J7 | LONDON |
| S1 | LONDON | P1 | LONDON | J7 | LONDON |
| S4 | LONDON | P1 | LONDON | J7 | LONDON |
+-----+--------+-----+--------+-----+--------+
16 rows in set (0.00 sec)

7. Get all the supplier number part number project number


triples such that the indicate supplier, part and project
are not collocated.

mysql> SELECT SPJ.SID,S.CITY,SPJ.PID,P.CITY,SPJ.JID,J.CITY


FROM SPJ
JOIN S ON SPJ.SID = S.SID
JOIN P ON SPJ.PID = P.PID
JOIN J ON SPJ.JID = J.JID
WHERE S.CITY <> P.CITY AND
S.CITY <> J.CITY AND
P.CITY <> J.CITY;
+-----+--------+-----+--------+-----+--------+
| SID | CITY | PID | CITY | JID | CITY |
+-----+--------+-----+--------+-----+--------+
| S2 | Paris | P3 | Rome | J3 | Athens |
| S2 | Paris | P3 | Rome | J4 | Athens |
| S2 | Paris | P3 | Rome | J5 | London |

13
Rohit chanda; Sub-Advanced Database managemnet system

| S2 | Paris | P3 | Rome | J6 | Oslo |


| S2 | Paris | P3 | Rome | J7 | London |
| S3 | Paris | P4 | London | J2 | Rome |
| S5 | Athens | P2 | Paris | J2 | Rome |
| S5 | Athens | P5 | Paris | J5 | London |
| S5 | Athens | P5 | Paris | J7 | London |
| S5 | Athens | P6 | London | J2 | Rome |
+-----+--------+-----+--------+-----+--------+
8. Get all supplier number/ part number project number
triples such that no two indicated supplier, part and
project are collocated.

mysql> SELECT SPJ.SID,S.CITY,SPJ.PID,P.CITY,SPJ.JID,J.CITY


FROM SPJ
JOIN S ON SPJ.SID = S.SID
JOIN P ON SPJ.PID = P.PID
JOIN J ON SPJ.JID = J.JID
WHERE S.CITY <> P.CITY
OR S.CITY <> J.CITY
OR P.CITY <> J.CITY;
+-----+--------+-----+--------+-----+--------+
| SID | CITY | PID | CITY | JID | CITY |
+-----+--------+-----+--------+-----+--------+
| S1 | London | P1 | London | J1 | Paris |
| S1 | London | P1 | London | J4 | Athens |
| S2 | Paris | P3 | Rome | J1 | Paris |
| S2 | Paris | P3 | Rome | J2 | Rome |
| S2 | Paris | P3 | Rome | J3 | Athens |
| S2 | Paris | P3 | Rome | J4 | Athens |
| S2 | Paris | P3 | Rome | J5 | London |
| S2 | Paris | P3 | Rome | J6 | Oslo |
| S2 | Paris | P3 | Rome | J7 | London |
| S2 | Paris | P5 | Paris | J2 | Rome |
| S3 | Paris | P3 | Rome | J1 | Paris |
| S3 | Paris | P4 | London | J2 | Rome |
| S4 | London | P6 | London | J3 | Athens |
| S5 | Athens | P1 | London | J4 | Athens |
| S5 | Athens | P2 | Paris | J2 | Rome |
| S5 | Athens | P2 | Paris | J4 | Athens |
| S5 | Athens | P3 | Rome | J4 | Athens |
| S5 | Athens | P4 | London | J4 | Athens |
| S5 | Athens | P5 | Paris | J4 | Athens |
| S5 | Athens | P5 | Paris | J5 | London |
| S5 | Athens | P5 | Paris | J7 | London |
| S5 | Athens | P6 | London | J2 | Rome |
| S5 | Athens | P6 | London | J4 | Athens |
+-----+--------+-----+--------+-----+--------+

14
Rohit chanda; Sub-Advanced Database managemnet system

9. Get full details for parts supplied by a supplier in


London.

mysql> SELECT * FROM P WHERE PID IN


(SELECT PID FROM SPJ WHERE SID IN
(SELECT SID FROM S WHERE CITY = "London"));

+-----+-------+-------+--------+--------+
| PID | PNAME | COLOR | WEIGHT | CITY |
+-----+-------+-------+--------+--------+
| P1 | Nut | Red | 12 | London |
| P6 | Cog | Red | 19 | London |
+-----+-------+-------+--------+--------+
2 rows in set (0.00 sec)

10. Get part numbers for parts supplied by a supplier in


London to a project in London.

mysql> SELECT PID,S.CITY


-> FROM SPJ, S, J
-> WHERE SPJ.SID= S.SID
-> AND SPJ.JID= J.JID
-> AND S.CITY= 'LONDON'
-> AND J.CITY= 'LONDON';
+-----+--------+
| PID | CITY |
+-----+--------+
| P6 | LONDON |
+-----+--------+
1 row in set (0.00 sec)

11. Get all pairs of city names such that a supplier in


the city supply supplies a project in the second city.

mysql> SELECT DISTINCT S.SID, S.CITY, J.CITY FROM S, J


-> WHERE EXISTS
-> (SELECT *FROM SPJ WHERE SPJ.SID = S.SID AND SPJ.JID =
J.JID );

+--------+--------+
| CITY | CITY |
+--------+--------+
| LONDON | ATHENS |
| LONDON | PARIS |
| PARIS | LONDON |
| PARIS | OSLO |
| PARIS | ATHENS |

15
Rohit chanda; Sub-Advanced Database managemnet system

| PARIS | ROME |
| PARIS | PARIS |
| LONDON | LONDON |
| ATHENS | LONDON |
| ATHENS | ATHENS |
| ATHENS | ROME |
+--------+--------+
11 rows in set (0.17 sec)

12. Get part numbers for Paris supplied to a project by


a supplier in the same city in that project.

mysql> SELECT DISTINCT PID, PNAME FROM S,P,J WHERE


SID IN (SELECT SID FROM SPJ) AND
PID IN (SELECT PID FROM SPJ) AND
S.CITY = J.CITY;

+-----+-------+
| PID | PNAME |
+-----+-------+
| P1 | Nut |
| P2 | Bolt |
| P3 | Screw |
| P4 | Screw |
| P5 | Cam |
| P6 | Cog |
+-----+-------+
6 rows in set (0.00 sec)

13. Get the project numbers for projects supplied by at


least one supplier not in the same city.

mysql> SELECT DISTINCT SPJ.SID, S.CITY, SPJ.JID,J.CITY FROM


SPJ, J, S
-> WHERE SPJ.JID=J.JID AND SPJ.SID=S.SID
-> AND J.CITY <> S.CITY;

+-----+--------+-----+--------+
| SID | CITY | JID | CITY |
+-----+--------+-----+--------+
| S1 | LONDON | J1 | PARIS |
| S1 | LONDON | J4 | ATHENS |
| S2 | PARIS | J2 | ROME |
| S2 | PARIS | J3 | ATHENS |
| S2 | PARIS | J4 | ATHENS |
| S2 | PARIS | J5 | LONDON |

16
Rohit chanda; Sub-Advanced Database managemnet system

| S2 | PARIS | J6 | OSLO |
| S2 | PARIS | J7 | LONDON |
| S3 | PARIS | J2 | ROME |
| S4 | LONDON | J3 | ATHENS |
| S5 | ATHENS | J2 | ROME |
| S5 | ATHENS | J5 | LONDON |
| S5 | ATHENS | J7 | LONDON |
+-----+--------+-----+--------+
13 rows in set (0.00 sec)

14. Get all pairs of part numbers such some supplier


supplies a both indicated parts.
mysql> SELECT DISTINCT a.PID, b.PID
-> FROM SPJ a, SPJ b
-> WHERE a.SID = b.SID
-> AND a.PID > b.PID;
+-----+-----+
| PID | PID |
+-----+-----+
| P2 | P1 |
| P3 | P1 |
| P3 | P2 |
| P4 | P3 |
| P4 | P1 |
| P4 | P2 |
| P5 | P3 |
| P5 | P1 |
| P5 | P2 |
| P5 | P4 |
| P6 | P1 |
| P6 | P2 |
| P6 | P3 |
| P6 | P4 |
| P6 | P5 |
+-----+-----+
15 rows in set (0.02 sec)
15. Get the total number of projects supplied by
supplier S1.

mysql> SELECT SID, COUNT(DISTINCT JID)


-> FROM SPJ WHERE SID= 'S1';
+------+---------------------+
| SID | COUNT(DISTINCT JID) |
+------+---------------------+
| S1 | 2 |
+------+---------------------+
1 row in set (0.23 sec)

17
Rohit chanda; Sub-Advanced Database managemnet system

16. Get the total quantity of part P1 supplied by


supplier S1.
mysql> SELECT SID, SUM(QTY)
-> FROM SPJ WHERE SID= 'S1'
-> AND PID= 'P1';
+------+----------+
| SID | SUM(QTY) |
+------+----------+
| S1 | 900 |
+------+----------+
1 row in set (0.41 sec)

17. For each part being supplied to project, get the


part number, the project numbers, and the corresponding
total quantity.
mysql> SELECT PID, JID, SUM(QTY)
-> FROM SPJ
-> GROUP BY PID,JID;
+-----+-----+----------+
| PID | JID | SUM(QTY) |
+-----+-----+----------+
| P1 | J1 | 200 |
| P1 | J4 | 800 |
| P3 | J1 | 600 |
| P3 | J2 | 200 |
| P3 | J3 | 200 |
| P3 | J4 | 700 |
| P3 | J5 | 600 |
| P3 | J6 | 400 |
| P3 | J7 | 800 |
| P5 | J2 | 100 |
| P4 | J2 | 500 |
| P6 | J3 | 300 |
| P6 | J7 | 300 |
| P2 | J2 | 200 |
| P2 | J4 | 100 |
| P4 | J4 | 800 |
| P5 | J4 | 400 |
| P5 | J5 | 500 |
| P5 | J7 | 100 |
| P6 | J2 | 200 |
| P6 | J4 | 500 |
+-----+-----+----------+
21 rows in set (0.01 sec)

18
Rohit chanda; Sub-Advanced Database managemnet system

18. Get part numbers for part supplied to some project


in an average quantity of more than 350.
mysql> SELECT PID FROM P WHERE EXISTS
-> (SELECT * FROM J WHERE 350 < (
-> SELECT AVG(QTY) FROM SPJ WHERE
-> SPJ.PID = P.PID
-> AND SPJ.JID = J.JID));
+-----+
| PID |
+-----+
| P1 |
| P3 |
| P4 |
| P5 |
| P6 |
+-----+
5 rows in set (0.00 sec)

19. Get project names for project supplied by supplier


S1.
mysql> SELECT JNAME FROM SPJ, J
-> WHERE SPJ.JID =J.JID AND SID= 'S1';
+---------+
| JNAME |
+---------+
| SORTER |
| CONSOLE |
+---------+
2 rows in set (0.00 sec)

20. Get colors of parts supplied by supplier S1.


mysql> SELECT COLOR FROM SPJ, P
-> WHERE SPJ.PID =P.PID AND SID= 'S1';

+-------+
| COLOR |
+-------+
| RED |
| RED |
+-------+
2 rows in set (0.00 sec)

21. Get part numbers of part supply to any project in


London.

19
Rohit chanda; Sub-Advanced Database managemnet system

mysql> SELECT PID, PNAME FROM P WHERE PID IN


(SELECT PID FROM SPJ WHERE JID IN
(SELECT JID FROM J WHERE CITY = "London"));

+-----+-------+
| PID | PNAME |
+-----+-------+
| P3 | Screw |
| P5 | Cam |
| P6 | Cog |
+-----+-------+
3 rows in set (0.00 sec)
22. Get project numbers for projects using at least one
part available from supplier S1.
mysql> SELECT JID, JNAME FROM J WHERE JID IN
(SELECT JID FROM SPJ WHERE SID = "S1");

+-----+---------+
| JID | JNAME |
+-----+---------+
| J1 | Sorter |
| J4 | Console |
+-----+---------+
2 rows in set (0.00 sec)

23. Get supplier numbers from suppliers supplying at


least one part supplied by at least one supplier who
supplies at least one red part.
mysql> SELECT DISTINCT S.SID, S.SNAME, P.COLOR FROM S,P WHERE
SID IN (SELECT SID FROM SPJ) AND
PID IN (SELECT PID FROM P WHERE COLOR = "Red");

+-----+-------+-------+
| SID | SNAME | COLOR |
+-----+-------+-------+
| S1 | Smith | Red |
| S2 | Jones | Red |
| S3 | Blake | Red |
| S4 | Clark | Red |
| S5 | Adams | Red |
+-----+-------+-------+
5 rows in set (0.01 sec)

24. Get supplier numbers for suppliers with a status


lower than that of supplier S1.

20
Rohit chanda; Sub-Advanced Database managemnet system

mysql> SELECT SID FROM S WHERE STATUS < ( SELECT STATUS FROM S
WHERE SID ='S1' ) ;
+-----+
| SID |
+-----+
| S2 |
+-----+
1 row in set (0.04 sec)

25. Get project numbers for projects whose city is first


in the alphabetic list of such cities.
mysql> SELECT JID, CITY FROM J WHERE CITY= (SELECT MIN(CITY)
FROM J) ;
+-----+--------+
| JID | CITY |
+-----+--------+
| J3 | ATHENS |
| J4 | ATHENS |
+-----+--------+
2 rows in set (0.00 sec)

26. Get project numbers of project supplied with part P1


in an average quantity greater than the greatest quantity
in which any part is supplied to project J1.
mysql> SELECT JID FROM SPJ WHERE PID='P1' GROUP BY JID HAVING
AVG(QTY)>( SELECT MAX(QTY) FROM SPJ WHERE JID='J1' ) ;
Empty set (0.01 sec)

27. Get suppliers numbers for suppliers supplying some


project with part P1 in a quantity greater than the
average shipment quantity of part P1 for that project.
mysql> SELECT SID FROM SPJ X WHERE X.PID='P1' AND QTY
>( SELECT AVG(QTY) FROM SPJ Y WHERE Y.PID='P1' AND X.JID=Y.JID
) ;

+-----+
| Sid |
+-----+
| S1 |
+-----+
1 row in set (0.00 sec)

28. Get project numbers for projects not supplied with


any red part by any London supplier.
mysql> SELECT JID FROM J WHERE NOT EXISTS
-> (SELECT * FROM SPJ, P, S WHERE J.JID = SPJ.JID

21
Rohit chanda; Sub-Advanced Database managemnet system

-> AND SPJ.SID= S.SID AND S.CITY= 'London'


-> AND SPJ.PID= P.PID AND P.COLOR= 'Red');
+-----+
| JID |
+-----+
| J2 |
| J5 |
| J6 |
+-----+
3 rows in set (0.37 sec)
29. Get project number for projects supplied entirely
by supplier S1.
mysql>SELECT JID, JNAME FROM J WHERE JID IN
->(SELECT JID FROM SPJ WHERE SID = "S1");

+-----+---------+
| JNO | JNAME |
+-----+---------+
| J1 | Sorter |
| J4 | Console |
+-----+---------+
30. Get parts number for parts supplied to all projects
in London.
mysql> SELECT DISTINCT PID FROM SPJ
-> WHERE JID IN (SELECT JID FROM J WHERE CITY =
'LONDON' );
+-----+
| PID |
+-----+
| P3 |
| P5 |
| P6 |
+-----+
3 rows in set (0.00 sec)
31. Get supplier numbers for supplier who supply the
same parts to all the projects.
mysql> SELECT SID FROM S WHERE EXISTS
-> (SELECT * FROM P WHERE NOT EXISTS
-> (SELECT * FROM J WHERE NOT EXISTS
-> (SELECT * FROM SPJ WHERE SPJ.JID = J.JID
-> AND SPJ.PID= P.PID AND SPJ.SID= S.SID)));

+-----+
| SID |
+-----+
| S2 |

22
Rohit chanda; Sub-Advanced Database managemnet system

+-----+
1 row in set (0.02 sec)

32. Get project number for projects supplied with at


least all parts available from supplier.
mysql> SELECT JID FROM SPJ GROUP BY JID
-> HAVING COUNT(DISTINCT SID)= 1;
+-----+
| JID |
+-----+
| J6 |
+-----+
1 row in set (0.00 sec)

33. Get all cities in which at least one supplier, part


or project is located.
mysql> SELECT DISTINCT CITY FROM
-> (SELECT CITY FROM S
-> UNION
-> SELECT CITY FROM P
-> UNION
-> SELECT CITY FROM J
-> ) AS AllLocations;
+--------+
| CITY |
+--------+
| LONDON |
| PARIS |
| ATHENS |
| ROME |
| OSLO |
+--------+
5 rows in set (0.00 sec)

34. Get part numbers for parts that are supplied either
by a London supplier or to a London project.
mysql> SELECT DISTINCT P.PID FROM P
-> JOIN SPJ ON P.PID = SPJ.PID
-> JOIN S ON SPJ.SID= S.SID
-> JOIN J ON SPJ.JID = J.JID
-> WHERE S.CITY = 'London' OR J.CITY = 'London';

+-----+
| PID |
+-----+
| P1 |

23
Rohit chanda; Sub-Advanced Database managemnet system

| P3 |
| P6 |
| P5 |
+-----+
4 rows in set (0.01 sec)
35. Get supplier-number/part-number pairs such that the
indicated supplier doesn’t supply the indicated parts.
mysql> SELECT SID, PID FROM S, P WHERE NOT EXISTS
-> (SELECT *FROM SPJ WHERE SPJ.SID = S.SID AND SPJ.PID=
P.PID)
-> ORDER BY SID,PID;
+-----+-----+
| SID | PID |
+-----+-----+
| S1 | P2 |
| S1 | P3 |
| S1 | P4 |
| S1 | P5 |
| S1 | P6 |
| S2 | P1 |
| S2 | P2 |
| S2 | P4 |
| S2 | P6 |
| S3 | P1 |
| S3 | P2 |
| S3 | P5 |
| S3 | P6 |
| S4 | P1 |
| S4 | P2 |
| S4 | P3 |
| S4 | P4 |
| S4 | P5 |
+-----+-----+
18 rows in set (0.11 sec)

36. Get all pairs of supplier numbers, SX and SY say,


such that SX and SY supply exactly same set of pairs.
mysql> SELECT DISTINCT A.SID AS SX, B.SID AS SY, A.PID FROM
-> SPJ AS A CROSS JOIN SPJ AS B WHERE
-> A.PID = B.PID AND A.SID > B.SID;

24
Rohit chanda; Sub-Advanced Database managemnet system

+----+----+-----+
| SX | SY | PID |
+----+----+-----+
| S5 | S1 | P1 |
| S3 | S2 | P3 |
| S5 | S2 | P3 |
| S5 | S3 | P3 |
| S5 | S3 | P4 |
| S5 | S2 | P5 |
| S5 | S4 | P6 |
+----+----+-----+
7 rows in set (0.26 sec)

25

You might also like