You are on page 1of 9

SULEYMAN DEMIREL UNIVERSITY

Laboratory work 3
Telzhan Mukhadas, Yerlan Yeldesov
What did we learn in the
laboratory work 4

OUR PLAN
Create database
Write code using SQL/PL
Protect lab work

ЦЕНТР «ЗИМКОР» | ДИЗАЙН-МЫШЛЕНИЕ


BATTLESHIP

ITS LABOTORY WORK LIKE MINI


PROJECT . WE MUST CREATE
TABLES BATTLES AND SHIP . AND
WRITE SOLUTIONS FOR PROBLEMS

TABLE SHIP
CREATE TABLE SHIPS( INSERT INTO SHIPS
SHIPS_NAME VARCHAR(255), (ships_name, yearLaunched, country, numGuns, gunSize, displacement)
YEARLAUNCHED NUMBER, VALUES ('Abyssinia','1937','USA','3','12','41673');
COUNTRY VARCHAR(255), INSERT INTO SHIPS
NUMGUNS NUMBER, (ships_name, yearLaunched, country, numGuns, gunSize, displacement)
GUNSIZE NUMBER, VALUES ('Helgoland','1937','AZE','7','25','46505');
DISPLACEMENT NUMBER
TABLE BATTLES
СREATE TABLE BATTLES INSERT INTO Battles
SHIPSNAME VARCHAR(255), (shipsname, battleName, result)
BATTLENAME VARCHAR(255), VALUES ('Abyssinia','Attack Of Unsung Heroes','shunk');
RESULT VARCHAR(255),
INSERT INTO Battles
(shipsname, battleName, result)
VALUES ('New Jersey','War Of Kings Glory','victory');
1 WHICH BATTLESHIPS LAUNCHED BEFORE 1930 HAD
16-INCH GUNS? LIST THEIR NAMES, THEIR COUNTRY,
AND THE NUMBER OF GUNS THEY CARRIED
begin
for i in (select ships.ships_name ,ships.country,ships.gunsize from ships
where yearlaunched<1930 and gunsize=16 )
loop
dbms_output.put_line(i.ships_name ||' '|| i.country ||' '|| i.gunsize);
end loop;
end;
4 LIST, FOR EACH COUNTRY, THE AVERAGE
NUMBER OF GUNS CARRIED BY THEIR
BATTLESHIPS.

set serveroutput on;


DECLARE
avg_numGuns ships.numGuns%Type;
CURSOR c_ships IS (SELECT country,avg(numGuns) as avg_n FROM ships group by
country) ;
BEGIN
FOR c_ship in c_ships
LOOP
DBMS_OUTPUT.put_line(c_ship.country ||' '|| c_ship.avg_n);
END LOOP;
END;

s
5 LIST ALL THE PAIRS OF COUNTRIES THAT
FOUGHT EACH OTHER IN BATTLES. LIST EACH
PAIR ONLY ONCE, AND LIST THEM WITH THE
COUNTRY THAT COMES FIRST IN
ALPHABETICAL ORDER FIRST.

set serveroutput on;


DECLARE
CURSOR c_ships IS SELECT DISTINCT s1.country as c1, s2.country as c2
FROM ships s1, ships s2, battles b1, battles b2
WHERE s1.ships_name=b1.ship AND s2.ships_name=b2.ship AND
b1.battleName=b2.battleName
AND s1.country < s2.country ORDER BY c1 ASC;
BEGIN
FOR c_ship in c_ships
LOOP
DBMS_OUTPUT.put_line(c_ship.c1 ||' ' ||c_ship.c2);
END LOOP;
END;

s
Thank you for your
attention

ID 200103387 , ID 200103084

You might also like