0% found this document useful (0 votes)
15 views4 pages

Lab2 6q

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

Lab2 6q

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

mysql> create database flight1;

Query OK, 1 row affected (0.07 sec)

mysql> use flight1;


Database changed
mysql> CREATE TABLE Flights ( flno INTEGER PRIMARY KEY, `from` VARCHAR(100)
NOT NULL, `to` VARCHAR(100) NOT NULL, distance INTEGER, departs TIME,
arrives TIME, price REAL);
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE Aircraft ( aid INTEGER PRIMARY KEY, aname VARCHAR(100)
NOT NULL, cruisingrange INTEGER);
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE Certified ( eid INTEGER, aid INTEGER, PRIMARY KEY
(eid, aid), FOREIGN KEY (eid) REFERENCES Employees(eid) ON DELETE NO ACTION,
FOREIGN KEY (aid) REFERENCES Aircraft(aid) ON DELETE NO ACTION);
ERROR 1824 (HY000): Failed to open the referenced table 'employees'
mysql> CREATE TABLE Employees ( eid INTEGER PRIMARY KEY, ename VARCHAR(100)
NOT NULL, salary INTEGER);
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE Certified ( eid INTEGER, aid INTEGER, PRIMARY KEY
(eid, aid), FOREIGN KEY (eid) REFERENCES Employees(eid) ON DELETE NO ACTION,
FOREIGN KEY (aid) REFERENCES Aircraft(aid) ON DELETE NO ACTION);
Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO Employees (eid, ename, salary) VALUES(1, 'John Doe', 120000),(2,
'Jane Smith', 95000),(3, 'Alice Johnson', 130000),(4, 'Bob Brown', 80000);
Query OK, 4 rows affected (0.07 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select *from employees;


+-----+---------------+--------+
| eid | ename | salary |
+-----+---------------+--------+
| 1 | John Doe | 120000 |
| 2 | Jane Smith | 95000 |
| 3 | Alice Johnson | 130000 |
| 4 | Bob Brown | 80000 |
+-----+---------------+--------+
4 rows in set (0.00 sec)

mysql> INSERT INTO Aircraft (aid, aname, cruisingrange) VALUES(1, 'Boeing 737',
3000),(2, 'Airbus A320', 3500),(3, 'Boeing 777', 5000),(4, 'Cessna 172', 800);
Query OK, 4 rows affected (0.07 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select *from aircraft;


+-----+-------------+---------------+
| aid | aname | cruisingrange |
+-----+-------------+---------------+
| 1 | Boeing 737 | 3000 |
| 2 | Airbus A320 | 3500 |
| 3 | Boeing 777 | 5000 |
| 4 | Cessna 172 | 800 |
+-----+-------------+---------------+
4 rows in set (0.00 sec)
mysql> INSERT INTO Certified (eid, aid) VALUES(1, 1),(1, 2),(2, 4),(3, 2),(3, 3);
Query OK, 5 rows affected (0.07 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select *from certified;


+-----+-----+
| eid | aid |
+-----+-----+
| 1 | 1 |
| 1 | 2 |
| 3 | 2 |
| 3 | 3 |
| 2 | 4 |
+-----+-----+
5 rows in set (0.00 sec)

mysql> INSERT INTO Flights (flno, `from`, `to`, distance, departs, arrives, price)
VALUES(1, 'Madison', 'Chicago', 150, '08:00:00', '09:00:00', 100.00),(2, 'Chicago',
'New York', 800, '10:00:00', '13:00:00', 200.00),(3, 'Madison', 'Atlanta', 700,
'09:00:00', '11:30:00', 150.00),(4, 'Atlanta', 'New York', 600, '12:00:00',
'14:00:00', 180.00),(5, 'Madison', 'Dallas', 850, '07:00:00', '09:30:00', 200.00),
(6, 'Dallas', 'New York', 1200, '10:00:00', '13:30:00', 250.00);
Query OK, 6 rows affected (0.07 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql> select *from flights;


+------+---------+----------+----------+----------+----------+-------+
| flno | from | to | distance | departs | arrives | price |
+------+---------+----------+----------+----------+----------+-------+
| 1 | Madison | Chicago | 150 | 08:00:00 | 09:00:00 | 100 |
| 2 | Chicago | New York | 800 | 10:00:00 | 13:00:00 | 200 |
| 3 | Madison | Atlanta | 700 | 09:00:00 | 11:30:00 | 150 |
| 4 | Atlanta | New York | 600 | 12:00:00 | 14:00:00 | 180 |
| 5 | Madison | Dallas | 850 | 07:00:00 | 09:30:00 | 200 |
| 6 | Dallas | New York | 1200 | 10:00:00 | 13:30:00 | 250 |
+------+---------+----------+----------+----------+----------+-------+
6 rows in set (0.00 sec)

mysql> CREATE VIEW CertifiedLongRange AS


-> SELECT e.eid, e.ename, a.aid, a.aname
-> FROM Employees e
-> JOIN Certified c ON e.eid = c.eid
-> JOIN Aircraft a ON c.aid = a.aid
-> WHERE a.cruisingrange > 1000;
Query OK, 0 rows affected (0.07 sec)

mysql> SELECT f.from, f.to


-> FROM Flights f
-> WHERE NOT EXISTS (
-> SELECT e.eid
-> FROM Employees e
-> WHERE e.salary > 100000
-> AND NOT EXISTS (
-> SELECT c.aid
-> FROM Certified c
-> JOIN Aircraft a ON c.aid = a.aid
-> WHERE e.eid = c.eid AND f.distance <= a.cruisingrange
-> )
-> );
+---------+----------+
| from | to |
+---------+----------+
| Madison | Chicago |
| Chicago | New York |
| Madison | Atlanta |
| Atlanta | New York |
| Madison | Dallas |
| Dallas | New York |
+---------+----------+
6 rows in set (0.00 sec)

mysql> SELECT DISTINCT f1.departs


-> FROM Flights f1
-> JOIN Flights f2 ON f1.to = f2.from
-> JOIN Flights f3 ON f2.to = f3.from
-> WHERE f1.from = 'Madison' AND f3.to = 'New York'
-> AND f3.arrives <= '18:00:00'
-> UNION
-> SELECT DISTINCT f1.departs
-> FROM Flights f1
-> JOIN Flights f2 ON f1.to = f2.from
-> WHERE f1.from = 'Madison' AND f2.to = 'New York'
-> AND f2.arrives <= '18:00:00';
+----------+
| departs |
+----------+
| 08:00:00 |
| 09:00:00 |
| 07:00:00 |
+----------+
3 rows in set (0.05 sec)

mysql> SELECT (SELECT AVG(e1.salary) FROM Employees e1


-> WHERE e1.eid IN (SELECT DISTINCT eid FROM Certified))
-> - (SELECT AVG(e2.salary) FROM Employees e2) AS salary_difference;
+-------------------+
| salary_difference |
+-------------------+
| 8750.0000 |
+-------------------+
1 row in set (0.06 sec)

mysql> SELECT e.ename, e.salary


-> FROM Employees e
-> WHERE e.eid NOT IN (SELECT DISTINCT c.eid FROM Certified c)
-> AND e.salary < (SELECT AVG(e1.salary) FROM Employees e1
-> WHERE e1.eid IN (SELECT DISTINCT c.eid FROM Certified c));
+-----------+--------+
| ename | salary |
+-----------+--------+
| Bob Brown | 80000 |
+-----------+--------+
1 row in set (0.00 sec)

mysql> SELECT e.ename


-> FROM Employees e
-> WHERE e.eid IN (
-> SELECT c.eid
-> FROM Certified c
-> JOIN Aircraft a ON c.aid = a.aid
-> GROUP BY c.eid
-> HAVING MIN(a.cruisingrange) > 1000
-> );
+---------------+
| ename |
+---------------+
| John Doe |
| Alice Johnson |
+---------------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM CertifiedLongRange;


+-----+---------------+-----+-------------+
| eid | ename | aid | aname |
+-----+---------------+-----+-------------+
| 1 | John Doe | 1 | Boeing 737 |
| 1 | John Doe | 2 | Airbus A320 |
| 3 | Alice Johnson | 2 | Airbus A320 |
| 3 | Alice Johnson | 3 | Boeing 777 |
+-----+---------------+-----+-------------+
4 rows in set (0.00 sec)

mysql> SELECT DISTINCT e.ename


-> FROM Employees e
-> JOIN Certified c ON e.eid = c.eid
-> JOIN Aircraft a ON c.aid = a.aid
-> WHERE a.cruisingrange < 3000
-> AND e.eid NOT IN (
-> SELECT c.eid
-> FROM Certified c
-> JOIN Aircraft a ON c.aid = a.aid
-> WHERE a.aname LIKE '%Boeing%'
-> );
+------------+
| ename |
+------------+
| Jane Smith |
+------------+
1 row in set (0.00 sec)

mysql>

You might also like