практика 'Транзакции'
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
-- Задание 1
|
||||
SELECT
|
||||
name,
|
||||
category,
|
||||
price,
|
||||
price * 1.30 AS price_with_markup,
|
||||
price * 1.50 AS price_with_vat
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
in_stock = TRUE AND
|
||||
category != 'smartwatch' AND -- категории smartwatch нет в предоставленных данных для заполнения
|
||||
price BETWEEN 100 AND 1300;
|
||||
-- Что лучше читается BETWEEN 100 AND 1300 или price >= 100 AND price <= 1300 и почему?
|
||||
-- Лучше читается первый вариант, потому что просто прочитал и понял, а не думаешь над знаками, и первый вариант короче
|
||||
|
||||
|
||||
-- Задание 2
|
||||
SELECT
|
||||
name,
|
||||
price,
|
||||
price * 0.85 AS price_with_discount
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
(price < 100 OR price > 1000);
|
||||
-- Нужно отделять OR скобками, потому что если в условии будет ещё и AND, то логика может поломаться потому что AND выполняется раньше чем OR
|
||||
|
||||
|
||||
-- Задание 3
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
category IN ('tablet', 'smartphone', 'mouse') AND
|
||||
price >= 100
|
||||
ORDER BY
|
||||
price DESC;
|
||||
|
||||
|
||||
--Задание 4
|
||||
SELECT
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
name NOT LIKE '%iPhone%';
|
||||
|
||||
|
||||
-- Задание 5
|
||||
-- 1)
|
||||
SELECT
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
name ILIKE '%pro%';
|
||||
|
||||
-- 2)
|
||||
SELECT
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM
|
||||
mnoskov.products
|
||||
WHERE
|
||||
name ILIKE '%mx%'
|
||||
ORDER BY
|
||||
price DESC;
|
||||
-- Для поисковой строи лучше ILIKE, потому что он не учитывает регистр - кто-то пишет с большой буквы, кто-то с маленькой, а кто-то случайно включил капс.
|
||||
Reference in New Issue
Block a user