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 могут иметь неявный вид иерархии данных. Например, в нашей таблице сотрудников для каждого сотрудника имеется идентификатор manager_id. У нас есть менеджер, который отвечает за других менеджеров, которые, в свою очередь, отвечают за других сотрудников, и так далее.

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

WITH RECURSIVE subordinate AS (
SELECT
employee_id,
first_name,
last_name,
manager_id
FROM employee
WHERE employee_id = 110 -- id of the top hierarchy employee (CEO)

UNION ALL

SELECT
e.employee_id,
e.first_name,
e.last_name,
e.manager_id
FROM employee e
JOIN subordinate s
ON e.manager_id = s.employee_id
)
SELECT
employee_id,
first_name,
last_name,
manager_id
FROM subordinate ;


В этом запросе мы создали рекурсивный CTE под названием subordinate. Он является ключевой частью запроса, поскольку проходит по иерархии данных, переходя от одной строки к строкам иерархии, расположенным непосредственно под ней.

Есть два подзапроса, соединенных между собой UNION ALL; первый подзапрос возвращает верхнюю строку иерархии, а второй запрос возвращает следующий уровень, добавляя эти строки к промежуточному результату запроса. Затем снова выполняется второй подзапрос, возвращающий следующий уровень, который снова добавляется к промежуточному результату. Этот процесс повторяется до тех пор, пока в промежуточный результат не будет добавлено ни одной новой строки. Наконец, главный запрос возвращает данные в том виде, в котором мы ожидаем.
👍5🔥1
Что такое горячая миграция?

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

Преимущества горячей миграции

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

Пример горячей миграции в SQL

Допустим, у нас есть таблица "users" в базе данных, и мы хотим добавить новое поле "phone_number". Вместо того, чтобы остановить приложение или базу данных, мы можем использовать горячую миграцию для добавления этого поля в существующую таблицу. В процессе горячей миграции, новое поле будет добавлено, а существующие данные будут сохранены.
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
TRUNCATE мгновенно удаляет все строки в таблице

Одновременно удалите строки из дочерних таблиц с помощью функции

TRUNCATE TABLE ... CASCADE

Для этого внешние ключи должны быть ON DELETE CASCADE
👍6🔥2
SQL Access: Запросы на обновление

Продолжаем делиться циклом видео про SQL Access. В этот раз ты узнаешь, как создать запрос на обновление. Создав такой запрос в Microsoft Access, можно без труда обновить большое количество записей всего за пару кликов.

📘Смотреть видео
👍4
Огромная шпаргалка с готовыми запросами SQL (SQLite)

Смотреть
👍4🔥1
LEFT JOIN

В данном видео уроке вы рассмотрите работу с внешним соединением в SQL - LEFT OUTER JOIN.

LEFT OUTER JOIN позволяет объединить все строки из левой таблицы и соответствующие записи из правой таблицы. Если совпадений нет, то результатом будет NULL с правой стороны.

📖Видео урок
👍8
Подключение базы данных MySQL с помощью JDBC

Для
того, чтобы подключить базу данных MySQL, нам потребуется четыре вещи:

— Строка подключения JDBC (например: jdbc:mysql://localhost:3306/test).
— Имя пользователя (root).
— Пароль (root).
— База данных с некоторым количеством таблиц для примера (например, база данных книг).

Строка подключения для MySQL начинается с jdbc:mysql. Это название протокола соединения, за которым следуют хост и порт подключения, на которых запущена база данных. В нашем случае это localhost с портом по умолчанию 3306 (если вы его не поменяли при установке). Следующая часть — test — имя базы данных, которая уже существует в MySQL.
👍4🔥1
MySQL функция CONCAT_WS

Функция CONCAT_WS объединяет строки с разделителем.

Синтаксис этой функции следующий:
CONCAT_WS(separator, str1, str2, ...)

где separator - это разделитель, а str1, str2, ... - это строки, которые нужно объединить.

#это_база
👍9
Математические операции

Благодаря данному видео ты узнаешь о различных математических операторах PostgreSQL. Некоторые из этих операторов являются стандартными и присутствуют в любой СУБД. При этом некоторые операторов может не быть в других СУБД, либо же синтаксис может отличаться.

📘Смотреть видео
👍3
EXISTS в SQL

Оператор EXISTS используется для проверки наличия записей в подзапросе. Он возвращает значение TRUE, если подзапрос возвращает хотя бы одну строку, и FALSE, если подзапрос не возвращает ни одной строки.

Оператор EXISTS обычно используется в операторе SELECT для фильтрации данных.

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

SELECT *
FROM Customers
WHERE EXISTS (
SELECT *
FROM Orders
WHERE Orders.CustomerID = Customers.CustomerID
AND Orders.OrderDate > '2021-01-01'
)
👍9
⬇️ 15 примеров задач по SQL на собеседовании по вакансии системного аналитика

Если вы читаете этот материал, скорее всего, вы рассматриваете перспективы карьерного роста в области системного анализа, и возможно, готовитесь к собеседованию.

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

Смотреть статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Порядок выполнения команд в SQL
👍30
Pipelined Relational Query Language (PRQL)

PRQL - это современный язык для преобразования данных, который меняет обращение к базе данных на логически выстроенный пайплайн (конвейер).

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

Более того, PRQL может быть использован с любой базой данных, которая использует SQL, что делает его универсальным инструментом для работы с данными.
👍3
🖥 sqlite-web - это веб-браузер баз данных SQLite, написанный на Python.

Работает с существующими базами данных SQLite или может использоваться для создания новых баз данных.
Экспорт данных в формате JSON или CSV.
Импорт файлов JSON или CSV.


$ pip install sqlite-web

Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Termdbms

Удобный инструмент для просмотра и редактирования файлов базы данных(SQLite, CSV), написанный на Go.

Позволяет перемещаться по таблицам с любым количеством столбцов
Позволяет перемещаться по таблицам с любым количеством строк
Запускает SQL-запросы и отображайте результаты
Позволяет сохранять SQL-запросы в буфер обмена
Обновление, удаление или вставка с помощью SQL, с поддержкой отмены / повтора для SQLite
Работает с клавиатурой и мышью.
Автоматическое форматирование JSON в режиме выбора / форматирования
Позволяет редактировать многострочный текст с помощью элементов управления, подобных vim
Отмена / возврат изменений (только SQLite)
Темы (нажмите T в режиме таблицы)
Вывод результатов запроса в формате CSV
Конвертируйте .csv в базу данных SQLite! Экспортируйте снова как базу данных SQLite или файл .csv!

Github
👍2