10287
№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
6 SQL-запросов, о которых должен знать каждый дата-инженер
Смотреть статью
Руководство по наиболее востребованным базовым командам SQL
Смотреть статью
📢SQL Translator - это инструмент для преобразования запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.git clone https://github.com/whoiskatrin/sql-translator.git
Github
Проект
#Вопросы_с_собеседования
❓При выборке из таблицы workers выведите дату в формате '31.12.2025'
Ответ на картинке.
Как избежать распространенных ошибок при работе с СУБД
Смотреть статью
Производительные или и выгодные базы данных в облаке
Безопасные, масштабируемые и отказоустойчивые базы данных — одна из ключевых потребностей любого проекта. Именно такие предлагает Selectel. СУБД под разные запросы: от универсальной PostgreSQL до поисковой и аналитической БД Opensearch
Новые клиенты сейчас могут получить до 30 000 бонусов на использование облачных баз данных Selectel. Провайдер гарантирует:
🔹Высокую производительность. Выбирайте оптимальную конфигурацию кластера на базе мощного железа и локальных NVMe-дисков.
🔹Надежность. Автоматические бесплатные бэкапы с восстановлением вплоть до секунды — на стороне Selectel. А создать отказоустойчивый кластер можно всего от двух нод и сэкономить до 33%.
🔹Гибкое масштабирование. При росте нагрузки можно поменять конфигурацию облачного сервера и количество реплик без простоя.
Успейте зарегистрироваться и оставить заявку на участие в акции, чтобы протестировать сервис бесплатно: https://slc.tl/tqdcp
Реклама. АО "Селектел". erid:2W5zFH64PvY
NOT NULL в CREATE TABLE
Следующий SQL гарантирует, что столбцы "ID", "LastName", и "FirstName" не будут принимать нулевые значения при создании таблицы "Persons".
#Вопросы_с_собеседования
❓Что делает оператор MERGE?
Ответ:
MERGE позволяет осуществить слияние данных одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется UPDATE, а если нет - INSERT. При этом изменять поля таблицы в секции UPDATE, по которым идет связывание двух таблиц, нельзя.
Популярная задача на собеседовании: сотрудники с максимальной зарплатой в отделе
Смотреть статью
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Смотреть статью
#вопросы_с_собеседований
Какие есть SQL-операторы для составления условий?
-WHERE - используется для фильтрации строк в таблице на основе заданного условия. Например:
- LIKE - используется для поиска строк, которые соответствуют заданному шаблону.
- BETWEEN - используется для выборки строк, значения которых находятся в заданном диапазоне.
- IN - используется для указания множества значений. Он возвращает результат, когда значение соответствует одному из заданных значений.
- IS NULL - оператор IS NULL используется для выборки строк с нулевым значением.
- AND - используется для объединения двух или более условий. Он возвращает результат только тогда, когда оба условия истинны.
- OR - используется для объединения двух или более условий. Он возвращает результат, когда хотя бы одно из условий истинно.
- NOT - используется для инвертирования значения условия. Он возвращает результат, когда условие ложно.
Пейджинг данных OFFSET…FECTCH
Пейджинг данных – это процесс разбиения большого объема данных на меньшие части или страницы. Это может быть полезно при работе с большими таблицами, когда нужно извлечь данные только для определенной страницы.
Оператор OFFSET…FETCH был добавлен в SQL Server 2012 и позволяет выбирать данные с определенной позиции. Он имеет следующий синтаксис:
SELECT {columns}
FROM {table}
ORDER BY {column}
OFFSET {offset} ROWS
FETCH NEXT {fetch} ROWS ONLY
- {columns} – список столбцов для извлечения данных
- {table} – имя таблицы
- {column} – столбец для сортировки
- {offset} – количество строк для пропуска
- {fetch} – количество строк для выборки
#Вопросы_с_собеседования
Расскажите алгоритм решения следующей задачи
Предположим, у вас есть две таблицы: Orders (Заказы) и Customers (Клиенты). Таблица Orders содержит колонки OrderID, CustomerID и OrderDate, а таблица Customers содержит CustomerID, Name и Country. Как бы вы нашли имена всех клиентов из США, которые не сделали ни одного заказа после 1 января 2022 года?
Для решения этой задачи можно использовать подзапросы или соединения таблиц. Один из подходов - использовать левое соединение (LEFT JOIN) между Customers и Orders, фильтруя заказы после указанной даты. Затем можно использовать WHERE условие, чтобы выбрать только тех клиентов, у которых нет соответствующих записей в Orders после этой даты и которые находятся в США. Это демонстрирует понимание соединений таблиц, фильтрации и работы с датами в SQL.
MySQL: PERIOD_ADD
PERIOD_ADD является одной из функций MySQL, которая используется для добавления количества периодов к указанной дате. Эта функция особенно полезна в тех случаях, когда вам нужно добавить несколько месяцев или лет к дате.
Синтаксис PERIOD_ADD выглядит следующим образом:
PERIOD_ADD(P,N) - где P - это период в формате YYMM или YYYYMM, а N - это количество периодов, которые нужно добавить к указанной дате.
Чем больше компания, тем больше вызовов 😱
Был десяток команд разработки – теперь их сотни. Единицы развертываний в день превращаются в тысячи.
Как в этом потоке сохранить контроль, прозрачность и управляемость? Как можно автоматизировать рутинные процессы? Разрозненные инструменты и отсутствие единой картины тормозят скорость и снижают качество доставки – что делать?
🎯Если у вас нет ответа на эти вопросы, вашей компании стоит внедрить IT-решение, которое станет "единым источником правды". Оно автоматизирует учет IT-компонентов, управление стендами и планирование поставок, сокращая время на рутину и повышая надежность процессов. Название такого решения – Digital Q.CMDB.
Диасофт посвятит этому решению вебинар, который состоится 23 декабря в 14:00 🗓
Эксперты познакомят вас с решением, расскажут про вызовы масштабирования и затронут практику: от бизнес-требований до поставки.
Welcome: регистрируйтесь по ссылке!
Реклама. ООО "ДИАСОФТ ЭКОСИСТЕМА". ИНН 9715403607.
Функция LOG() в SQL Server
Функция LOG() в SQL Server принимает один аргумент - число, для которого необходимо вычислить натуральный логарифм.
Например, если мы хотим вычислить натуральный логарифм числа 10, мы можем использовать следующий SQL-запрос:
SELECT LOG(10) AS NaturalLogarithm;
Результатом этого запроса будет число, представляющее натуральный логарифм числа 10. Функция LOG() также может быть использована в сочетании с другими функциями и операторами для выполнения более сложных вычислений.
🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2
Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.
#Вопросы_с_собеседования
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
В качестве операндов операций сложения и вычитания нельзя использовать числовой тип BIT. BIT - целочисленный тип данных, который может принимать значения 1, 0 или NULL.
Функция SUBSTRING_INDEX()
Функция SUBSTRING_INDEX() возвращает подстроку строки до того, как появится указанное число разделителей.
Синтаксис:
SUBSTRING_INDEX(string, delimiter, number).
Протестировать функцию можно здесь.
Функция MOD
Функция MOD() возвращает остаток от деления одного числа на другое.
Синтаксис:MOD(x, y)
Пошаговая инструкция создания SQL-сервера на Google Cloud Platform
Смотреть статью
SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
Она объединяет часто используемые пакеты ML, такие как Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.pip install speedml
• Github
💻Knex.js — конструктор SQL-запросов для PostgreSQL и других СУБД
— npm install knex --save
— npm install pg --save
Knex.js спроектирован как гибкий и портативный инструмент.
В нем есть как традиционные колбеки, так и интерфейс промисов для более чистого управления потоком async, потоковый интерфейс, полнофункциональные конструкторы запросов и схем, поддержка транзакций (с точками сохранения), пул соединений и стандартизированные ответы между различными клиентами.
Knex можно использовать в качестве конструктора SQL-запросов как в Node.JS, так и в браузере, ограничиваясь возможностями WebSQL (например, невозможностью дропать таблицы или читать схемы). Составлять SQL-запросы в браузере для выполнения на сервере крайне не рекомендуется, так как это может стать причиной серьезных уязвимостей в безопасности.
🟡 Доки
🖥 GitHub
✔️ Особенности сравнения record и NULL
Testing a ROW expression with IS NULL only reports TRUE if every single column is NULL. Нужно об этом знать, чтобы на напороться на ошибки в своём коде.SELECT
(NULL, NULL) IS NULL as "(NULL, NULL) IS NULL", --true
(NULL, NULL) IS NOT NULL as "(NULL, NULL) IS NOT NULL", --false
NOT (NULL, NULL) IS NULL as "NOT (NULL, NULL) IS NULL", --false
(1, NULL) IS NULL as "(1, NULL) IS NULL", --false
(1, NULL) IS NOT NULL as "(1, NULL) IS NOT NULL", --false --!!!
NOT (1, NULL) IS NULL as "NOT (1, NULL) IS NULL" --true --!!!
#Вопросы_с_собеседования
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию(1 строка на картинке). При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно(2 строка на картинке).
Возвращаем 0 для функции SUM если не найдено ни одного значения в MySQL
Читать полностью…
Правильное подключение к БД: почему, зачем и как
Смотреть статью
Функция WEEK в MySQL
Функция WEEK используется для извлечения номера недели из даты.
Базовый синтаксис функции выглядит следующим образом:
WEEK( date_value, [ mode ] )
- date_value - значение даты или даты/времени, из которого извлекается неделя.
- mode - Необязательный. Он используется для указания дня недели. Это может быть один из следующих вариантов:
Примечание:
1. Функция WEEK возвращает значение от 0 до 53 или от 1 до 53 в зависимости от указанного режима.
2. Если вы используете MySQL 4.0.14+, а режим не указан, функция WEEK будет использовать значение в системной переменной default_week_format в качестве режима.
3. Если вы используете версию MySQL, которая старше 4.0.14, а режим не указан, функция WEEK будет использовать 0 в качестве режима.
4. Функция WEEKOFYEAR возвращает то же самое, что и функция WEEK с синтаксисом WEEK (date_value, 3).
BINARY - MySQL
BINARY - это тип данных, который используется для хранения двоичных данных. Этот тип данных может быть использован для хранения любых данных, которые не могут быть интерпретированы как символы, такие как изображения, звуковые файлы, видео и т.д.
BINARY имеет следующие характеристики:
- Фиксированная длина: Длина поля BINARY всегда фиксирована и задается при создании таблицы. Например, если вы создаете поле BINARY(10), то оно всегда будет занимать 10 байт в таблице, даже если вы вставляете данные меньшего размера.
- Регистрозависимость: Данные типа BINARY регистрозависимы, что означает, что значения 'abc' и 'ABC' будут различаться, даже если они имеют одинаковую длину.
- Сравнение: Для сравнения данных типа BINARY используется бинарное сравнение, то есть двоичный код каждого символа сравнивается отдельно.
- Индексирование: Поля типа BINARY могут быть проиндексированы, что повышает скорость поиска данных.