Практическая работа SQL запросы /laps, loom








2. Zaprosy na osnovanii dvuh tablic





SVOI ZAPROSY



CREATE TABLE laps(
lapsID int not null PRIMARY KEY identity(1,1),
nimi varchar(40) not null unique,
pikkus smallint,
synniaasta int null,
synnilinn varchar(15)
)
— tabeli kustutamine
drop table laps;
–tabeli kuvamine
select * from laps;
–tabeli andmete sisestamine
insert into laps (nimi, synnilinn, pikkus, synniaasta)
values (‘Juhan’, ‘Tallinn’, 160, 2007),
(‘Peeter’, ‘Tartu’, 150, 2007),
(‘Sveta’, ‘Tartu’, 130, 2008),
(‘Leena’, ‘Tartu’, 110, 2020),
(‘Vitalii’, ‘Tallinn’, 150, 2010),
(‘Andrey’, ‘Tallinn’, 140, 2008),
(‘Evgeni’, ‘Tallinn’, 150, 2009),
(‘Masha’, ‘Tartu’, 120, 2001),
(‘Inna’, ‘Tallinn’, 150, 2009);
CREATE TABLE loom(
loomID int not null PRIMARY KEY identity(1,1),
nimi varchar(40) not null,
kaal smallint, lapsID int,
FOREIGN KEY (lapsID) REFERENCES laps(lapsID)
)
select * from laps;
select * from loom;
insert into loom (nimi, kaal, lapsID)
values (‘dog Bim’, 25, 42),
(‘dog Ket’, 5, 45),
(‘kass Mini’, 4, 45),
(‘dog Dog’, 5, 46),
(‘dog Mur’, 6, 39);
— vse polja
select * from laps;
— pokazat ainult nimed
select nimi from laps;
— pokazhem imena na bukvu J
select nimi from laps
where nimi LIKE ‘J%’;
— paru stolbikov nimi i pikkus
select nimi, pikkus from laps
— imja na J i rost bolshe 130
select nimi, pikkus from laps
where nimi LIKE ‘J%’ AND pikkus >130;
— rost ot 110 do 130
select nimi, pikkus from laps
where pikkus >=110 AND pikkus <=130;
select nimi, pikkus from laps
where pikkus Between 110 AND 130;
–2. sortirovka DESK – po ubyvaniju, ASC – po vozrostaniju ili po umolchaniju
SELECT nimi, pikkus
FROM laps
ORDER by nimi DESC
–3. sortirovka po dvum poljam
SELECT nimi, pikkus
FROM laps
ORDER by nimi, pikkus
–5. srednij rost dlja detej rozhdennyh s 2000
–Агрегатные функции
–SUM()
–AVG() -среднее
–MIN()
–MAX()
–COUNT() -количество заполненных ячеек
SELECT AVG(pikkus) AS keskmine_pikkus
FROM laps
WHERE synniaasta > 2000
–6. Изменение записей
— увеличиваем рост всех детей на 10%
select * from laps;
— otobrazhaem do obnovlenija
UPDATE laps
SET pikkus=pikkus*1.1;
— otobrazhaem posle obnovlenija
select * from laps;
–Задание: изменить столбец synnilinn и установить значение Tallinn
select * from laps;
UPDATE laps
SET synnilinn=’Tallinn’
where nimi like ‘j%’;
select * from laps;
— zaprosy na osnovanii dvuh tablic
select * from laps, loom
where laps.lapsID=loom.lapsID;
–pravilnyj porjadok polej
select loom.nimi, laps.nimi, laps.synniaasta
from laps, loom
where laps.lapsID=loom.lapsID;
–inner join – vnutrennee soedinenieS
select loom.nimi, laps.nimi, laps.synniaasta
from laps inner join loom
on laps.lapsID=loom.lapsID;
— ispolzovanie psevdonimov tablic
select lo.nimi, l.nimi, l.synniaasta
from laps l inner join loom lo
on l.lapsID=lo.lapsID;
–top 3
select top 3 * from laps;