Напишите запрос для выборки всех адресов Москвы из таблицы «Addresses»
Anonymous Quiz
15%
SELECT Addresses WHERE City=”Moscow”
4%
SELECT City=”Moscow” FROM Addresses
80%
SELECT * FROM Addresses WHERE City=”Moscow”
1%
Посмотреть ответ
👍9🎄3🔥1
Собственно, об этом и идёт речь в статье.
/contrib/. Во-вторых, pg_proc.dat является удобной точкой входа для изучения внутренностей PostgreSQL. Также файл бывает полезен, когда вы примерно понимаете, какую функцию ищите, но не знаете ее название.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Как очень быстро получить количество записей в большой таблице?
Применение: отображение общего кол-ва записей в админках.
Применение: отображение общего кол-ва записей в админках.
-- возвращает точное количество записей, но медленно
select count(*) as exact_count from table_name;
-- возвращает приблизительное количество записей, но быстро
-- точность больше, чем в следующем запросе, но от БД требуется актуальная статистика по таблице
select reltuples::bigint as estimate_count
from pg_class
where oid = 'public.table_name'::regclass;
-- возвращает приблизительное количество записей, но быстро
-- точность меньше, чем в предыдущем запросе, но от БД не требуется актуальная статистика по таблице
-- преимущество этого подхода в том, что можно задавать условие выборки
select 100 * count(*) as estimate_count
from table_name tablesample system (1)
where ...;👍4
Нереально полезная подборка SQL-запросов, количество запросов вы и сами видите, это покрывает большую часть того, что может встретиться в практике
В том числе здесь:
record и NULL и способы быстрого получения количества записей в большой таблицеUPSERT) и журналирование изменений таблицыDDL) и способы добавления ограничений таблицы и изменения ограничений внешнего ключа без блокирования таблицыPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
Выберите корректно составленный запрос с функцией GROUP BY:
Anonymous Quiz
90%
select seller_id, count(*) from Orders GROUP BY seller_id;
5%
select count(*) from Orders GROUP seller_id;
4%
select count(*) from Orders GROUP ON seller_id;
2%
Посмотреть ответ
👍11😱2
DbGate — open-source менеджер SQL и NoSQL БД
DbGate — это кроссплатформенный менеджер баз данных. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими БД одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.
Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite и других.
Работает под Windows, Linux, Mac и как веб-приложение.
🖥 GitHub
DbGate — это кроссплатформенный менеджер баз данных. Разработан, чтобы быть простым в использовании и эффективным при работе с несколькими БД одновременно.
Также имеет множество дополнительных функций, таких как сравнение схем, визуальный конструктор запросов, визуализация графиков или пакетный экспорт и импорт.
Поддерживает MySQL, PostgreSQL, SQL Server, MongoDB, SQLite и других.
Работает под Windows, Linux, Mac и как веб-приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Держите полезную статью о том, как собрать PostgreSQL 16 версии из исходников, инициализировать кластер и запустить его на сервере Debian 12
Причины по которым вам может понадобится собирать PostgreSQL из исходников:
План статьи
├╼ Сборка и установка├╼ Создание кластера├╼ Запуск и остановка кластера├╼ Установка расширений PostgreSQL├╼ Создание и запуск второго кластера╰╼ Создание службы SystemD для кластеровPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Вопрос на SQL собеседовании.
Какие параметры используются в конструкции order by?
Ответ:
ASC и DESC
Какие параметры используются в конструкции order by?
Ответ:
👍10
Как правильно добавить строку в таблицу? Какой запрос верный?
Anonymous Quiz
68%
INSERT INTO `SimpleTable` (`some_text`) VALUES ("my text");
14%
INSERT INTO `SimpleTable` SET `some_text`="my text";
8%
SET INTO `SimpleTable` VALUE `some_text`="my text";
6%
UPDATE INTO `SimpleTable` SET `some_text`="my text";
4%
Узнать ответ
👍7😱2🎄2
Процесс выполнения
SQL-запросов в базе данных включает в себя несколько компонентов, взаимодействующих между собой. Хотя конкретная архитектура различных систем баз данных может отличаться, ниже описана общая последовательность действий.1. Оператор SQL запускается в клиентской программе и передается по сети на сервер базы данных.
2. Когда сервер базы данных получает SQL-оператор, реляционный движок начинает его обработку. Сначала синтаксический анализатор проверяет правильность оператора. Затем он преобразует оператор в дерево запросов, которое представляет собой внутреннюю структуру данных.
3. Оптимизатор запросов просматривает дерево запросов и определяет наиболее эффективный способ выполнения SQL-оператора, создавая план выполнения.
4. План выполнения передается исполнителю запроса, который использует его для координации получения или изменения данных в соответствии с запросом SQL. Для доступа к данным исполнитель взаимодействует с движком хранилища.
5. Движок хранилища использует методы доступа - протоколы чтения и записи данных, наиболее эффективные для выполнения различных операций.
6. При чтении данных менеджер буферов проверяет, кэшированы ли нужные данные в памяти, и при необходимости извлекает их с диска. Это ускоряет последующий доступ.
7. При записи данных со вставкой или обновлением менеджер транзакций следит за тем, чтобы изменения происходили атомарно и сохраняли целостность базы данных.
8. В то же время менеджер блокировок накладывает блокировки, чтобы несколько транзакций могли выполняться одновременно, не конфликтуя между собой. Таким образом, обеспечивается изоляция и согласованность.
Работая вместе, эти компоненты обеспечивают надежную и эффективную обработку SQL-запросов в системе управления базами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
На диаграмме показано множество вариантов использования PostgreSQL - одной базы данных, которая включает в себя почти все функции необходимых разработчикам.
🔹OLTP (Online Transaction Processing)
Мы можем использовать PostgreSQL для CRUD-операций (Create-Read-Update-Delete).
🔹OLAP (Online Analytical Processing)
Мы можем использовать PostgreSQL для аналитической обработки. PostgreSQL основан на архитектуре 𝐇𝐓𝐀𝐏 (Hybrid transactional/analytical processing), поэтому он может хорошо работать как с OLTP, так и с OLAP.
🔹FDW (Foreign Data Wrapper)
FDW - это расширение, доступное в PostgreSQL, которое позволяет нам обращаться к таблице или схеме одной базы данных из другой.
🔹Streaming
PipelineDB - это расширение PostgreSQL для высокопроизводительной агрегации временных рядов, предназначенное для работы с отчетами и аналитическими приложениями в реальном времени.
🔹Geospatial
PostGIS - это расширитель базы данных для объектно-реляционной базы данных PostgreSQL. Он добавляет поддержку географических объектов, позволяя выполнять запросы на определение местоположения в SQL.
🔹Временные ряды
Timescale расширяет PostgreSQL для работы с временными рядами и аналитикой. Например, разработчики могут объединять непрерывные потоки финансовых и тиковых данных с другими бизнес-данными для создания новых приложений и получения уникальных знаний.
🔹Распределенные таблицы
CitusData масштабирует Postgres за счет распределения данных и запросов.
Какая база данных вам нравится больше всего?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Для добавления новых записей в таблицу предназначен оператор
Anonymous Quiz
2%
SELECT
85%
INSERT
11%
ADD
1%
Посмотреть ответ
👍7