Пересказ статьи DbVisualizer. PostgreSQL — effective Alternatives to the MySQL ‘DESCRIBE’ Command
В PostgreSQL, в отличие от MySQL, отсутствует оператор DESCRIBE для просмотра структуры таблицы. Эта статья дает краткий обзор альтернативных средств, доступных в PostgreSQL для описания структуры таблиц, подобного команде DESCRIBE в MySQL.
Есть несколько разных способов получить в PostgreSQL результаты, аналогичные команде DESCRIBE.
Continue reading "PostgreSQL - имеющиеся альтернативы команде DESCRIBE в MySQL"
§ Популярные темы недели на форуме
Топик Сообщений Просмотров
46 (Learn) 2 11
89 (Learn) 2 8
§ Авторы недели на форуме
Автор Сообщений
Nividimka 2
lutik 2
§ Лидеры недели
Участник w_sel all_sel select dml Всего Рейтинг
Bulyakarov S. (Sa1avat) 6 98 13 0 13 257
Ghitinomagomedov (gmansur88) 7 18 9 0 9 4417
Абрамова Ю. (GalaxyTears) 3 25 7 0 7 2599
Саркисьян Г. (gennadi_s) 3 173 6 0 6 32
Suprun D. (TimonSP) 2 160 4 12 16 75
Макаров И.А. (_Bkmz_) 2 157 4 7 11 93
Главинский А. (LaHaWor) 3 4 4 0 4 2850
Continue reading "Новости за 2025-03-22 - 2025-03-28"
Пересказ статьи Erik Darling. The How To Write SQL Server Queries Correctly Cheat Sheet Conditional Join and Where Clauses
Так или иначе
Оператор OR вполне легитимно может использоваться в операторах SQL. Если вы используете предложение IN, велика вероятность, что оптимизатор преобразует его в последовательность операторов OR.
Например, IN(1, 2, 3) может в результате стать = 1 OR = 2 OR = 3 без вашего участия. Оптимизаторы так забавляются. Забавные маленькие кролики.
Проблема обычно возникает не тогда, когда вы пишете в запросе IN или OR для одного столбца со списком литеральных значений, а когда вы:
- Используете OR по множеству столбцов в предложении WHERE.
- Используете OR в предложении JOIN любого сорта.
- Используете OR для обработки параметров или переменных NULL.
Добавьте немного сложности, объединив две таблицы и попросив что-то вроде:
Continue reading "Шпаргалка по правильному написанию запросов к SQL Server: условное соединение и предложение WHERE"
Пересказ статьи Prakash K. Unlocking Power with Updatable Views in SQL Server
Реляционные системы управления базами данных (РСУБД) основаны на структурированном языке запросов (SQL) в плане управления и манипуляции данными. Представления в SQL Server предоставляют эффективный способ абстрагироваться от лежащих в основании сложных структур данных. В то время как многие представления доступны только на чтение, обновляемые представления открывают дверь к динамической манипуляции данными с помощью операций INSERT, UPDATE и DELETE. В этом руководстве мы познакомимся с понятием обновляемых представлений в SQL Server, исследуем операции с ними и дадим полезный пример.
Понятие обновляемого представления
Обновляемое представление в SQL Server - это представление, которое допускает модификацию, т.е. применение таких операторов, как INSERT, UPDATE или DELETE к таблицам через представление. Чтобы сделать представление обновляемым, оно должно удовлетворять нижеприведенным критериям.
Continue reading "Раскройте силу обновляемых представлений в SQL Server"
§ Популярные темы недели на форуме
Топик Сообщений Просмотров
89 (SELECT) 6 6
31 (DML) 5 7
780 (SELECT) 2 10
§ Авторы недели на форуме
Автор Сообщений
JavidanLi 7
_Bkmz_ 4
qwrqwr 3
selber 2
Sa1avat 2
Continue reading "Новости за 2025-03-15 - 2025-03-21"
В SQL Server 2022 появилась функция генерации числовой последовательности, GENERATE_SERIES. Подобная функция имеется в некоторых других СУБД, в частности, в PostgreSQL. Вот, например, как с помощью этой функции решалась
следующая задача из учебника.
Вывести последовательность дат между датами первого и последнего полета пассажира с id_psg = 5.
Решение:
SELECT generate_series(MIN(date), MAX(date), '1 day')
FROM pass_in_trip
WHERE id_psg = 5;
Continue reading "GENERATE_SERIES в SQL Server"
Пересказ статьи Yasin Sari. LATERAL as an Advanced SQL Feature
Я всегда представляю себе аналитика данных человеком, который имеет правильный инструмент для решения реальных проблем, во многом подобный швейцарскому армейскому ножу. Lateral - это одна из функций стандарта ANSI SQL, которая вам может пригодиться в некоторых случаях, поскольку она помогает легко решать проблемы. Я хочу продемонстрировать ее на нескольких примерах, чтобы показать, как она может улучшить анализ данных, обеспечив большую гибкость, скорость, сократить время и так далее.
Тематика
- SQL
- PIVOT
- PostgreSQL
- LATERAL JOIN
- Коррелирующие подзапросы
Continue reading "LATERAL как расширенная функция SQL"
§ Популярные темы недели на форуме
Топик Сообщений Просмотров
190 (Learn) 3 4
126 (SELECT) 3 6
§ Авторы недели на форуме
Автор Сообщений
JavidanLi 6
lutik 5
Nitrinos 2
selber 2
zigmund1 2
Continue reading "Новости за 2025-03-08 - 2025-03-14"
Пересказ статьи MyFaduGame. Mastering FastAPI CRUD Operations with Async SqlAlchemy and PostgreSQL
В этом подробном руководстве мы познакомимся с построением надежных операций CRUD (Create, Read, Update, Delete) с помощью FastAPI, используя мощь Async SqlAlchemy и интеграцию с PostgreSQL для высокопроизводительного асинхронного взаимодействия с базой данных.
Мы разделим наш проект Fruit Full на несколько этапов:
- Введение в FastAPI и Async SqlAlchemy: Мы начнем с введения в FastAPI, современный, высокопроизводительный фреймворк Python для построения API, и Async SqlAlchemy, асинхронную версию SqlAlchemy, которая допускает неблокирующие операции с базой данных.
- Установка проекта: Мы проведем вас через установку проекта FastAPI с помощью SqlAlchemy и PostgreSQL. Это включает создание модели, конфигурирование соединения с базой данных и определение асинхронных операций CRUD.
- Асинхронные операции CRUD: Изучение выполнения асинхронных операций CRUD, используя FastAPI и Async SqlAlchemy. Мы обсудим асинхронное создание, чтение, обновление и удаление записей в базе данных.
- Обработка связей: Изучение асинхронной обработки связей между таблицами базы данных с использованием Async SqlAlchemy. Мы обсудим подробно связи один-к-одному, один-ко-многим и многие-ко-многим.
- Обработка ошибок и проверка: Изучение методов обработки ошибок и проверки данных в FastAPI, гарантирующих целостность и безопасность ваших конечных точек API. Мы обсудим проверку входа, ответы об ошибках и обработку исключений.
Continue reading "Освоение операций FastAPI CRUD с помощью Async SqlAlchemy и PostgreSQL"
Пересказ статьи Lorenzo Uriel. The SQL Week: Data Modeling
Наличие хорошей документации и четко определенного процесса сделают вас более способными что-то создавать и внедрять.
Одним из наиболее любимых мной процессов является моделирование данных.
Итак, из чего состоит процесс моделирования?
Можно упомянуть:
1. Анализ требований
2. Концептуальная модель (ERD - ERM)
3. Логическая модель (таблицы и связи)
4. Физическая модель (создание таблиц в базе данных)
Это будут пункты этой части, в результате которой я хочу построить с вами реальный пример с нуля.
Continue reading "Неделя SQL: моделирование данных"
Прекрасную половину сайта SQL-EX поздравляем с праздником 8 Марта и желаем здоровья и счастья!
§ Популярные темы недели на форуме
Топик Сообщений Просмотров
239 (SELECT) 4 2
82 (Learn) 3 7
87 (Learn) 3 9
4 (SELECT) 3 7
235 (SELECT) 2 4
§ Авторы недели на форуме
Автор Сообщений
Nividimka 4
JavidanLi 4
pegoopik 4
morozhenka 4
Gambit87 3
Continue reading "Новости за 2025-03-01 - 2025-03-07"
Пересказ статьи Python Code Nemesis. Understanding returning in SQLAlchemy with Python
Предложение RETURNING, имеющееся во многих диалектах SQL, например, PostgreSQL, MariaDB и SQL Server, позволяет возвращать значения из строк, к которым применялся оператор UPDATE или DELETE, при выполнении самого оператора. Это может быть особенно полезно, когда вам необходимо:
- Получить значения после их обновления и использовать их затем в коде.
- Получить информацию об удаленных строках для журнализации и аудита.
Давайте начнем.
Continue reading "Понимание RETURNING в SQLAlchemy с Python"
Пересказ статьи Andy Brownsword. Solving Parameter Sniffing with Multiple Execution Plans
Динамический SQL имеет много вариантов использования, и один из них может помочь нам разрешить проблемы прослушивания параметра (Parameter Sniffing). Здесь мы рассмотрим как он может использоваться для генерации
нескольких планов выполнения для одного и того же запроса.
Прослушивание параметра является общеизвестной проблемой. Даже для простых запросов мы можем столкнуться с получением неоптимального плана. Имеется несколько способов с применением динамического SQL, которые мы можем использовать для решения этой проблемы. Тут мы продемонстрируем один из них: инъекция комментария.
Давайте начнем с процедуры и индекса в базе данных StackOverflow:
CREATE OR ALTER PROCEDURE dbo.GetPopularUsers (
@MinimumViews INT
) AS
BEGIN
SELECT Id, DisplayName
FROM dbo.Users
WHERE [Views] >= @MinimumViews;
END
GO
CREATE INDEX [Views]
ON dbo.Users ([Views]);
Continue reading "Решение проблемы прослушивания параметра при помощи нескольких планов выполнения"
Пересказ статьи Erik Darling. The How To Write SQL Server Queries Correctly Cheat Sheet: Cross Apply And Outer Apply
Ситуации
В конечном счете я преобразую множество производных соединений, особенно тех, которые используют оконные функции, к использованию синтаксиса APPLY. Иногда для этого существуют хорошие индексы, в других случаях необходимо их создавать, чтобы избежать
"Жадного спула индексов".
Одним из наиболее частых вопросов, которые я получаю от разработчиков, является вопрос о том, когда следует использовать apply, а не другой синтаксис соединения.
Короткий ответ заключается в том, что я начинаю мысленно представлять себе, как синтаксис apply может быть полезен, когда:
- Имеется небольшая внешняя таблица (FROM) и большая внутренняя таблица (APPLY).
- Мне требуется выполнить значительный объем работы на внутренней стороне соединения.
- Целью запроса является получение top N на группу или что-то подобное.
- Я пытаюсь получить параллельные вложенные циклы вместо выбора некоторого альтернативного плана.
- Чтобы заменить скалярную UDF в списке select на встроенную (inline) UDF.
- Чтобы использовать конструкцию VALUES необычным способом.
Большинство этого ситуативно и требует немного опыта и знакомства, чтобы быстро это заметить.
Continue reading "Шпаргалка по правильному написанию запросов к SQL Server: Cross Apply и Outer Apply"