homework, pet project DE Dmitry_Medvedev #1
@@ -0,0 +1,44 @@
|
||||
-- TASK 1
|
||||
--Задача 1 — Товары для продажи
|
||||
SELECT name, category, price, price * 1.3 AS price_with_markup, price * 1.5 AS price_with_vat
|
||||
FROM products
|
||||
WHERE in_stock IS TRUE AND category != 'smartwatch' AND price BETWEEN 100 AND 1300;
|
||||
/* Что лучше читается `BETWEEN 100 AND 1300` или `price >= 100 AND price <= 1300` и почему?
|
||||
|
||||
Читается лучше выражение с between потому что сразу видно и понятно внутри какого диапазона мы находимся,
|
||||
а когда используются знаки сравнения, то необходимо вчитываться и вдумываться, какой знаки что именно он обозначает*/
|
||||
|
||||
--TASK 2
|
||||
-- Задача 2 — Скидочная корзина: дешёвые или дорогие
|
||||
SELECT name, price, price * 0.85 AS price_with_discount
|
||||
FROM products
|
||||
WHERE price < 100 OR price > 1000;
|
||||
/* Почему важно явно писать скобки в условии с **`OR`**, даже если кажется, что и так понятно?
|
||||
|
||||
потому что скобки защищают от логических ошибок */
|
||||
|
||||
--TASK 3
|
||||
--Задача 3 — Категории для рекламы
|
||||
SELECT id, name, category, price
|
||||
FROM products
|
||||
WHERE (category = 'tablet' OR category = 'smartphone' OR category = 'mouse') AND price < 1000
|
||||
ORDER BY price DESC;
|
||||
|
||||
--TASK 4
|
||||
-- Задача 4 — Убрать iPhone из выборки
|
||||
SELECT name, category, price
|
||||
FROM products
|
||||
WHERE name NOT LIKE '%iPhone%';
|
||||
|
||||
--TASK 5
|
||||
-- Задача 5 — Поиск товаров по названию
|
||||
SELECT *
|
||||
FROM products
|
||||
WHERE name ILIKE '%pro%';
|
||||
|
||||
SELECT *
|
||||
FROM products
|
||||
WHERE name ILIKE '%mx%';
|
||||
|
||||
/* так лучше потому что для магазина с поисковой строкой не должно быть важно какой регистр используют люди для поиска товара,
|
||||
в любом случае, должен находиться релевантный товар для человека*/
|
||||
Reference in New Issue
Block a user