Skip to content

Instantly share code, notes, and snippets.

@mgechev
Created March 9, 2011 10:03
Show Gist options
  • Save mgechev/861981 to your computer and use it in GitHub Desktop.
Save mgechev/861981 to your computer and use it in GitHub Desktop.
09.03.2011 - Exercise3 - Unit 2
SET SCHEMA SHIPS;
--Напишете заявка, която извежда името на корабите по-тежки от 35000
SELECT SHIPS.NAME
FROM SHIPS, CLASSES
WHERE CLASSES.DISPLACEMENT > 35000 AND SHIPS.CLASS = CLASSES.CLASS;
--Напишете заявка, която извежда имената, водоизместимостта и броя оръжия
--на всички кораби участвали в битката при ‘Guadalcanal’
SELECT SHIPS.NAME, CLASSES.DISPLACEMENT, CLASSES.NUMGUNS
FROM SHIPS, CLASSES, OUTCOMES
WHERE SHIPS.CLASS = CLASSES.CLASS AND SHIPS.NAME = OUTCOMES.SHIP
AND OUTCOMES.BATTLE = 'Guadalcanal';
--Напишете заявка, която извежда имената на тези държави, които имат кораби от тип ‘bb’ и
--‘bc’ едновременно
--TO FIX!!!!!!!
SELECT DISTINCT CLASSES.COUNTRY
FROM CLASSES, SHIPS
WHERE CLASSES.TYPE = 'bb' OR CLASSES.TYPE = 'bc' AND SHIPS.NAME = CLASSES.CLASS;
--Напишете заявка, която извежда имената на тези битки с три кораби на една и съща държава
SELECT DISTINCT OUTCOMES.BATTLE
FROM OUTCOMES, CLASSES AS C1, CLASSES AS C2, CLASSES AS C3, SHIPS
WHERE C1.COUNTRY = C2.COUNTRY AND C2.COUNTRY = C3.COUNTRY AND C1.CLASS <> C2.CLASS
AND C2.CLASS <> C3.CLASS AND C1.CLASS = SHIPS.CLASS
AND SHIPS.NAME = OUTCOMES.SHIP;
--Напишете заявка, която извежда имената на тези кораби, които са били повредени в една битка,
--но по късно са участвали в друга битка
SELECT DISTINCT O1.SHIP
FROM BATTLES AS B1, OUTCOMES AS O1, OUTCOMES AS O2, BATTLES AS B2
WHERE B1.DATE < B2.DATE AND B1.NAME = O1.BATTLE AND O1.RESULT = 'damaged'
AND O1.SHIP = O2.SHIP AND B2.NAME = O2.BATTLE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment