Найти в Дзене
Поддержите автораПеревод на любую сумму
Реляционные базы данных и язык SQL. Внешние таблицы (foreign table), доступ csv-файлу
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Продолжение статьи О файлах csv есть несколько статей на моём канале, например вот эта Создание внешней таблицы доступа к csv-файлу похоже на то, как создавать внешние таблицы к таблицам других серверов. Но есть, нюансы. И так Предварительно нужно создать расширение file_fdw, если оно не создано ранее. create extension file_fdw; Следующий шаг создание сервера для расширения filt_fdw. create server serv2 foreign data...
1 месяц назад
Реляционные базы данных и язык SQL. Хранимые функции на PLpgSQL в PostgreSQL и внешние файлы
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Предыдущая статья по хранимым функциям здесь Следует отметить, что использование хранимых функций даёт довольно интересную возможность. Можно работать не только с базами данных, но и, например, с файлами. И это даёт довольно богатые возможности при создании клиент-серверных приложений. Дело в том, что некоторые данные гораздо удобнее хранить в виде файлов, а не в виде элементов таблиц, да и данные для обработки могут поступать в разном формате...
1 месяц назад
Реляционные базы данных и язык SQL. Внешние таблицы (foreign table). Начало
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Внешние таблицы (foreign tables) в PostgreSQL является гибким инструментом доступа к данным вне объектов текущей базы данных. Это могут быть другие базы того-же сервера PostgreSQL и ли других серверов или совсем не табличные данные, например находящиеся вне сервера. Для работы с внешними таблицами следует начать с установки расширения postgres_fdw, которое и позволяет работать с данными из других баз данных или других структур, например обычных файлов...
1 месяц назад
Реляционные базы данных и язык SQL. Понятие триггера. DML-триггеры на языке PLpgSQL
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. В продолжении статей о языке PLpgSQL в PostgreSQL. Предыдущая статья этой серии здесь. Приступим теперь к рассмотрению DML-триггеров. В предыдущей строки мы уже говорили, какие бывают DML-триггеры, так что остаётся только сослаться на неё. Как и в случае триггера DDL в начале создаётся функция, которая будет вызываться триггером DML. Функция представлена ниже. Она будет обрабатывать добавление строк к таблице ocenki, отбрасывая неправильные значения...
1 месяц назад
Реляционные базы данных и язык SQL. Понятие триггера. DDL-триггеры на языке PLpgSQL
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. В продолжении статей о языке PLpgSQL в PostgreSQL. Предыдущая статья этой серии здесь. Триггер это специальный объект, который срабатывает автоматически при наступлении в базе данных некоторого события. При создании триггера указывается когда и при каком событии он должен сработать и какую хранимую функцию он должен запустить при наступлении события. Все триггеры в PostgreSQL можно разделить на две большие группы: 1...
1 месяц назад
Реляционные базы данных и язык SQL. Хранимые функции типа PLpgSQL в PostgreSQL. Транзакции
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. В продолжении статей о языке PLpgSQL в PostgreSQL. Предыдущая статья этой серии здесь Транзакция является важнейшим понятием реляционных баз данных. Транзакция представляет собой последовательность действий, выполняющихся как одна операция с данными. Транзакция может быть выполнена полностью или не выполнена совсем. Транзакция должна соответствовать принципам ACID: 1. Atomicity (атомарность) — транзакция либо выполняется полностью, либо не выполняется совсем...
1 месяц назад
Реляционные базы данных и язык SQL. Хранимые функции типа PLpgSQL в PostgreSQL. Курсоры на стороне сервера
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Перейдём теперь к новому объекту, который удобно использовать при программировании на PLpgSQL, это курсор (см. предыдущую статью). Курсор, это такой объект, который позволяет работать с одной или несколькими строками запроса, не перегружая память. Это очень похоже на итераторы в программировании. По другому можно сказать, что курсор это таблица, в которой установлен порядок. Есть последующие и предыдущие строки. Можно последовательно переходить от одной строки к другой...
2 месяца назад
Реляционные базы данных и язык SQL. Хранимые функции типа PLpgSQL в PostgreSQL. Использование запросов в PLpgSQL
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. В прошлой статье я изложил начало языка plpgsql. Этот язык легко интегрируется с обычным языком SQL, позволяя писать на стороне PostgreSQL полноценный программный с обработкой реляционных данных. Перейдём теперь к вопросам, связанным с сочетанием алгоритмического языка plpgsql и собственно команд языка SQL. Это важнейшая тема, поскольку именно это и является сутью использования программирования на стороне сервера...
2 месяца назад
Реляционные базы данных и язык SQL. Хранимые функции типа PLpgSQL в PostgreSQL. Основные программные структуры
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Начинаем наконец программирование на PGplSQL. Сегодня основное о структурах языка PLpgSQL. В современном PostgreSQL широко используется алгоритмический язык программирования plpgsql. Чаще название языка записывается как PL/pgSQL. Расшифровывается название как Procedural Language/PostGres Structured Query Language, что можно несколько вольно перевести как «Процедурный Язык Postgres с поддержкой SQL-запросов». В чём...
2 месяца назад
Реляционные базы данных и язык SQL. Хранимые функции типа SQL в PostgreSQL
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Сервер баз данных PostgreSQL позволяет создавать специальные объекты, называемые хранимые функции. Использование таких функций даёт возможность переносить часть кода на сторону сервера. В стандартной установке сервера можно создавать функции двух типов: SQL-функции, состоящие из обычных sql-запросов и и функции на алгоритмическом языке программирования plpgsql. Также существуют дополнительные библиотеки, которые,...
2 месяца назад
Реляционные базы данных и язык SQL. Массивы в базах PostgreSQL
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Интересный вопрос, я человек старой формации и привык, что массив хранится как таблица, а тут в одном поле целый массив. Стоит взять на вооружение. Синтаксис создания таблицы со столбцами-массивами довольно прост create table table1 ( id serial primary key, nm text, arr1 text[], arr2 integer[][] ); Как видим у нас два столбца-массива. arr1 — одномерный массив, arr2 — двумерный массив. При создании мы не указываем размерность массива, но фиксируем тип элементов массива...
2 месяца назад
Программирование на языке Python. Графика PyQt5. Продолжение с графическим редактированием, используем QImage по полной
Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. Продолжаем статьи о графических редакторах. Предыдущая была здесь Сегодня используем объект QImage для рисования по полной программе. Кроме этого реализуем сохранение и загрузку картинок. В данной программе (окно программы см. на рисунке 2) мы отказываемся от векторного подхода и в ней не реализован процесс отката, но зато есть возможность не только сохранять картинку (ctrl+s), но и её загружать (cntrl+l)...
3 месяца назад