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