diff --git a/lesson11/task1.sql b/lesson11/task1.sql new file mode 100644 index 0000000..e01c477 --- /dev/null +++ b/lesson11/task1.sql @@ -0,0 +1,80 @@ +#Задание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() +)engine=archive; + +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, 'Блоки питания'); + + + + +#Задание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":"Материнские платы" +})