commit 3ad99f61f7605461026f5b1c9f70d36195d410a3 Author: Антон Date: Mon Jul 7 18:36:35 2025 +0300 init diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/SQL.iml b/.idea/SQL.iml new file mode 100644 index 0000000..bc2cd87 --- /dev/null +++ b/.idea/SQL.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/editor.xml b/.idea/editor.xml new file mode 100644 index 0000000..55d1bc1 --- /dev/null +++ b/.idea/editor.xml @@ -0,0 +1,483 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6f5bb40 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/my_own_internet_shop0.sql b/my_own_internet_shop0.sql new file mode 100644 index 0000000..ce9247b --- /dev/null +++ b/my_own_internet_shop0.sql @@ -0,0 +1,11 @@ +CREATE SCHEMA `shop` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; + +CREATE TABLE `shop`.`category` ( + `id` INT NOT NULL, + `name` VARCHAR(128) NOT NULL, + `discount` TINYINT NOT NULL, + PRIMARY KEY (`id`) +); + +ALTER TABLE `shop`.`category` + ADD COLUMN `alias_name` VARCHAR(128) NULL AFTER `discount`; diff --git a/up_and_down.sql b/up_and_down.sql new file mode 100644 index 0000000..018f7a4 --- /dev/null +++ b/up_and_down.sql @@ -0,0 +1,188 @@ +-- Общая рекомендация - расписать use-case'ы +-- Сделать все таблицы во множественном числеalter +-- Нужно оставить либо Id, либо GUID, убрать авто-инкремент + +CREATE SCHEMA `up_and_down` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; + +CREATE TABLE `up_and_down`.`user` ( + `id` INT8 AUTO_INCREMENT NOT NULL, + `guid` CHAR(36) NOT NULL, + `login` VARCHAR(128) NOT NULL, + `hashed_password` TEXT NOT NULL, + PRIMARY KEY (`id`), + UNIQUE INDEX `guid_UNIQUE` (`guid` ASC) +); + +CREATE TABLE `up_and_down`.`mania` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`depression` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`mood` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`activity` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`appetite` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`sleep` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`anxiety` ( + `level` INT1 NOT NULL, + `description` TEXT NOT NULL, + PRIMARY KEY (`level`) +); + +CREATE TABLE `up_and_down`.`diaries` ( + `id` INT8 NOT NULL, + `user_guid` CHAR(36) NOT NULL, + `time` DATETIME NOT NULL, + `mania_level` INT1 NOT NULL, + `depression_level` INT1 NOT NULL, + `mood_level` INT1 NOT NULL, + `activity_level` INT1 NOT NULL, + `appetite_level` INT1 NOT NULL, + `sleep_level` INT1 NOT NULL, + `anxiety_level` INT1 NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`user_guid`) REFERENCES `user`(`guid`), + FOREIGN KEY (`mania_level`) REFERENCES `mania`(`level`), + FOREIGN KEY (`depression_level`) REFERENCES `depression`(`level`), + FOREIGN KEY (`mood_level`) REFERENCES `mood`(`level`), + FOREIGN KEY (`activity_level`) REFERENCES `activity`(`level`), + FOREIGN KEY (`appetite_level`) REFERENCES `appetite`(`level`), + FOREIGN KEY (`sleep_level`) REFERENCES `sleep`(`level`), + FOREIGN KEY (`anxiety_level`) REFERENCES `anxiety`(`level`), + UNIQUE INDEX `guid_UNIQUE` (`guid` ASC) +); + +-- 1, Name1, 200, мкг, да, 100 +-- 2, Name2, 300, мл, нет, 100 +-- 3, Name3, 50, мг, нет, 101 +CREATE TABLE `up_and_down`.`medications` ( + `guid` CHAR(36) NOT NULL, + `name` TEXT NOT NULL, + `dose` int8 NOT NULL, + `unit` CHAR(30), + `is_urgent` BOOL NOT NULL, + `user_guid` CHAR(36) NOT NULL, + PRIMARY KEY (`guid`) + -- SCHEME_ID или GROUP_ID - посмотреть +); + + +-- 956, 101, 3, 30.06.2025 +-- 957, 100, 2, 24.04.2024 +-- Связать с diaries +CREATE TABLE `up_and_down`.`set_of_medications` ( + `guid` CHAR(36) NOT NULL, + `medications_guid` CHAR(36) NOT NULL, + PRIMARY KEY (`guid`) +); + +-- insert constants +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (1, 'Полное отсутствие мании'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (2, 'Слегка приподнятое настроение'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (3, 'Хорошее настроение'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (4, 'Очень хорошее настроение, но в рамках разумного'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (5, 'Гипомания I, характерная для циклотимии - приятная эйфория, повышенная активность'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (6, 'Гипомания II, характерная для БАР II - все, что в предыдущем пункте + белеет в глазах'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (7, 'Мания I - периодический не сильный отрыв от реальности'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (8, 'Мания II - сопровождается бредом и галлюцинациями - неадекватная речь'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (9, 'Мания III - сопровождается бредом и галлюцинациями - неадекватное поведение'); +INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (10, 'Мания IV - сопровождается бредом и галлюцинациями - человек опасен для себя и других'); + +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (1, 'Депрессия I'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (2, 'Депрессия II'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (3, 'Депрессия III'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (4, 'Депрессия IV'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (5, 'Депрессия V'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (6, 'Депрессия VI'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (7, 'Депрессия VII'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (8, 'Депрессия VIII'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (9, 'Депрессия IX'); +INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (10, 'Депрессия X'); + +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (1, 'Настроение I'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (2, 'Настроение II'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (3, 'Настроение III'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (4, 'Настроение IV'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (5, 'Настроение V'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (6, 'Настроение VI'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (7, 'Настроение VII'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (8, 'Настроение VIII'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (9, 'Настроение IX'); +INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (10, 'Настроение X'); + +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (1, 'Активность I'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (2, 'Активность II'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (3, 'Активность III'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (4, 'Активность IV'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (5, 'Активность V'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (6, 'Активность VI'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (7, 'Активность VII'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (8, 'Активность VIII'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (9, 'Активность IX'); +INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (10, 'Активность X'); + +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (1, 'Аппетит I'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (2, 'Аппетит II'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (3, 'Аппетит III'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (4, 'Аппетит IV'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (5, 'Аппетит V'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (6, 'Аппетит VI'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (7, 'Аппетит VII'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (8, 'Аппетит VIII'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (9, 'Аппетит IX'); +INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (10, 'Аппетит X'); + +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (1, 'Сон I'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (2, 'Сон II'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (3, 'Сон III'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (4, 'Сон IV'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (5, 'Сон V'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (6, 'Сон VI'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (7, 'Сон VII'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (8, 'Сон VIII'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (9, 'Сон IX'); +INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (10, 'Сон X'); + +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (1, 'Тревога I'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (2, 'Тревога II'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (3, 'Тревога III'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (4, 'Тревога IV'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (5, 'Тревога V'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (6, 'Тревога VI'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (7, 'Тревога VII'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (8, 'Тревога VIII'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (9, 'Тревога IX'); +INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (10, 'Тревога X'); + +-- Заполнение пользователями +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login1', 'Qwerty12345'); +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('56b7c993-392f-41f8-adb1-9766842dc5fd', 'login2', 'AVALON123456'); +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('a243b5f2-e265-4c25-82a9-dde4cc70643f', 'login3', 'Zxcvb123456'); +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('51351bb1-7563-479d-a8e9-201d0ff934c2', 'login4', 'Sadly846612'); +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('c792bbe6-2bf2-4fe0-a781-ba96bfeaa3b6', 'login5', 'Qwerty12345'); diff --git a/up_and_down_foreign_keys_and_consistency.sql b/up_and_down_foreign_keys_and_consistency.sql new file mode 100644 index 0000000..8e75f08 --- /dev/null +++ b/up_and_down_foreign_keys_and_consistency.sql @@ -0,0 +1,20 @@ +-- Создания дня для пользователя login1 +INSERT INTO `up_and_down`.`day` (`guid`, + `user_guid`, + `time`, + `mania_level`, + `depression_level`, + `mood_level`, + `activity_level`, + `appetite_level`, + `sleep_level`, + `anxiety_level`) VALUES ('3f499c5f-7794-4e5f-960b-f9406dae3935', + 'ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', + '2025-06-28 18:09:00', + 1, + 1, + 1, + 1, + 1, + 1, + 1); \ No newline at end of file diff --git a/up_and_down_read data.sql b/up_and_down_read data.sql new file mode 100644 index 0000000..66bf38d --- /dev/null +++ b/up_and_down_read data.sql @@ -0,0 +1,21 @@ +-- Команды чтения: + +-- Полное чтение таблицы +-- SELECT * FROM `up_and_down`.`user`; + +-- Частичное чтение таблицы +-- SELECT * FROM `up_and_down`.`user` WHERE login = 'login3'; +-- SELECT * FROM `up_and_down`.`user` WHERE login <> 'login3'; +-- SELECT * FROM `up_and_down`.`mania` WHERE level > 5; +-- SELECT * FROM `up_and_down`.`mania` WHERE (level > 3) AND (level < 9); +-- SELECT * FROM `up_and_down`.`mania` WHERE (level > 3) OR (level = 1); +-- SELECT * FROM `up_and_down`.`mania` WHERE NOT (level > 3) OR (level = 5); +-- SELECT * FROM `up_and_down`.`mania` WHERE level IS NOT NULL; + +-- Более продвинутые команды +-- SELECT DISTINCT hashed_password from `up_and_down`.`user`; +-- SELECT * FROM `up_and_down`.`mania` ORDER BY level ASC; +-- SELECT * FROM `up_and_down`.`mania` ORDER BY level DESC; +-- SELECT * FROM `up_and_down`.`mania` WHERE (level > 3) AND (level < 9) AND (level <> 6) ORDER BY level DESC; +-- SELECT * FROM `up_and_down`.`mania` LIMIT 5; +-- SELECT * FROM `up_and_down`.`mania` ORDER BY description DESC LIMIT 5; \ No newline at end of file diff --git a/up_and_down_update_and_delete_data.sql b/up_and_down_update_and_delete_data.sql new file mode 100644 index 0000000..c182eb7 --- /dev/null +++ b/up_and_down_update_and_delete_data.sql @@ -0,0 +1,7 @@ +-- Создание данных для редактирования и удаления +INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('fb555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login6', 'Qwerty123456'); + +UPDATE `up_and_down`.`user` SET login = 'login666' WHERE guid = 'fb555fcb-b9ee-45f4-9de8-8f16daa5d03b'; +UPDATE `up_and_down`.`user` SET hashed_password = 'my_hash' where guid in ('51351bb1-7563-479d-a8e9-201d0ff934c2', '56b7c993-392f-41f8-adb1-9766842dc5fd'); + +DELETE FROM `up_and_down`.`user` WHERE guid = 'a243b5f2-e265-4c25-82a9-dde4cc70643f';