четверг, 23 февраля 2017 г.

DML

DML
1-10, TBC 

Задание: 1 (Serge I: 2004-09-08)
Добавить в таблицу PC следующую модель: 
code: 20 
model: 2111 
speed: 950 
ram: 512 
hd: 60 
cd: 52x 
price: 1100 

INSERT INTO pc (code, model, speed, ram, hd,cd,price)
VALUES(20,2111,950,512,60, '52x', 1100)



Задание: 2 (Serge I: 2004-09-08)
Добавить в таблицу Product следующие продукты производителя Z: 
принтер модели 4003, ПК модели 4001 и блокнот модели 4002

 INSERT INTO product (maker, type, model) VALUES
('Z', 'Printer', 4003), ('Z', 'PC', 4001), ('Z', 'Laptop', 4002)



Задание: 3 (Serge I: 2004-09-08)
Добавить в таблицу PC модель 4444 с кодом 22, имеющую скорость процессора 1200 и цену 1350. 

Отсутствующие характеристики должны быть восполнены значениями по умолчанию, принятыми для соответствующих столбцов. 

INSERT INTO pc (model, code, speed, price) VALUES
(4444,22,1200,1350)



Задание: 4 (Serge I: 2004-09-08)
Для каждой группы блокнотов с одинаковым номером модели добавить запись в таблицу PC со следующими характеристиками: 
код: минимальный код блокнота в группе +20; 
модель: номер модели блокнота +1000; 
скорость: максимальная скорость блокнота в группе; 
ram: максимальный объем ram блокнота в группе *2; 
hd: максимальный объем hd блокнота в группе *2; 
cd: значение по умолчанию; 
цена: максимальная цена блокнота в группе, уменьшенная в 1,5 раза. 
Замечание. Считать номер модели числом. 

insert into pc ( code, model, speed, ram, hd, price )
select min ( code ) + 20,
            model + 1000,
            max ( speed ),
            max ( ram ) * 2,
            max ( hd ) * 2,
            max ( price ) / 1.5
     from laptop group by model



Задание: 5 (Serge I: 2004-09-08)
Удалить из таблицы PC компьютеры, имеющие минимальный объем диска или памяти. 

DELETE FROM PC WHERE
pc.ram=(select MIN(ram) from pc) or
pc.hd=(select MIN(hd) from pc)



Задание: 6 (Serge I: 2004-09-08)
Удалить все блокноты, выпускаемые производителями, которые не выпускают принтеры.

Delete from Laptop where model not in (select model from Product where maker in (select maker from product where type ='Printer'))



Задание: 7 (Serge I: 2004-09-08)
Производство принтеров производитель A передал производителю Z. Выполнить соответствующее изменение. 

UPDATE Product SET maker = 'Z' WHERE type = 'Printer' and maker = 'A'



Задание: 8 (Serge I: 2004-09-08)
Удалите из таблицы Ships все корабли, потопленные в сражениях. 

DELETE FROM Ships WHERE name In (SELECT ship FROM Outcomes WHERE result='sunk')



Задание: 9 (Serge I: 2004-09-08)
Измените данные в таблице Classes так, чтобы калибры орудий измерялись в 
сантиметрах (1 дюйм=2,5см), а водоизмещение в метрических тоннах (1 
метрическая тонна = 1,1 тонны). Водоизмещение вычислить с точностью до 
целых.

update Classes set bore=bore*2.5, displacement= round(displacement/1.1,0)



Задание: 10 (Serge I: 2004-09-09)
Добавить в таблицу PC те модели ПК из Product, которые отсутствуют в таблице PC. 

При этом модели должны иметь следующие характеристики: 

1. Код равен номеру модели плюс максимальный код, который был до вставки. 

2. Скорость, объем памяти и диска, а также скорость CD должны иметь максимальные характеристики среди всех имеющихся в таблице PC. 

3. Цена должна быть средней среди всех ПК, имевшихся в таблице PC до вставки. 

INSERT INTO pc (code, model, speed, ram, hd, cd, price)
SELECT
(SELECT MAX(code) FROM PC) + model AS code,
model,
(SELECT MAX(speed) FROM PC) AS speed,
(SELECT MAX(ram) FROM PC) AS ram,
(SELECT MAX(hd) FROM PC) AS hd,
CAST((SELECT MAX(CAST (SUBSTRING(cd,1,LEN(cd) - 1) AS int)) FROM PC) AS VARCHAR) + 'x' AS cd,
(SELECT AVG(price) FROM PC) AS price
FROM product
WHERE type = 'PC'
AND model not IN (SELECT model FROM pc)