#вопросы_с_собеседований
Выведите среднюю зарплату работников.
Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.
Выведите среднюю зарплату работников.
Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.
#вопросы_с_собеседований
Чем VARCHAR отличается от NVARCHAR?
Главное отличие в том, что VARCHAR хранит значения в формате ASCII, где символ занимает один байт, а NVARCHAR хранит значения в формате Unicode, где символ «весит» 2 байта. Тип VARCHAR следует использовать, если вы уверены, что в значениях не будет Unicode-символов. Например, VARCHAR можно применить к адресам электронной почты, состоящих из ASCII-символов.
Чем VARCHAR отличается от NVARCHAR?
Главное отличие в том, что VARCHAR хранит значения в формате ASCII, где символ занимает один байт, а NVARCHAR хранит значения в формате Unicode, где символ «весит» 2 байта. Тип VARCHAR следует использовать, если вы уверены, что в значениях не будет Unicode-символов. Например, VARCHAR можно применить к адресам электронной почты, состоящих из ASCII-символов.
#вопросы_с_собеседований
Почему данный код выведет ошибку?
Код выдаст ошибку, так как в данном случае alias нельзя использовать в операторе WHERE.
Порядок выполнения упомянутого SELECT запроса следующий:
1. FROM
2. WHERE
3. SELECT
Соответственно при выполнении команды WHERE, alias, задаваемый в SELECT еще неизвестен.
Для PostgreSQL или MySQL данную проблему можно решить, например, следующим образом:
WITH ct AS (
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
)
SELECT ct.*
FROM ct
WHERE ct.city_m = 'EU:Oslo';
Почему данный код выведет ошибку?
Код выдаст ошибку, так как в данном случае alias нельзя использовать в операторе WHERE.
Порядок выполнения упомянутого SELECT запроса следующий:
1. FROM
2. WHERE
3. SELECT
Соответственно при выполнении команды WHERE, alias, задаваемый в SELECT еще неизвестен.
Для PostgreSQL или MySQL данную проблему можно решить, например, следующим образом:
WITH ct AS (
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
)
SELECT ct.*
FROM ct
WHERE ct.city_m = 'EU:Oslo';
Друзья, с наступающим Новым годом! 🎄✨
Спасибо, что вы с нами.
2025-й отлично показал, как быстро меняется индустрия: за год вышли новые думающие модели, которые сильно прокачали кодинг, анализ и мультимодальность.
Пусть 2026 принесёт вам спокойные релизы без ночных авралов, понятные ТЗ, сильные команды и проекты, которыми реально хочется гордиться. Пусть баги ловятся быстро, деплой проходит с первого раза, а нейросети становятся не магией, а надёжным инструментом в вашем рабочем наборе 😄
Счастья, здоровья и стабильного интернета — увидимся в новом году! 🚀💻🎉
Спасибо, что вы с нами.
2025-й отлично показал, как быстро меняется индустрия: за год вышли новые думающие модели, которые сильно прокачали кодинг, анализ и мультимодальность.
Пусть 2026 принесёт вам спокойные релизы без ночных авралов, понятные ТЗ, сильные команды и проекты, которыми реально хочется гордиться. Пусть баги ловятся быстро, деплой проходит с первого раза, а нейросети становятся не магией, а надёжным инструментом в вашем рабочем наборе 😄
Счастья, здоровья и стабильного интернета — увидимся в новом году! 🚀💻🎉
#вопросы_с_собеседований
Имеет ли значение порядок колонок в составном индексе?
Да, порядок колонок в составном индексе имеет значение.
Рассмотрим пример:
У нас есть таблица orders с колонками order_id, customer_id, order_date, product_id и quantity. Нам необходимо создать составной индекс для ускорения поиска заказов по customer_id и order_date.
Мы можем создать два индекса:
1. Индекс по (customer_id, order_date)
2. Индекс по (order_date, customer_id)
В первом случае, запросы с условием WHERE customer_id = ? AND order_date = ? будут выполняться быстрее, так как эти колонки находятся в порядке, указанном в индексе.
Во втором случае, запросы с условием WHERE order_date = ? AND customer_id = ? будут выполняться медленнее, так как порядок колонок не соответствует порядку в индексе.
Таким образом, порядок колонок в составном индексе имеет значение и должен соответствовать порядку, в котором используются колонки в запросах.
Имеет ли значение порядок колонок в составном индексе?
Да, порядок колонок в составном индексе имеет значение.
Рассмотрим пример:
У нас есть таблица orders с колонками order_id, customer_id, order_date, product_id и quantity. Нам необходимо создать составной индекс для ускорения поиска заказов по customer_id и order_date.
Мы можем создать два индекса:
1. Индекс по (customer_id, order_date)
2. Индекс по (order_date, customer_id)
В первом случае, запросы с условием WHERE customer_id = ? AND order_date = ? будут выполняться быстрее, так как эти колонки находятся в порядке, указанном в индексе.
Во втором случае, запросы с условием WHERE order_date = ? AND customer_id = ? будут выполняться медленнее, так как порядок колонок не соответствует порядку в индексе.
Таким образом, порядок колонок в составном индексе имеет значение и должен соответствовать порядку, в котором используются колонки в запросах.
This media is not supported in your browser
VIEW IN TELEGRAM
Azure Data Studio
Azure Data Studio - это инструмент для управления базами данных и выполнения запросов к ним, который разработан компанией Microsoft для операционных систем Windows, macOS и Linux. Он является бесплатной альтернативой Microsoft SQL Server Management Studio (SSMS) и поддерживает не только SQL Server, но и другие базы данных, такие как PostgreSQL, MySQL и Azure SQL Database.
Azure Data Studio имеет более легкий интерфейс по сравнению с SSMS и может использоваться как для управления базами данных в локальной сети, так и для работы с облачными базами данных в Azure. Кроме того, Azure Data Studio обеспечивает возможность совместной работы и обмена данными с помощью Git и Jupyter Notebook.
Azure Data Studio обладает достаточно широким функционалом и возможностями, на видео представлен "Интеллектуальные фрагменты SQL кода"
Azure Data Studio - это инструмент для управления базами данных и выполнения запросов к ним, который разработан компанией Microsoft для операционных систем Windows, macOS и Linux. Он является бесплатной альтернативой Microsoft SQL Server Management Studio (SSMS) и поддерживает не только SQL Server, но и другие базы данных, такие как PostgreSQL, MySQL и Azure SQL Database.
Azure Data Studio имеет более легкий интерфейс по сравнению с SSMS и может использоваться как для управления базами данных в локальной сети, так и для работы с облачными базами данных в Azure. Кроме того, Azure Data Studio обеспечивает возможность совместной работы и обмена данными с помощью Git и Jupyter Notebook.
Azure Data Studio обладает достаточно широким функционалом и возможностями, на видео представлен "Интеллектуальные фрагменты SQL кода"
PostgreSQL + pgAdmin + mTLS + certificate-based authentication + docker-compose в одном флаконе
Читать статью
Читать статью
Хабр
PostgreSQL + pgAdmin + mTLS + certificate-based authentication + docker-compose в одном флаконе
Чего у меня не отнять, дак это мастерства заголовка... В какой-то момент при локальной разработке (да, в общем-то и при тестировании на иных стендах) задумываешься о том, как бы избавиться...
SQLMesh - это фреймворк для преобразования данных, который позволяет командам, работающим с данными, использовать преимущества DevOps. Она позволяет ученым, аналитикам и инженерам эффективно выполнять и развертывать преобразования данных, написанные на SQL или Python.
SQLMesh обеспечивает точность и эффективность построения конвейеров данных с помощью пробвинутого решения DataOps для преобразования, тестирования и совместной работы.
Виртуальные среды данных позволяют команде разработчиков создавать динамические представления данных, гарантируя, что таблицы не будут создаваться более одного раза. Модульные тесты, аудиты и Data Diff обеспечивают проверку на протяжении всего рабочего процесса разработки, что позволяет легко работать с данными.
▪ Github
▪ Подробнее
▪ Документация
SQLMesh обеспечивает точность и эффективность построения конвейеров данных с помощью пробвинутого решения DataOps для преобразования, тестирования и совместной работы.
Виртуальные среды данных позволяют команде разработчиков создавать динамические представления данных, гарантируя, что таблицы не будут создаваться более одного раза. Модульные тесты, аудиты и Data Diff обеспечивают проверку на протяжении всего рабочего процесса разработки, что позволяет легко работать с данными.
pip install sqlmesh▪ Github
▪ Подробнее
▪ Документация
CREATE OR REPLACE FUNCTION 'имя_процедуры(параметры)' RETURNS 'тип_результата' AS $$
DECLARE
-- переменные_локальные тип_переменной
BEGIN
-- Тело процедуры
-- Может содержать SQL запросы, управляющие конструкции и другие операторы
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION hello_world()
RETURNS VOID AS $$
BEGIN
RAISE NOTICE 'Hello, World!';
END;
$$ LANGUAGE plpgsql;
SELECT hello_world();
Таким образом, вы можете создавать и вызывать процедуры в PostgreSQL с помощью PL/pgSQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
Важно регулярно создавать резервные копии базы данных, чтобы данные не были потеряны в случае повреждения базы данных (БД). В SQL мы можем создавать резервные копии БД с помощью оператора BACKUP DATABASE.
Например:
BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak';
Здесь мы создаем файл резервной копии базы данных orders на диске C с именем orders_backup.bak.
Примечание: Распространено использование расширения .bak для файлов резервных копий БД, однако это не является обязательным.
Резервное копирование только новых изменений в SQL
В SQL мы также можем сделать резервную копию только новых изменений по сравнению с предыдущей резервной копией, используя команду WITH DIFFERENTIAL. Например:
BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak'
WITH DIFFERENTIAL;
Здесь мы добавляем только новые изменения в предыдущий файл резервной копии. Следовательно, эта команда работает быстрее, нежели создание резервной копии БД с нуля.
Восстановление базы данных из резервной копии
Для восстановления файла резервной копии в системе управления базой данных (СУБД) используется оператор RESTORE DATABASE. Например:
RESTORE DATABASE orders
FROM DISK = 'C:\orders_backup.bak';
Здесь мы восстанавливаем файл резервной копии orders_backup.bak в базе данных orders.
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Дана таблица tbl и поля nmbr со следующими значениями: 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1
Напишите запрос, чтобы установить 2 вместо 0 и установить 3 вместо 1.
Дана таблица tbl и поля nmbr со следующими значениями: 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1
Напишите запрос, чтобы установить 2 вместо 0 и установить 3 вместо 1.
#вопросы_с_собеседований
Что такое Self JOIN?
Self JOIN - это выражение используется для того, чтобы таблица объединилась сама с собой, словно это две разные таблицы. Чтобы такое реализовать, одна из таких «таблиц» временно переименовывается.
Например, следующий SQL-запрос объединяет клиентов из одного города:
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
Что такое Self JOIN?
Self JOIN - это выражение используется для того, чтобы таблица объединилась сама с собой, словно это две разные таблицы. Чтобы такое реализовать, одна из таких «таблиц» временно переименовывается.
Например, следующий SQL-запрос объединяет клиентов из одного города:
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
#вопросы_с_собеседований
Выберите из таблицы workers все записи за третий день месяца
Ответ на картинке.
Выберите из таблицы workers все записи за третий день месяца
Ответ на картинке.
Что нового в SQLAlchemy 2.0?
SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM.
Смотреть статью
SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM.
Смотреть статью