From 361315dbf28d36c973edf6d6408e56dc7b645d8d Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 24 Nov 2019 18:55:11 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=201.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson11/task1.sql | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 lesson11/task1.sql diff --git a/lesson11/task1.sql b/lesson11/task1.sql new file mode 100644 index 0000000..c238e19 --- /dev/null +++ b/lesson11/task1.sql @@ -0,0 +1,56 @@ +#Задание1 + +use shop; +DROP TABLE IF exists logs; +CREATE TABLE logs ( + id SERIAL PRIMARY KEY, + id_PK INT UNSIGNED, + table_name VARCHAR(25), + field_name VARCHAR(25), + created_at DATETIME DEFAULT NOW() +); + +drop trigger if exists tr_logs_write_users; +drop trigger if exists tr_logs_write_catalogs; +drop trigger if exists tr_logs_write_products; +delimiter // +CREATE TRIGGER tr_logs_write_users After insert ON users +FOR EACH ROW BEGIN + INSERT INTO logs + (id_PK, table_name, field_name) + VALUES + (NEW.id, 'users', NEW.name); +END// + +CREATE TRIGGER tr_logs_write_catalogs After insert ON catalogs +FOR EACH ROW BEGIN + INSERT INTO logs + (id_PK, table_name, field_name) + VALUES + (NEW.id, 'catalogs', NEW.name); +END// + +CREATE TRIGGER tr_logs_write_products After insert ON products +FOR EACH ROW BEGIN + INSERT INTO logs + (id_PK, table_name, field_name) + VALUES + (NEW.id, 'products', NEW.name); +END// + +delimiter ; + +### Test + +INSERT INTO users (name, birthday_at) VALUES + ('Сергей', '1995-10-15'); + +INSERT INTO products + (name, description, price, catalog_id) +VALUES + ('Intel Core i7-8100', 'Процессор для настольных персональных компьютеров, основанных на платформе Intel.', 8890.00, 1); + +INSERT INTO catalogs VALUES + (NULL, 'Блоки питания'); + + From 4ccf42e5f398a40e915f857bb9eb52325088c6ea Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 25 Nov 2019 15:49:16 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson11/task1.sql | 28 ++++++++++++++-- lesson11/task2.sql | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 lesson11/task2.sql diff --git a/lesson11/task1.sql b/lesson11/task1.sql index c238e19..e01c477 100644 --- a/lesson11/task1.sql +++ b/lesson11/task1.sql @@ -3,12 +3,12 @@ use shop; DROP TABLE IF exists logs; CREATE TABLE logs ( - id SERIAL PRIMARY KEY, + #id SERIAL PRIMARY KEY, id_PK INT UNSIGNED, table_name VARCHAR(25), field_name VARCHAR(25), created_at DATETIME DEFAULT NOW() -); +)engine=archive; drop trigger if exists tr_logs_write_users; drop trigger if exists tr_logs_write_catalogs; @@ -54,3 +54,27 @@ INSERT INTO catalogs VALUES (NULL, 'Блоки питания'); + + +#Задание2 + +use shop; + +drop procedure if exists dorepeat; +delimiter // + +CREATE PROCEDURE dorepeat() + BEGIN + SET @x = 0; + set @p1 = 1000000; + REPEAT + SET @x = @x + 1; + INSERT INTO users (name, birthday_at) VALUES + ('Геннадий', '1990-10-05'); + UNTIL @x > @p1 END REPEAT; + END + // + +DELIMITER ; + +CALL dorepeat(); \ No newline at end of file diff --git a/lesson11/task2.sql b/lesson11/task2.sql new file mode 100644 index 0000000..ae53ca3 --- /dev/null +++ b/lesson11/task2.sql @@ -0,0 +1,79 @@ +################################ +#Задание1 +sadd 192.168.0.1 user1 +sadd 192.168.0.1 user2 +sadd 192.168.0.2 user3 +sadd 192.168.0.3 user4 +sass 192.168.0.1 user4 +sadd 192.168.0.1 user4 +sadd 192.168.0.2 user2 +smembers 192.168.0.1 + + +################################ +#Задание2 +select 2 +set user1 user1@mail.ru +set user2 user2@mail.ru +set user3 user3@mail.ru +set user4 user4@mail.ru +set user5 user5@mail.ru + +#Получаем email пользователя +get user4 + +#Получаем hash таблицу +hset users:1 name "name1" +hset users:1 name "n1@n.ru" +hset users:2 name "name2" +hset users:2 name "n2@n.ru" +hset users:3 name "name3" +hset users:3 name "n3@n.ru" + +hvals users:1 +hkeys users:1 + + +################################ +#Задание3 +db.shop.insert( +{ + "id":1, + "name":"Intel Core i3-8100", + "description":"Процессор для настольных персональных компьютеров, основанных на платформе Intel.", + "price":7890, + "catalog_id":1, + "creates_at":"2019-11-24 10:00:00", + "update_at":"2019-11-24 10:00:00" +}) +db.shop.insert( +{ + "id":2, + "name":"Intel Core i5-7400", + "description":"Процессор для настольных персональных компьютеров, основанных на платформе Intel.", + "price":12700, + "catalog_id":1, + "creates_at":"2019-11-24 10:00:00", + "update_at":"2019-11-24 10:00:00" +}) +db.shop.insert( +{ + "id":3, + "name":"Gigabyte H310M S2H", + "description":"Материнская плата Gigabyte H310M S2H, H310, Socket 1151-V2, DDR4, mATX", + "price":4790, + "catalog_id":2, + "creates_at":"2019-11-24 10:00:00", + "update_at":"2019-11-24 10:00:00" +}) + +db.shop.insert( +{ + "id":1, + "name":"Процессоры" +}) +db.shop.insert( +{ + "id":2, + "name":"Материнские платы" +})