sql_tg | Unsorted

Telegram-канал sql_tg - SQL и БД Learning

10287

№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning

Subscribe to a channel

SQL и БД Learning

MySQL ускорение SQL запросов

Ускорение SQL запросов в MySQL может быть достигнуто следующими способами:

1. Индексы: использование индексов может ускорить поиск и сортировку данных в ваших таблицах.

2. Оптимизация структуры таблиц: важно убедиться, что структура таблиц оптимизирована для выполнения запросов.

3. Оптимизация запросов: проверьте ваши запросы на оптимизацию, убедитесь, что вы используете правильные операторы JOIN и индексы для улучшения производительности.

4. Кэширование данных: использование кэширования данных может ускорить выполнение повторяющихся запросов.

5. Использование представлений: использование представлений может упростить запросы и улучшить их читаемость.

6. Ограничение размера выборки: используйте оператор LIMIT, чтобы выбрать только необходимые данные, это уменьшит время выполнения запроса.

7. Минимизация дубликатов данных: дубликаты данных могут увеличить размер таблицы и уменьшить производительность запросов. Удаляйте дубликаты данных или используйте оптимизированные структуры данных, такие как нормализованные таблицы.

8. Оптимизация памяти: оптимизируйте использование памяти вашей базы данных, чтобы уменьшить время обработки запросов.

9. Мониторинг производительности: важен для определения причин низкой производительности и для поиска способов ее улучшения. Он включает в себя слежение за показателями, такими как загруженность процессора, использование памяти, время ответа на запросы и т. д.

10. Использование индексов: используйте индексы, чтобы ускорить поиск данных в таблице. Обеспечьте, чтобы ваши индексы были актуальными и эффективными.

Читать полностью…

SQL и БД Learning

#вопросы_с_собеседований

Как распарсить строку в SQL?

Часто возникает необходимость распарсить строку в SQL запросе, чтобы получить отдельные элементы. Существует несколько способов это сделать.

1. Использование функции SUBSTRING

Для извлечения отдельных элементов из строки можно использовать функцию SUBSTRING.

2. Использование функции CHARINDEX

Для извлечения подстроки из строки можно использовать функцию CHARINDEX.

3. Использование функции PARSENAME

Для извлечения отдельных элементов из строки, разделенных определенным символом, можно использовать функцию PARSENAME.

Читать полностью…

SQL и БД Learning

DeepSeek — самая мощная нейросеть в мире? Честно сравним и разберемся на примерах вместе с Кириллом Пшинником, СЕО университета Зерокодер.

⚡️Что ждет вас на вебинаре?

— Сравним DeepSeek-R1 и QWEN 2.5-Max с ChatGPT – кто быстрее, точнее и эффективнее?
— Покажем, как использовать DeepSeek без ограничений и блокировок;
— Разберем, как можно зарабатывать на нейросетях и какие вакансии будут востребованы в 2025 году.

👉 Регистрируйтесь прямо сейчас
Все участники получат готовые инструменты для работы с нейросетями. Эфир подойдет всем, кто хочет сэкономить время, монетизировать навыки и оставаться в тренде технологий 2025 года.

PS: Это первый полноценный практикум от экспертов по DeepSeek. Узнайте и погрузитесь в революционные изменения AI сферы по ссылке.

erid: 2W5zFJph6it
ООО Зерокодер, ИНН 9715401631

Читать полностью…

SQL и БД Learning

#вопросы_с_собеседований
SQL-запрос для поиска n-й по величине зарплаты/платежа или 3-й по величине зарплаты/платежа

Чтобы найти n-ую самую высокую зарплату, вы можете использовать подзапрос с функцией DENSE_RANK() для вычисления ранга каждой зарплаты, а затем отфильтровать результаты, чтобы включить только строку с рейтингом, равным n.

Вы также можете использовать условия LIMIT и OFFSET , чтобы найти n-ую самую высокую зарплату.

Читать полностью…

SQL и БД Learning

Стоимостной подход в SQL

Стоимостной подход
- это один из методов оптимизации запросов в SQL. Он основывается на том, что оптимальный план запроса может быть выбран путем оценки стоимости каждого возможного плана и выбора того, который имеет наименьшую стоимость.

Для выполнения данного запроса в SQL сервере может быть несколько возможных планов, например:

1.
Сначала выполнить выборку из таблицы customers, затем из orders. Далее объединить результаты с помощью оператора JOIN по customer_id.
2. Сначала выполнить выборку из таблицы orders, затем из customers. Далее объединить результаты с помощью оператора JOIN по customer_id.
3. Использовать индексы на таблицах для выполнения быстрой выборки.

Для выбора наилучшего плана выполнения запроса SQL-сервер оценивает стоимость каждого плана, исходя из статистики таблиц, наличия индексов и других факторов.

Например, если таблица customers содержит много строк и немного соответствующих строк в таблице orders, то выборка из таблицы customers должна быть выполнена первой, чтобы уменьшить количество строк, которые нужно объединять с таблицей orders. Таким образом, стоимостной подход позволяет выбирать наиболее эффективный план выполнения запроса, что ускоряет работу SQL-сервера и сокращает время выполнения запросов.

Читать полностью…

SQL и БД Learning

Не только SQL: знакомимся с документо-ориентированной базой данных MongoDB

Читать статью

Читать полностью…

SQL и БД Learning

DataHub: веб-песочница для тех, кто изучает SQL

Читать статью

Читать полностью…

SQL и БД Learning

Как узнать размер файла с помощью SQL?

Вы можете узнать размер файла, используя функцию DATALENGTH. Эта функция возвращает длину выражения в байтах.

Замените [имя_столбца_с_файлом] на имя столбца, содержащего файл, [имя_таблицы] на имя таблицы, содержащей файл, а [условие] на условие выборки файлов.

Например, если у вас есть таблица Файлы с столбцом Содержимое_файла, и вы хотите узнать размер файла с id 1, обращаемся ко второй части фото.

Читать полностью…

SQL и БД Learning

Что это значит для ваших отношений?
Каждый 3-й скрывает цифровую психотерапию (данные MindHealth ). Почему это НЕ предательство? 💔  

Что это значит?  
Не вина, а крик о помощи! ИИ стал «безопасным слушателем» там,там,) где мы не смогли создать доверие.  
 
Как открыть диалог без скандала? Читайте 👉 тут

Реклама. ИП Теребенин Евгений Валентинович erid:2VtzqvzsdQC

Читать полностью…

SQL и БД Learning

Важные моменты при сравнении record и NULL:

При использовании ROW expression в SQL и сравнении с IS NULL результат будет TRUE только в том случае, если каждый столбец содержит значение NULL. Это важно знать, чтобы избежать ошибок в своем коде.

Таким образом, при сравнении ROW expression с NULL необходимо учитывать, что результат будет зависеть от того, есть ли в каждом столбце значение NULL или нет.

Читать полностью…

SQL и БД Learning

Count (1) вместо count (*)

При любой возможности выбирайте count(1) вместо count(*). Оператор count(*) принимает в расчет все столбцы таблицы для выполнения вычислений, тогда как count(1) учитывает только первый столбец.

Обратите внимание, что результат остается неизменным, будь то count (*) или count (1).

При использовании count(1) движок базы данных задействует меньше ресурсов и работает быстрее. В случае небольших таблиц эта разница будет незаметна, но если дело касается больших из них, то данный фактор существенно отразится на производительности запросов.

Читать полностью…

SQL и БД Learning

Разница между using и on в join-запросах

Join-запросы используются для объединения данных из нескольких таблиц в один результат. В MySQL для этого можно использовать конструкции using и on. Обе конструкции используются для указания условий объединения таблиц, но они имеют некоторые различия.

1 - Конструкция using используется, когда объединение происходит по столбцу, имеющему одинаковое имя в обеих таблицах.

2 - Конструкция on используется, когда объединение происходит по каким-то другим условиям.

Конструкция using удобна в случаях, когда объединение происходит по столбцам с одинаковыми именами, а on - в случаях, когда объединение происходит по другим условиям.

Читать полностью…

SQL и БД Learning

Прибавляем время

Функция TIMESTAMPADD(unit, value, datetime) прибавляет к дате и времени суток datetime временной интервал value.

В нашем примере мы прибавляем к нашей дате 3 часа.

Читать полностью…

SQL и БД Learning

✅ Как настроить реакцию на изменения в таблицах Postgres?

Как передать эти изменения в микросервисы, в Kafka и в другие СУБД, например в Clickhouse?

Расскажем на открытом уроке «Событийная интеграция Postgres» посвященный курсу «PostgreSQL для администраторов баз данных и разработчиков»

✅ Научитесь выбирать правильный способ событийной интеграции

✅ Посмотрите, как и что можно реализовать для надежной передачи данных из Postgres во внешние системы

👉Узнаете про опыт других предприятий и протестируйте обучение на открытом уроке

https://tglink.io/1aeaa13b7a55?erid=2W5zFJmzZdJ

#реклама
О рекламодателе

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Как найти дубли в поле email?

Функция COUNT() возвращает количество строк из поля email. Оператор HAVING работает почти так же, как и WHERE, вот только применяется не для всех столбцов, а для набора, созданного оператором GROUP BY.

Читать полностью…

SQL и БД Learning

DROP VIEW

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

Чтобы удалить представление, используйте оператор DROP VIEW, за которым следует имя представления, которое нужно удалить. Пример:

DROP VIEW имя_представления;
имя_представления - то, что нужно удалить.

Использование DROP VIEW может быть полезно, если вам больше не нужно определенное представление, и вы хотите освободить место в базе данных. Однако, прежде чем удалить представление, убедитесь, что оно больше не нужно для вашей работы с базой данных.

Читать полностью…

SQL и БД Learning

База по шардированию базы

Смотреть статью

Читать полностью…

SQL и БД Learning

Команда SHRINK FILE

Команда SHRINK FILE используется для уменьшения размера физического файла базы данных SQL Server.

Уменьшение размера файла может быть полезным в следующих случаях:

- Файл базы данных был увеличен в размере, но большая часть его не используется.
- Файл базы данных был скопирован на другой диск и теперь необходимо освободить место на исходном диске.
- Файл базы данных был резервно скопирован и теперь необходимо освободить место на диске.

Для использования команды SHRINK FILE необходимо выполнить следующие шаги:

1. Определить имя файла базы данных и имя файла журнала транзакций, которые вы хотите уменьшить.
2. Определить новый размер файла базы данных и файла журнала транзакций.
3. Выполнить команду SHRINK FILE с использованием определенных значений.

При использовании команды SHRINK FILE необходимо учитывать следующие нюансы:

- Уменьшение размера файла может занять некоторое время и во время выполнения может наблюдаться блокировка базы данных.
- Уменьшение размера файла может повлиять на производительность базы данных.
- Уменьшение размера файла журнала транзакций может привести к потере данных.

Читать полностью…

SQL и БД Learning

Регулярные выражения в реальных задачах

Смотреть статью

Читать полностью…

SQL и БД Learning

Стоимостной подход в SQL

Стоимостной подход
- это один из методов оптимизации запросов в SQL. Он основывается на том, что оптимальный план запроса может быть выбран путем оценки стоимости каждого возможного плана и выбора того, который имеет наименьшую стоимость.

Для выполнения данного запроса в SQL сервере может быть несколько возможных планов, например:

1.
Сначала выполнить выборку из таблицы customers, затем из orders. Далее объединить результаты с помощью оператора JOIN по customer_id.
2. Сначала выполнить выборку из таблицы orders, затем из customers. Далее объединить результаты с помощью оператора JOIN по customer_id.
3. Использовать индексы на таблицах для выполнения быстрой выборки.

Для выбора наилучшего плана выполнения запроса SQL-сервер оценивает стоимость каждого плана, исходя из статистики таблиц, наличия индексов и других факторов.

Например, если таблица customers содержит много строк и немного соответствующих строк в таблице orders, то выборка из таблицы customers должна быть выполнена первой, чтобы уменьшить количество строк, которые нужно объединять с таблицей orders. Таким образом, стоимостной подход позволяет выбирать наиболее эффективный план выполнения запроса, что ускоряет работу SQL-сервера и сокращает время выполнения запросов.

Читать полностью…

SQL и БД Learning

SQL SELECT TOP

Выражение SELECT TOP используется для определения количества записей при выборке.

SQL SELECT TOP полезен для больших таблиц с тысячами записей. Возврат большого количества записей может повлиять на производительность.

Не все системы баз данных поддерживают предложение SELECT TOP. MySQL поддерживает предложение LIMIT для выбора ограниченного количества записей, тогда как Oracle использует FETCH FIRST n ROWS ONLY и ROWNUM.

Все виды синтаксисов - здесь

В таблице приведена выборка из таблицы "Customers" базы данных Northwind

В фото разбираем такие примеры, как:
1 фото
- SQL TOP, LIMIT и FETCH FIRST
2 фото - SQL TOP PERCENT
3 фото - Использование выражения WHERE

Читать полностью…

SQL и БД Learning

Table Hints в T-SQL

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

Некоторые хинты для таблиц:

- INDEX – оптимизатор запросов будет использовать указанный индекс при обработке запроса;
- FORCESEEK – оптимизатор запросов будет использовать только операцию поиска в индексе в качестве пути доступа к данным;
- FORCESCAN – оптимизатор запросов будет использовать только операцию сканирования в индексе в качестве пути доступа к данным;
- ROWLOCK – блокировки строк применяются вместо блокировки страниц или таблиц;
- HOLDLOCK – накладывает дополнительные ограничения на совмещаемую блокировку, удерживая ее до завершения транзакции. Хинт HOLDLOCK равнозначен хинту SERIALIZABLE;
- NOLOCK – разрешает «грязное чтение». Хинт NOLOCK равнозначен хинту READUNCOMMITTED;
- NOEXPAND – указывает, что индексированное представление не расширяется для доступа к базовым таблицам. Такое представление обрабатывается так же, как и таблица с кластеризованным индексом.

Хинты для таблиц указываются в предложении FROM с помощью ключевого слова WITH после названия таблицы или представления.

Читать полностью…

SQL и БД Learning

Экранирование двоичных данных в SQL

В современном веб-разработке базы данных используются повсеместно. При работе с БД часто возникает необходимость хранить двоичные данные, такие как изображения или видео. Однако, есть риск того, что двоичные данные могут содержать символы, которые могут быть восприняты как специальные символы в SQL, что может привести к непреднамеренной модификации данных.

Экранирование двоичных данных

Для экранирования двоичных данных в SQL мы можем использовать функцию mysqli_real_escape_string(). Эта функция автоматически экранирует специальные символы, такие как одинарные кавычки, двойные кавычки и обратные слеши. Чтобы использовать эту функцию, мы должны сначала установить соединение с базой данных, а затем вызвать функцию, передав ей двоичные данные в качестве аргумента.

Пример экранирования двоичных данных в PDO

«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

В PDO можно экранировать двоичные данные с помощью метода quote(). Этот метод автоматически экранирует специальные символы и возвращает заключенную в кавычки строку. Для использования этого метода мы должны сначала установить соединение с базой данных, а затем вызвать метод quote(), передав ему двоичные данные в качестве аргумента.

Читать полностью…

SQL и БД Learning

#вопросы_с_собеседований

В базе данных есть две таблицы: TABLE1 и TABLE2. Отработает ли данный запрос или упадет с ошибкой? И объяснить, почему.

Данный запрос отработает, так как синтаксически он правильный и все поля существуют в таблице и соответствуют нужному типу данных.

Поля id, value, i, y должны быть в таблице table1 и соответствовать нужному типу данных.

Группировка выполняется по столбцу i, указанному в PARTITION BY. Сортировка выполняется по столбцу y, указанному в ORDER BY.

Функция SUM с оконной функцией OVER выполняет суммирование значения столбца value сгруппированного по столбцу i и упорядоченного по столбцу y. Также выбираются все поля.

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Что такое сущности и отношения в SQL?

В SQL, сущности (или таблицы)
- это коллекции данных, которые содержат информацию о конкретных объектах или событиях. Каждая сущность представляет собой набор атрибутов, которые описывают свойства объекта или события.

Отношения в SQL - это связи между сущностями. Они описывают, как данные в одной таблице связаны с данными в другой таблице. Отношения в SQL могут быть один к одному, один ко многим, многие к одному и многие ко многим.

Например, предположим, что у нас есть две таблицы:

"Клиенты" и "Заказы". Каждый клиент может иметь множество заказов, но каждый заказ может принадлежать только одному клиенту. Это описывает отношение "один ко многим" между таблицами "Клиенты" и "Заказы".

Читать полностью…

SQL и БД Learning

Все о команде COLLATE в SQL

Команда COLLATE в SQL используется для указания правил сортировки и сравнения символов при выполнении операций сравнения в запросах.

Существует несколько вариантов значений, которые можно использовать в команде COLLATE, включая:

- _CS - с учетом регистра
- _CI - без учета регистра
- _AS - с учетом локали (language sensitive)
- _AI - без учета локали (language insensitive)

Примеры:

- Cyrillic_General_CS_AS - с учетом регистра и локали для кириллицы
- Latin1_General_CI_AI - без учета регистра и локали для латиницы

Читать полностью…

SQL и БД Learning

Векторный поиск в YDB

Новая возможность в СУБД от Яндекса: поиск по семантическому сходству. Данные (текст, изображения, аудио, видео) преобразуются в эмбеддинги и индексируются.

Поддерживаются два режима — точный и приближенный. Второй рассчитан на большие объёмы и работает быстрее за счёт снижения точности. Векторный поиск доступен для использования в облаке и on-premises.

Читать статью

Читать полностью…

SQL и БД Learning

Разворачиваем MySQL: установка и настройка

MySQL на сегодняшний день является одной из наиболее распространенных в мире. Достаточно сказать, что по рейтингам 2021 года данная СУБД лишь немного уступала Oracle.

Смотреть статью

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Что такое внешний ключ?

Внешний ключ или FOREIGN KEY также является атрибутом ограничения и обеспечивает связь двух таблиц. По сути, это поле или несколько полей, которые ссылаются на PRIMARY KEY в родительской таблице.

В нашем случае внешний ключ, привязанный к полю user_id в таблице order, ссылается на первичный ключ id в таблице users, и именно по этим полям происходит связывание двух таблиц.

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Что не так с этим запросом?

Неверное выражение BillingYear в условии WHERE. Несмотря на то, что он определен как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Программисты привыкли к тому, что операторы выполняются сверху вниз или слева направо, но в T-SQL это происходит в другом порядке.

Читать полностью…
Subscribe to a channel