--Создание таблиц
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)
);
-- Показ данных от настольных ламп
select * from laps;
-- Добавляем данные в таблицу
insert into laps (nimi,synnilinn,pikkus,synniaasta)
values
('TEST0', 'Tallin', 172, 2000),
('TEST1', 'Tartu', 172, 2001),
('TEST2', 'Parnu', 172, 2002),
('TEST3', 'Johvi', 172, 2003),
('TEST4', 'Tallin', 172, 2004),
('TEST5', 'Tartu', 172, 2005),
('TEST6', 'Parnu', 172, 2006),
('TEST7', 'Johvi', 172, 2007),
('TEST8', 'Tallin', 172, 2008),
('TEST9', 'Tartu', 172, 2009),
('TEST10', 'Parnu', 172, 2010),
('TEST11', 'Johvi', 172, 2011),
('TEST12', 'Tallin', 172, 2012),
('TEST13', 'Tartu', 172, 2013),
('TEST14', 'Parnu', 172, 2014);
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)
);
insert into loom (nimi,kaal,lapsid)
values
('Kaas Mura',6,1),
('Kaas Vassily',6,2),
('äHiir Little',1,2),
('Hiir Maks', 1, 4),
('Koer Maks', 2, 5);
-- Показать все
select * from laps;
select * from loom;
-- Покажи только nime
select nimi from laps;
-- Показывать только имена, начинающиеся с буквы Т.
select nimi from laps
where nimi LIKE '%T%';
-- Показать имя и длину
select nimi, pikkus from laps;
-- Имена, начинающиеся с Т и длиной более 130
select nimi, pikkus from laps
where nimi like 'T%' AND pikkus > 130;
-- Длина между (110;130)
select nimi, pikkus from laps
where pikkus >= 110 and pikkus <= 130;
select nimi, pikkus from laps
where pikkus between 110 and 130;
-- 2 Cортеримин
SELECT nimi, pikkus FROM laps ORDER by nimi DESC;
SELECT nimi, pikkus FROM laps ORDER by nimi ASC;
SELECT nimi, pikkus FROM laps ORDER by nimi, pikkus;
-- 5
-- Cреднее значение только для детей, родившихся после 2005 г.
SELECT AVG(pikkus) AS keskmine_pikkus FROM laps WHERE synniaasta > 2005;
SELECT SUM(pikkus) AS max_pikkusFROM from laps WHERE synniaasta = 2000;
SELECT MIN(pikkus)AS min_pikkus FROM laps WHERE synniaasta = 2000;
SELECT MAX(pikkus)AS max_pikkus FROM laps WHERE synniaasta = 2000;
SELECT COUNT(pikkus) AS count_pikkusFROM from laps WHERE synniaasta = 2000;
-- 6
select * from laps;
UPDATE laps
SET pikkus=pikkus*1.1; -- увеличиваем рост всех детей на 10%
select * from laps;
-- 7
select * from laps;
update laps
SET pikkus = 158
where synniaasta = 2000;
select * from laps;
-- 8
select * from laps
where pikkus < 150 and synniaasta = 2000;
-- 9 SQL SERVER
select top 3 * from laps order by pikkus DESC;
-- 9 PHPmyAdmin SERVER
select * from laps order by pikkus DESC limit 3;
-- 10
-- 1 Ищет трех самых высоких детей на таблица laps, которые живут в Tartu
select top 3 * from laps
where synnilinn = 'Tartu'
order by pikkus DESC;
-- 2 выборки из четных лет, находящихся между 2007 и 2017 годами.
select * from laps
where synniaasta % 2 = 0 and synnilinn = 'Johvi'
and ( synniaasta > 2007 or synniaasta < 2017 );
-- 3
select lo.nimi,la.nimi,la.synnilinn from laps la inner join loom lo
on la.lapsID = lo.lapsID
where la.synnilinn = 'Tallin' ;
-- выбрать утверждения на основе двух таблиц
select * from laps, loom
select * from laps, loom
where laps.lapsID = loom.lapsID
select loom.nimi, laps.nimi, laps.synniaasta from laps, loom
where laps.lapsID = loom.lapsID;
-- INNER JOIN -
select loom.nimi, laps.nimi, laps.synniaasta from laps inner join loom
on laps.lapsID = loom.lapsID;
-- Установка короче для таблиц
select lo.nimi, la.nimi, la.synniaasta
from laps la inner join loom lo
on la.lapsID = lo.lapsID;