base sql done

This commit is contained in:
pavel
2026-02-11 23:57:08 +01:00
parent d00110c7ae
commit 35283077b6
@@ -1,6 +1,6 @@
CREATE TABLE users ( CREATE TABLE users (
id int PRIMARY KEY, -- NOT NULL id int PRIMARY KEY, -- NOT NULL
"name" varchar(100) NOT NULL, name varchar(100) NOT NULL,
age int, age int,
email varchar(100), email varchar(100),
country varchar(2), country varchar(2),
@@ -10,7 +10,7 @@ CREATE TABLE users (
CREATE TABLE products ( CREATE TABLE products (
id int PRIMARY KEY, id int PRIMARY KEY,
"name" varchar(100) NOT NULL, name varchar(100) NOT NULL,
category varchar(50), category varchar(50),
price decimal(10,2) NOT NULL, price decimal(10,2) NOT NULL,
in_stock BOOLEAN -- или int, потому что или на складе или не на складе in_stock BOOLEAN -- или int, потому что или на складе или не на складе
@@ -78,3 +78,111 @@ INSERT INTO pmikhailov.order_items
(6, 1, 1, 82000), (6, 1, 1, 82000),
(7, 3, 1, 9000), (7, 3, 1, 9000),
(8, 4, 2, 2800); (8, 4, 2, 2800);
SELECT id, name, country, created_at, email
FROM users
ORDER BY created_at DESC, name ASC;
SELECT id, name, country
FROM users
WHERE country = 'US'
ORDER BY name ASC;
SELECT id, name, country
FROM users
WHERE country = 'UK'
ORDER BY name ASC;
SELECT id, name, email
FROM users u
WHERE email IS NOT NULL
ORDER BY name ASC;
SELECT DISTINCT lower(email)
FROM users u
WHERE email IS NOT null;
SELECT id, name, created_at
FROM users
WHERE created_at >= '2024-02-05 09:30:00.000 +0100'
ORDER BY created_at DESC
LIMIT 2 OFFSET 1;
/* Задача 1 */
SELECT
name,
category,
price,
price * 1.3 AS price_with_markup,
price * 1.5 AS price_with_vat
FROM
products p
WHERE
in_stock IS TRUE
AND price BETWEEN 100 AND 1300;
/* Задача 2 */
SELECT
name,
price,
price * 0.85 AS price_with_discount
FROM
products p
WHERE
(price <= 100) OR (price >= 1000);
/* Задача 3 */
SELECT
id,
name,
category,
price
FROM
products p
WHERE
category IN ('tablet', 'smartphone', 'mouse')
AND price >= 100;
/* Задача 4 */
SELECT
name,
category,
price
FROM
products p
WHERE name NOT ILIKE '%iPhone%';
/* Задача 5 */
SELECT
name,
category,
price
FROM
products p
WHERE
name NOT ILIKE '%pro%'
ORDER BY
price DESC;
SELECT
name,
category,
price
FROM
products p
WHERE
name NOT ILIKE '%mx%';
ORDER BY
price DESC;