From 35283077b6fad1f1f5981cb32b9a9da33d151e9f Mon Sep 17 00:00:00 2001 From: pavel Date: Wed, 11 Feb 2026 23:57:08 +0100 Subject: [PATCH] base sql done --- .../postgresql/{DDL-DML.sql => base_sql.sql} | 112 +++++++++++++++++- 1 file changed, 110 insertions(+), 2 deletions(-) rename pmikhailov/postgresql/{DDL-DML.sql => base_sql.sql} (61%) diff --git a/pmikhailov/postgresql/DDL-DML.sql b/pmikhailov/postgresql/base_sql.sql similarity index 61% rename from pmikhailov/postgresql/DDL-DML.sql rename to pmikhailov/postgresql/base_sql.sql index afeb254..743a24a 100644 --- a/pmikhailov/postgresql/DDL-DML.sql +++ b/pmikhailov/postgresql/base_sql.sql @@ -1,6 +1,6 @@ CREATE TABLE users ( id int PRIMARY KEY, -- NOT NULL - "name" varchar(100) NOT NULL, + name varchar(100) NOT NULL, age int, email varchar(100), country varchar(2), @@ -10,7 +10,7 @@ CREATE TABLE users ( CREATE TABLE products ( id int PRIMARY KEY, - "name" varchar(100) NOT NULL, + name varchar(100) NOT NULL, category varchar(50), price decimal(10,2) NOT NULL, in_stock BOOLEAN -- или int, потому что или на складе или не на складе @@ -78,3 +78,111 @@ INSERT INTO pmikhailov.order_items (6, 1, 1, 82000), (7, 3, 1, 9000), (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; + +