Postgres Professional заявила о выпуске новой версии Postgres Pro Enterprise. Релиз включает возможности мажорных версий Postgres Pro Enterprise 16.1.1, PostgreSQL 16.2 и ряд новых разработок для повышения безопасности, улучшенной оптимизации запросов, аналитики и работы с большими объектами, рассказали информационной службе Хабра в пресс‑службе компании.
Среди ключевых обновлений Enterprise 16.2.1:
#private
и *#export.* Модификатор #private
определяет функции и процедуры как внутренние, а модификатор #export
определяет, какие переменные пакета являются публичными;@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6🔥4
В иерархических БД каждая запись имеет одного «родителя». Это создаёт древовидную структуру, в которой записи классифицируются по их отношениям с цепочкой родительских записей.
Сетевые БД расширяют функциональность иерархических: записи могут иметь более одного родителя. А значит, можно моделировать сложные отношения.
Реляционные БД – старейший тип до сих пор широко используемых БД общего назначения. Данные и связи между данными организованы с помощью таблиц. Каждый столбец в таблице имеет имя и тип. Каждая строка представляет отдельную запись или элемент данных в таблице, который содержит значения для каждого из столбцов.
В БД «ключ-значение» для хранения информации вы предоставляте ключ и объект данных, который нужно сохранить. Например, JSON-объект, изображение или текст. Чтобы запросить данные, отправляете ключ и получаете blob-объект.
Документные БД совместно используют базовую семантику доступа и поиска хранилищ ключей и значений. Такие БД также используют ключ для уникальной идентификации данных. Разница между хранилищами «ключ-значение» и документными БД заключается в том, что вместо хранения blob-объектов, документоориентированные базы хранят данные в структурированных форматах – JSON, BSON или XML.
Вместо сопоставления связей с таблицами и внешними ключами, графовые БД устанавливают связи, используя узлы, рёбра и свойства.
Колоночные БД принадлежат к семейству NoSQL БД, но внешне похож на реляционные БД. Как и реляционные, колоночные БД хранят данные, используя строки и столбцы, но с иной связью между элементами.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥8❤4
Яндекс подготовит на треть больше топовых специалистов по ML и Data Science
Школа анализа данных Яндекса открыла набор на следующий учебный год. Школа решила увеличить число своих студентов — на обучение примут 400 человек, что обеспечит приток новых датасаентистов на рынок. Конкурс при приёме в ШАД остаётся стабильно высоким (17 человек на место в 2023 году), но добавляется новая возможность поступить — теперь абитуриенты смогут поступить также через очную олимпиаду.
В недавнем исследований ШАД выяснил, что 77% выпускников устраиваются в лидирующие технологические компании, а каждый четвёртый работает в научной сфере.
Больше о карьерных треках выпускников ищите в карточках.
@sqlhub
Школа анализа данных Яндекса открыла набор на следующий учебный год. Школа решила увеличить число своих студентов — на обучение примут 400 человек, что обеспечит приток новых датасаентистов на рынок. Конкурс при приёме в ШАД остаётся стабильно высоким (17 человек на место в 2023 году), но добавляется новая возможность поступить — теперь абитуриенты смогут поступить также через очную олимпиаду.
В недавнем исследований ШАД выяснил, что 77% выпускников устраиваются в лидирующие технологические компании, а каждый четвёртый работает в научной сфере.
Больше о карьерных треках выпускников ищите в карточках.
@sqlhub
❤14
// create query to match input with the description or product name
var query = em.createQuery("SELECT p FROM Product p WHERE LOWER(p.description) like OR lower(p.productName) like :input", Product.class);
Это качественный и безопасный запрос с именованными параметрами, что делает невозможным использование инъекций.
// create query to match input with the description or product name
String query = "Select * from Product where lower(description) like '%" + lowerInput + "%' OR lower(product_name) like '%" + lowerInput + "%'";
Для контекста нейросеть использовала уязвимый код и на его основе сгенерировала ещё одну ошибку.
Факторы, усугубляющие использование GitHub Copilot:
— Закрепление плохого подхода. Начинающие разработчики, использующие ИИ-помощников, не замечают своих ошибок и начинают думать, что если код сгенерировала нейросеть, то он верный.
— Отсутствие проверок. Ассистенты не могут проверять безопасность предложенных фрагментов, а разработчики редко пересматривают их. Это увеличивает количество уязвимостей в проекте.
— Устаревшие шаблоны. GitHub Copilot может предлагать фрагменты, которые в сообществе уже признаны неверными и содержащими ошибки.
Будьте аккуратнее, в общем)
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Очевидно, что это будет первая, либо последняя запись в этом столбце.
База данных Oracle знает об этом, поэтому может оптимизировать данный запрос:
INDEX FULL SCAN (MIN/MAX)
или
INDEX RANGE SCAN (MIN/MAX)
При этом запросе считывается только одна необходимая запись.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🥰2🔥1
Нереально полезная подборка SQL-запросов, количество запросов вы и сами видите, это покрывает большую часть того, что может встретиться в практике
В том числе здесь:
record
и NULL
и способы быстрого получения количества записей в большой таблицеUPSERT
) и журналирование изменений таблицыDDL
) и способы добавления ограничений таблицы и изменения ограничений внешнего ключа без блокирования таблицы@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍8❤4
sudo -u postgres psql -d dbname -c "SELECT * FROM table;"
Здесь
dbname
— это название вашей БД, table
– имя таблицы. Разумеется, используем права суперпользователя
sudo
для переключения пользователя на postgres
, psql
является инструментом командной строки PostgreSQL, а ключ -c
нужен для выполнения конкретного запроса.-t
, который выводит данные построчно, и -X
для того, чтобы .psqlrc
не обрабатывался командой psql
.Пишите, кстати, если сталкивались с такими кейсами
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥3
CREATE OR REPLACE FUNCTION 'имя_процедуры(параметры)' RETURNS 'тип_результата' AS $$
DECLARE
-- переменные_локальные тип_переменной
BEGIN
-- Тело процедуры
-- Может содержать SQL запросы, управляющие конструкции и другие операторы
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION hello_world()
RETURNS VOID AS $$
BEGIN
RAISE NOTICE 'Hello, World!';
END;
$$ LANGUAGE plpgsql;
SELECT hello_world();
Таким образом, вы можете создавать и вызывать процедуры в PostgreSQL с помощью PL/pgSQL.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥5❤2🤬2👎1