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
Хотите получить N процентов строк из вашей таблицы?

Вы можете сделать это в SQL с помощью:

SELECT * FROM ...
ORDER BY ...
FETCH FIRST 10 PERCENT ROWS ONLY
👍71
Что такое холодная миграция?

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

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

Преимущества холодной миграции

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

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

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

В-третьих, холодная миграция дает возможность провести дополнительные операции, такие как очистка и оптимизация данных, во время переноса. Это может улучшить производительность и эффективность базы данных после обновления.
👍4
#Вопросы_с_собеседования
Что такое SET ANSI_NULLS в SQL

SET ANSI_NULLS
— это команда, которая устанавливает, будут ли значения NULL обрабатываться как неопределенные или как равные другим значениям при сравнении и операциях сравнения в SQL запросах. Если SET ANSI_NULLS ON, то значения NULL будут считаться неопределенными и не равными любому другому значению, включая другое значение NULL. Если SET ANSI_NULLS OFF, то значения NULL будут считаться равными другим значениям NULL, и неопределенные значения будут считаться равными любому другому значению.
👍6
Функция LOG() в SQL Server

Функция LOG() в SQL Server принимает один аргумент - число, для которого необходимо вычислить натуральный логарифм.

Например, если мы хотим вычислить натуральный логарифм числа 10, мы можем использовать следующий SQL-запрос:
SELECT LOG(10) AS NaturalLogarithm;

Результатом этого запроса будет число, представляющее натуральный логарифм числа 10. Функция LOG() также может быть использована в сочетании с другими функциями и операторами для выполнения более сложных вычислений.
👍6
Использование рекурсивных запросов для управления иерархиями данных

Некоторые таблицы в 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