SQL> CREATE TABLE Flights (
2 no INTEGER PRIMARY KEY,
3 from_city VARCHAR(255),
4 to_city VARCHAR(255),
5 distance INTEGER,
6 departs TIMESTAMP,
7 arrives TIMESTAMP,
8 price REAL
9 );
Table created.
SQL> CREATE TABLE Aircraft (
2 aid INTEGER PRIMARY KEY,
3 aname VARCHAR(255),
4 cruisingrange INTEGER
5 );
Table created.
SQL> CREATE TABLE Employees (
2 eid INTEGER PRIMARY KEY,
3 ename VARCHAR(255),
4 salary INTEGER
5 );
Table created.
SQL> CREATE TABLE Certified (
2 eid INTEGER,
3 aid INTEGER,
4 PRIMARY KEY (eid, aid),
5 FOREIGN KEY (eid) REFERENCES Employees(eid),
6 FOREIGN KEY (aid) REFERENCES Aircraft(aid)
7 );
Table created.
SQL> INSERT INTO Flights VALUES
(1, 'Bengaluru', 'New Delhi', 1500, TO_TIMESTAMP('08-MAR-2024 08:00:00', 'DD-MON-YYYY
HH24:MI:SS'), TO_TIMESTAMP('08-MAR-2024 10:30:00', 'DD-MON-YYYY HH24:MI:SS'), 250.50);
1 row created.
INSERT INTO Flights VALUES
2 (2, 'New Delhi', 'Mumbai', 1200, TO_TIMESTAMP('08-MAR-2024 11:00:00', 'DD-MON-YYYY
HH24:MI:SS'), TO_TIMESTAMP('08-MAR-2024 13:30:00', 'DD-MON-YYYY HH24:MI:SS'), 200.75);
1 row created.
SQL> INSERT INTO Flights VALUES
2 (3, 'Mumbai', 'Chennai', 1000, TO_TIMESTAMP('08-MAR-2024 14:00:00', 'DD-MON-YYYY
HH24:MI:SS'), TO_TIMESTAMP('08-MAR-2024 16:30:00', 'DD-MON-YYYY HH24:MI:SS'), 180.25);
1 row created.
SQL> INSERT INTO Aircraft VALUES
2 (101, 'Boeing 737', 2000);
1 row created.
SQL> INSERT INTO Aircraft VALUES
2 (102, 'Airbus A320', 1800);
1 row created.
SQL> INSERT INTO Aircraft VALUES
2 (103, 'Boeing 747', 3000);
1 row created.
SQL> INSERT INTO Employees VALUES
2 (201, 'John Smith', 90000);
1 row created.
SQL> INSERT INTO Employees VALUES
2 (202, 'Alice Johnson', 85000);
1 row created.
SQL> INSERT INTO Employees VALUES
2 (203, 'Bob Brown', 95000);
1 row created.
1 row created.
SQL> INSERT INTO Certified VALUES
2 (201, 102);
1 row created.
SQL> INSERT INTO Certified VALUES
2 (202, 101);
1 row created.
SQL> INSERT INTO Certified VALUES
2 (202, 103);
1 row created.
SQL> INSERT INTO Certified VALUES
2 (203, 103);
1 row created.
1 SQL> SELECT DISTINCT A.aname
2 FROM Aircraft A
3 JOIN Certified C ON A.aid = C.aid
4 JOIN Employees E ON C.eid = E.eid
5 WHERE NOT EXISTS (
6 SELECT 1
7 FROM Certified C2
8 JOIN Employees E2 ON C2.eid = E2.eid
9 WHERE C2.aid = A.aid AND E2.salary <= 80000
10 );
ANAME
--------------------------------------------------------------------------------
Boeing 737
Boeing 747
Airbus A320
2 SQL> SELECT C.eid, MAX(A.cruisingrange) AS max_cruisingrange
2 FROM Certified C
3 JOIN Aircraft A ON C.aid = A.aid
4 GROUP BY C.eid
5 HAVING COUNT(*) > 3;
no rows selected
3
SQL> SELECT E.ename
2 FROM Employees E
3 WHERE E.salary < (
4 SELECT MIN(F.price)
5 FROM Flights F
6 WHERE F.from_city = 'Bengaluru' AND F.to_city = 'Frankfurt'
7 );
no rows selected
SQL> SELECT A.aname, AVG(E.salary) AS avg_salary
2 FROM Aircraft A
3 JOIN Certified C ON A.aid = C.aid
4 JOIN Employees E ON C.eid = E.eid
5 WHERE A.cruisingrange > 1000
6 GROUP BY A.aname;
ANAME
--------------------------------------------------------------------------------
AVG_SALARY
----------
Boeing 737
87500
Boeing 747
90000
Airbus A320
90000
5
SQL> SELECT DISTINCT E.ename
2 FROM Employees E
3 JOIN Certified C ON E.eid = C.eid
4 JOIN Aircraft A ON C.aid = A.aid
5 WHERE A.aname LIKE '%Boeing%';
ENAME
--------------------------------------------------------------------------------
John Smith
Alice Johnson
Bob Brown
SQL> SELECT DISTINCT A.aid
2 FROM Aircraft A
3 JOIN Certified C ON A.aid = C.aid
4 JOIN Flights F ON A.aid = F.no
5 WHERE F.from_city = 'Bengaluru' AND F.to_city = 'New Delhi';
no rows selected