SQL и БД Learning – Telegram
SQL и БД Learning
10.2K subscribers
797 photos
9 videos
22 files
445 links
№ 5060218708

Изучаем SQL с нуля

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
Download Telegram
Трюк на SQL

Один из интересных и полезных трюков в SQL - использование общих табличных выражений (Common Table Expressions, CTE) для создания временных наборов результатов, которые могут быть использованы в более сложных запросах. CTE обеспечивают более чистый и организованный подход к написанию сложных запросов, особенно при работе с рекурсивными запросами или при необходимости разделения запроса на несколько логических частей.

В этом примере CTE используется для рекурсивного обхода иерархических данных, например, структуры организации. Сначала выбираются сотрудники без менеджеров (верхний уровень иерархии), затем рекурсивно добавляются их подчиненные. Это очень полезно для работы с древовидными структурами данных, такими как организационные схемы, категории продуктов и т.д.
🔥9👍4
JSON_MODIFY в Microsoft SQL Server

JSON_MODIFY
- это функция в Microsoft SQL Server, которая позволяет изменять свойства в объекте JSON и возвращать измененный объект JSON.

Синтаксис использования функции JSON_MODIFY выглядит следующим образом: JSON_MODIFY ( expression , path , newValue )
- expression: Это объект JSON, который вы хотите изменить.
- path: Это путь к свойству, которое вы хотите изменить. Он должен быть в формате “$.ключ”, где “ключ” - это имя свойства, которое вы хотите изменить.
- newValue: Это новое значение, которое вы хотите присвоить свойству.

Функция также может использоваться в сочетании с другими функциями JSON в SQL Server, такими как JSON_VALUE и JSON_QUERY, для манипулирования JSON-данными.
👍21
#Вопросы_с_собеседования
Объясните, что такое фантомное чтение в транзакциях баз данных, и какие меры могут быть приняты для его предотвращения?

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

Для предотвращения фантомного чтения можно использовать строгие уровни изоляции транзакций, например, уровень сериализуемости, который гарантирует, что транзакции выполняются так, как если бы они происходили в отдельной последовательности, а не параллельно. Это может быть достигнуто с помощью механизмов блокировки строк, предотвращающих другие транзакции от внесения изменений в строки, которые используются текущей транзакцией, или с помощью многоуровневых версий снимков данных (MVCC), которые предоставляют каждой транзакции консистентный снимок базы данных на определенный момент времени.
👍6
Если не указывается ни NULL, ни NOT NULL, то столбец интерпретируется так, как будто указано...
Anonymous Quiz
46%
NULL
9%
NOT NULL
34%
DEFAULT
11%
Узнать ответ
👍6
Прыжок по облакам: кейс миграции MS SQL Server из Azure в VK Cloud

В этом материале разобрали процесс миграции PaaS MS SQL Server с гигабайтами данных из Azure в VK Cloud, отличия от работы иностранными инструментами, с возникшие проблемы, важные выводы.

Смотреть статью
👍21
#Вопросы_с_собеседования
Какая разница между реляционной базой данных и графовой базой данных, и какая из них лучше для работы с социальными сетями?


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

Для работы с социальными сетями лучше подходит графовая база данных. Социальные сети характеризуются сложными связями между пользователями, например, дружба, подписки и взаимодействия. Графовые базы данных эффективно моделируют такие связи и обеспечивают быстрый доступ к информации, связанной с каждым пользователем и его связями.
👍82
#Вопросы_с_собеседования
Объясните, как SQL обрабатывает запрос с множественными JOIN операторами, содержащими условия как на INNER, так и на LEFT JOIN, и как это влияет на производительность запроса. Приведите пример.

SQL выполняет операции JOIN последовательно в том порядке, в котором они указаны в запросе, если только оптимизатор запросов не решит изменить порядок для повышения эффективности. INNER JOIN строго соединяет строки, удовлетворяющие условиям соединения, в то время как LEFT JOIN включает все строки из левой таблицы, даже если соответствующие строки в правой таблице отсутствуют. Смешивание этих двух типов JOIN может значительно повлиять на результаты запроса и его производительность. Если запрос содержит неоптимизированные или избыточные JOIN, это может привести к увеличению времени выполнения за счет большего объема обрабатываемых данных и сложности операций соединения.

SELECT A.*, B.*, C.*
FROM A
INNER JOIN B ON
A.id = B.a_id
LEFT JOIN C ON
A.id = C.a_id
WHERE A.some_column = 'some_value';


В этом запросе сначала выполняется INNER JOIN между таблицами A и B, а затем LEFT JOIN с таблицей C. Результат может быть значительно отличаться, если поменять порядок JOIN, и это может повлиять на производительность запроса.
👍42
#Вопросы_с_собеседования
Как выполнить сопоставление без учёта регистра с использованием регулярных выражений в PostgreSQL?


Чтобы выполнить сопоставления без учета регистра с использованием регулярного выражения, мы можем использовать выражение POSIX (~*) из операторов сопоставления с образцом. Например:
'interviewbit' ~* '.*INTervIewBit.*'
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
🎉 Интерактивная SQL шпаргалка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍7
Мемасик
👍27🔥81
Дорогие подписчики, поздравляю вас с наступающим, а кого-то уже и с наступившим Новом Годом! Пусть 2024 станет для вас чем-то особенным и незабываемым.
🎄284👍3
#Вопросы_с_собеседования
Какое влияние оказывает использование подзапросов на производительность SQL-запроса, и какие альтернативы существуют для оптимизации запросов без использования подзапросов?


Подзапросы в SQL могут ухудшить производительность, особенно если они неэффективно написаны или используются в больших таблицах. Подзапросы могут привести к множественным полным сканированиям таблицы, увеличивая время выполнения запроса. В качестве альтернативы можно использовать объединения (JOINS), которые часто более эффективны, поскольку они позволяют серверу оптимизировать запрос. Также можно использовать временные таблицы или представления (views), что может улучшить читаемость запроса и его производительность за счет предварительного вычисления частей запроса.
👍14
#Вопросы_с_собеседования
Как вы оптимизируете запросы SQL в больших базах данных для улучшения производительности, и какие факторы вы учитываете при анализе и улучшении эффективности запроса?


Для оптимизации SQL-запросов в больших базах данных, важно учитывать следующие факторы: использование индексов для ускорения поиска данных; избегание излишних операций соединения таблиц, особенно в случае больших наборов данных; оптимизация подзапросов и обеспечение их эффективности; использование агрегатных функций и временных таблиц для сокращения объёма обрабатываемых данных; анализ плана выполнения запроса для выявления узких мест. Также важно регулярно обновлять статистику базы данных для точной оценки планов выполнения и использовать подходящие методы кэширования для повторно используемых запросов.
👍8🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
SuperDuperDB для использования в AI-проектах

Предлагает специализированные функции, включающие:
✔️ деплой ИИ-API;
✔️ утилиту для тренировки моделей;
✔️ Feature Store - это «магазин» фичей, интерфейс между данными и моделями ML;
✔️ полноценную векторную базу данных.

Он может быть интегрирован с различными базами данных, такими как mongoDB и PostgreSQL, а также с платформами Amazon S3 и фреймворками машинного обучения, такими как PyTorch, Transformers и scikit-learn.

🐱 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2