IliaHohlov

IliaHohlov

Студия Прайм
На Пикабу
4M4DEUS
4M4DEUS оставил первый донат
5875 рейтинг 666 подписчиков 1 подписка 88 постов 15 в горячем
2

Рекомендации по написанию программного кода хранимых функций и процедур

Рекомендации по написанию программного кода хранимых функций и процедур Тестирование, Программирование, Собеседование, Автоматизация, IT, База данных, SQL

Чем больше нагрузка и больше одновременно выполняющихся транзакций, тем больше и ответственности при создании хранимых функций и процедур. Хорошо написанный программный код легко сопровождаем и не боится параллельной работы! Ниже собрал для вас основные рекомендации, которые важно учитывать при разработке хранимок (функций, процедур, триггеров).

1. Максимально эффективное обращение к данных (желательно всегда по первичным ключам и индексам);

2. Разделение сложных операций на более простые (сложный update, insert или delete с подзапросами можно упростить - сделать его по ключу, а данные, получаемые подзапросами, можно предварительно положить во временную таблицу или таблицу временного хранения данных);

3. Соблюдение идентичной последовательности работы с таблицами в разных функциях и процедурах (это позволит минимизировать вероятность взаимных блокировок);

4. Форматирование кода (соблюдение отступов, единое оформление, принятое в компании или в конкретной АС), использование регламентов оформления кода;

5. Соблюдение соответствия программы кода хранимки её назначению (процедура, открывающая вклад клиенту, должна открывать вклад клиенту и не должна дополнительно закрывать кредит);

6. Краткое и понятное комментирование неочевидных участков кода;

7. Идеальный код одной хранимки помещается на одном экране, чтобы не пришлось его прокручивать (конечно, на практике, это далеко не всегда так, но надо к этому стремиться). Если алгоритм большой, то его нужно разбивать на дополнительные функции и процедуры, которые можно использовать в коде основной функции/процедуры.

Буду рад лайку, если понравился материал! И еще напиши в комментарии какие приёмы при разработке хранимок используете Вы.

Показать полностью

Филворд на тему БАЗ ДАННЫХ на русском

Филворд на тему БАЗ ДАННЫХ на русском IT, Тестирование, Собеседование, Программирование, База данных, Офис, SQL

Предлагаю небольшой филворд на тему баз данных. Всего по горизонтали и вертикали спрятано 23 слова. Если не решишь, смотри ответ здесь.

0

Это есть только в MySQL

Это есть только в MySQL Тестирование, Программирование, IT, SQL, Mysql, База данных, Фриланс, Собеседование

И MariaDB!

Как можно в команде SELECT при генерации данных в столбцы использовать значения других столбцов, не используя запросы из запросов и CTE.

Значения в некоторые столбцы могут формироваться сложным расчётами или подзапросами. Теперь представь, что при определённом получаемом значении в одном из таких столбцов, значение в соседнем столбце нужно формировать по-другому, или даже своим подзапросом на основании полученного значения в предыдущем столбце. Как реализовать подобное, не прибегая к запросу из получаемой таблицы данных и не используя CTE?

В СУБД MySql и MariaDB есть пользовательские переменные (те, что с собачкой @), которые можно использовать прямо пока выводятся данные командой SELECT, строчка за строчкой. Посмотри (в примере ниже переменная @id_table):

В ПРЕДПОСЛЕДНИЙ(!) столбец формируется значение идентификатора некоторого столика ресторана.

В ПОСЛЕДНИЙ(!) столбец рассчитывается количество свободных мест того столика ресторана, идентификатор которого выведен в предыдущем столбце. В пользовательскую переменную @id_table будет положено некоторое значение, оно же и будет выведено в качестве данных этого столбца. В следующий столбец подзапрос получит данные, опираясь на значение этой переменной. Главное, чтобы эти столбцы формировать в указанном порядке. Сначала столбец, в результате расчёта которого получим значение в переменную, а затем столбец, который будет использовать значение этой переменной. Удобно и легко, да? И эта возможность - лишь верхушка айсберга возможностей использования пользовательских переменных!

В примере выше для каждой строки такой расчёт выводит данные независимо от предыдущей строки, так как в каждой новой строке переменная @id_table получает новое значение и по-новой выполняется подзапрос на основании её значения.

Ещё про пользовательские переменные я писал здесь.

Больше полезного и интересного про SQL и базы данных в моем Телеграм-канале.

Поставьте лайк, если понравилась статья!

Показать полностью

SQL-задача про UNION

SQL-задача про UNION IT, Программирование, Тестирование, Собеседование, Postgresql, SQL, Фриланс, Oracle, Mysql, Telegram (ссылка)

Всем привет! Ещё один интересный вопрос с нашего Телеграм-канала про SQL и базы данных. Спасибо, что делитесь вопросами с собеседований!

Показать полностью 1
0

Задача на оптимизацию SQL запроса

Предлагаю ещё одну задачу по базам данных со своего Телеграм-канала по SQL и базам данных. Итак, среди прочих, имеется таблица выставленных счетов INVOICES:

Задача на оптимизацию SQL запроса Тестирование, IT, Программирование, Собеседование, SQL, База данных, Аналитик, Аналитика, Программист, Postgresql, Postgres, Oracle, Mysql, Telegram (ссылка)

В некотором отчёте АБС количество счетов, выставленных за текущий день формируется SQL запросом:

SELECT COUNT(*) COUNT_INV FROM INVOICES WHERE DATE(DATE_CREATE) = CURRENT_DATE

Задача на оптимизацию SQL запроса Тестирование, IT, Программирование, Собеседование, SQL, База данных, Аналитик, Аналитика, Программист, Postgresql, Postgres, Oracle, Mysql, Telegram (ссылка)
8

Как сконвертировать Книгу продаж из Excel в XML

Как сконвертировать Книгу продаж из Excel в XML IT, Программа, Windows, Офисные будни, Клерки, Бухгалтерия, Бухгалтер

Как легко преобразовать файл эксель (Excel) книгу продаж в XML для последующей передачи в налоговую службу через систему электронного документооборота (ЭДО).

1. Заполняем строки книги продаж в экселе (шаблон можно взять отсюда);

Как сконвертировать Книгу продаж из Excel в XML IT, Программа, Windows, Офисные будни, Клерки, Бухгалтерия, Бухгалтер

2. Открываем конвертер SalesBookXMLConvertor, выбираем заполненный ранее файл эксель.

3. Указываем данные организации (Наименование, ИНН, КПП), код МРИ, код ИФНС;

4. Указываем куда положить подготовленный файл XML и нажимаем "Сформировать XML";

5. Готово!

Показать полностью 2

Задача по SQL, которую могут решить немногие

Всем привет! Предлагаю ещё одну интересную задачу со своего Телеграм-канала по SQL. На текущий день, у меня 1.8 К подписчиков и я получил лишь несколько решений этой задачи! Попробуй свои силы!

Даны две таблицы ORDERS (заказы) и ORDER_ITEMS (позиции заказов).

Таблица ORDERS, имеет следующую структуру:

Задача по SQL, которую могут решить немногие Собеседование, Тестирование, Программирование, IT, Маркетплейс, SQL, База данных, Postgresql, Mysql, Удаленная работа, Фриланс, Oracle

Таблица ORDER_ITEMS имеет структуру:

Задача по SQL, которую могут решить немногие Собеседование, Тестирование, Программирование, IT, Маркетплейс, SQL, База данных, Postgresql, Mysql, Удаленная работа, Фриланс, Oracle

Каждый заказ может иметь несколько позиций заказа (несколько строк в таблице ORDER_ITEMS). Столбец ID_PRODUCT указывает на товар позиции заказа, а в столбце AMOUNT хранится его количество (сколько штук товара взято в позицию заказа). Задача: написать запрос, выводящий номера и даты заказов, где все позиции заказа имеют количество (значение в столбце AMOUNT) равным одному.

Отличная работа, все прочитано!