diff --git a/dsolovianov/postgresql/DDL.sql b/dsolovianov/postgresql/DDL.sql index 18d5050..5d2cdd7 100644 --- a/dsolovianov/postgresql/DDL.sql +++ b/dsolovianov/postgresql/DDL.sql @@ -1,5 +1,5 @@ CREATE TABLE dsolovianov.users ( - id INT GENERATED ALWAYS AS IDENTITY NOT NULL, + id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT, email VARCHAR(100), @@ -9,7 +9,7 @@ CREATE TABLE dsolovianov.users ( ); CREATE TABLE dsolovianov.products ( - id INT GENERATED ALWAYS AS IDENTITY NOT NULL, + id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, category VARCHAR(50), price DECIMAL(10,2) NOT NULL, @@ -17,7 +17,7 @@ CREATE TABLE dsolovianov.products ( ); CREATE TABLE dsolovianov.orders ( - id INT GENERATED ALWAYS AS IDENTITY NOT NULL, + id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, user_id INT, order_date TIMESTAMPTZ NOT NULL, status VARCHAR(20) @@ -26,7 +26,11 @@ CREATE TABLE dsolovianov.orders ( CREATE TABLE dsolovianov.order_items ( order_id INT NOT NULL, product_id INT NOT NULL, - quantity INT NOT NULL, - price_at_purchase DECIMAL(10,2) NOT NULL, + quantity INT NOT NULL CHECK (quantity > 0), + price_at_purchase DECIMAL(10,2) NOT NULL CHECK (price_at_purchase > 0), CONSTRAINT order_items_pk PRIMARY KEY (order_id, product_id) + CONSTRAINT order_items_order_fk + FOREIGN KEY (order_id) REFERENCES dsolovianov.orders(id), + CONSTRAINT order_items_product_fk + FOREIGN KEY (product_id) REFERENCES dsolovianov.products(id) ); \ No newline at end of file diff --git a/dsolovianov/postgresql/Базовый SQL.sql b/dsolovianov/postgresql/Базовый SQL.sql index 7cf2ef7..930f258 100644 --- a/dsolovianov/postgresql/Базовый SQL.sql +++ b/dsolovianov/postgresql/Базовый SQL.sql @@ -64,13 +64,15 @@ SELECT id, name, country FROM dsolovianov.users -WHERE country LIKE 'US'; +WHERE country LIKE 'US' +ORDER BY name; SELECT id, name, country FROM dsolovianov.users -WHERE country LIKE 'UK'; +WHERE country LIKE 'UK' +ORDER BY name; SELECT id, name, diff --git a/dsolovianov/postgresql/Фильтрация.sql b/dsolovianov/postgresql/Фильтрация.sql index d928d61..edf113a 100644 --- a/dsolovianov/postgresql/Фильтрация.sql +++ b/dsolovianov/postgresql/Фильтрация.sql @@ -110,15 +110,13 @@ SELECT name, FROM dsolovianov.products WHERE category NOT LIKE '%iPhone%'; -SELECT id, - name, +SELECT name, category, price FROM dsolovianov.products WHERE name ILIKE '%pro%'; -SELECT id, - name, +SELECT name, category, price FROM dsolovianov.products