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
This media is not supported in your browser
VIEW IN TELEGRAM
Выполнение побитовых операций над числами из Oracle Database 21c с помощью:

BIT_AND_AGG
BIT_XOR_AGG
BIT_OR_AGG



Преобразование десятичных чисел в двоичные (5 = 101, 6 = 110 и т. д.).
Сравнение значений в каждой битовой позиции
Преобразование результатов обратно в десятичный вид
👍1
🖥 Как работает like в SQL

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

Шаблон запроса:

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

Пример:

SELECT * FROM customers WHERE last_name LIKE 'Sm%';

Этот запрос вернет все строки из таблицы customers, в которых last_name начинается с букв "Sm".

Оператор LIKE чувствителен к регистру символов, то есть "A" и "a" будут восприниматься как разные символы. Однако, для того чтобы выполнить поиск, игнорируя регистр символов, можно использовать функцию UPPER или LOWER, например:

SELECT * FROM employees WHERE UPPER(first_name) LIKE '%JOHN%';
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
MS Access: DateSerial

DateSerial
- это функция, которая позволяет создавать даты в MS Access на основе года, месяца и дня.

DateSerial - создание даты
Функция DateSerial принимает три аргумента: год, месяц и день. Она возвращает дату в виде значения типа Date.

DateSerial - использование с другими функциями
DateSerial можно использовать с другими функциями MS Access для выполнения различных операций с датами.
👍2
С 8 марта прекрасных девушек 🌹!
Please open Telegram to view this post
VIEW IN TELEGRAM
29🔥6👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 SQLFlow - отличный инструмент для визуализации SQL-запросов.

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


https://github.com/sqlparser/sqlflow_public/blob/master/install_sqlflow.md
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥52
Хотите получить 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