Можно ли поменять тип данных поля в уже существующей таблице?
Anonymous Quiz
72%
Да, при помощи команды ALTER
6%
Да, достаточно сделать INSERT с новым типом данных
12%
Нет, только пересоздать таблицу
3%
Тип бывает только у таблицы, а не у поля таблицы
7%
Посмотреть ответ
👍11🎄1
👍11❤🔥3
#Вопросы_с_собеседования
❓Как GROUP BY обрабатывает значение NULL?
Ответ:
При использовании GROUP BY все значения NULL считаются равными.
❓Как GROUP BY обрабатывает значение NULL?
Ответ:
👍11
Функция FIND_IN_SET()
Функция FIND_IN_SET() возвращает положение строки в списке строк.
Подробнее ознакомиться с функцией можно здесь.
Функция FIND_IN_SET() возвращает положение строки в списке строк.
Подробнее ознакомиться с функцией можно здесь.
👍4❤🔥1
#Вопросы_с_собеседования
Какие ещё ограничения вы знаете, как они работают и указываются?
SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.
•
•
•
•
•
Какие ещё ограничения вы знаете, как они работают и указываются?
SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.
•
UNIQUE
— гарантирует уникальность значений в столбце;•
NOT NULL
— значение не может быть NULL;•
INDEX
— создаёт индексы в таблице для быстрого поиска/запросов;•
CHECK
— значения столбца должны соответствовать заданным условиям;•
DEFAULT
— предоставляет столбцу значения по умолчанию.👍10
#Вопросы_с_собеседования
Какие бывают типы подзапросов?
Существует два типа подзапросов, а именно: коррелированные и некоррелированные.
• Коррелированный подзапрос: это запрос, который выбирает данные из таблицы со ссылкой на внешний запрос. Он не считается независимым запросом, поскольку ссылается на другую таблицу или столбец в таблице.
• Некоррелированный подзапрос: этот запрос является независимым запросом, в котором выходные данные подзапроса подставляются в основной запрос.
Какие бывают типы подзапросов?
Существует два типа подзапросов, а именно: коррелированные и некоррелированные.
• Коррелированный подзапрос: это запрос, который выбирает данные из таблицы со ссылкой на внешний запрос. Он не считается независимым запросом, поскольку ссылается на другую таблицу или столбец в таблице.
• Некоррелированный подзапрос: этот запрос является независимым запросом, в котором выходные данные подзапроса подставляются в основной запрос.
👍11❤🔥1
Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.
Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:
SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name
Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😁2
Оператор CASE в SQL используется для создания условий, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.
Оператор CASE может быть использован в двух форматах:
CASE без ELSE:
SELECT column1,
CASE
WHEN column2 = 'value1' THEN 'result1'
WHEN column2 = 'value2' THEN 'result2'
END AS column3
FROM table;
В этой форме оператора
CASE
используется блок WHEN
для проверки значения столбца column2
. Если значение равно value1
, то будет возвращено значение result1
. Если значение равно value2
, то будет возвращено значение result2
. Если значение не соответствует ни одному из условий, то для столбца column3 будет возвращено значение NULL
.CASE с ELSE:
SELECT column1,
CASE column2
WHEN 'value1' THEN 'result1'
WHEN 'value2' THEN 'result2'
ELSE 'result3'
END AS column3
FROM table;
В этой форме оператора
CASE
используется значение столбца column2
в блоке CASE
. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2
, то будет возвращено значение result2
. Если значение не соответствует ни одному из условий, то будет возвращено значение result3.Оба формата оператора
CASE
могут использоваться в запросах на выборку данных в SQL
. Они позволяют создавать условия, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🕵♂Использование CROSS JOIN для задач поиска пересечений в исторических данных
🔵 CROSS JOIN (или полное соединение таблиц без условий) — декартова перемножение множеств. Говоря простым языком — для каждого варианта первого множества будет сопоставлены все варианты второго множества.
• Правильное использование этого типа соединения может помочь в решении сложных задач, например, нахождении пересечений в исторических данных.
• Структура таблиц представленных примеров в изображении 1.
📕 Допустим: клиент Сидоров Степан Павлович подал заявку на кредит. На некотором этапе рассмотрения потребовался анализ платежеспособности клиента андеррайтером.
Заявка автоматически распределилась на сотрудника Петрова Екатерина Павловна.
На первый взгляд ничего подозрительного нет — в ФИО людей совпадает только отчество, что является широко распространенной ситуацией.
❗️ Однако, при детальном анализе выясняется, что девичья фамилия андеррайтера и клиента совпадают (Сидорова / Сидоров) изображение 2.
В таком случае заявка клиента должна была распределиться на другого сотрудника, чтобы решение, вынесенное по заявке, было не предвзятым.
• Для решения данной задачи можно использовать простой запрос с CROSS JOIN изображение 3.
➡️ Продолжение
• Правильное использование этого типа соединения может помочь в решении сложных задач, например, нахождении пересечений в исторических данных.
• Структура таблиц представленных примеров в изображении 1.
Заявка автоматически распределилась на сотрудника Петрова Екатерина Павловна.
На первый взгляд ничего подозрительного нет — в ФИО людей совпадает только отчество, что является широко распространенной ситуацией.
В таком случае заявка клиента должна была распределиться на другого сотрудника, чтобы решение, вынесенное по заявке, было не предвзятым.
• Для решения данной задачи можно использовать простой запрос с CROSS JOIN изображение 3.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
#Вопросы_с_собеседования
Вы работаете с базой данных, где есть табли
Ответ: Можно использовать следующий запрос:
Этот запрос группирует данные по
Вы работаете с базой данных, где есть табли
ца Прод
ажи, включающая поля Дата_прод
ажи, Менеджер
_ID, Сумма_прод
ажи. Вам нужно выяснить, есть ли в базе данных дни, когда каждый менеджер совершал хотя бы одну продажу. Какой SQL-запрос вы бы использовали для решения этой задачи?Ответ: Можно использовать следующий запрос:
SELECT Дата_продажи
FROM Продажи
GROUP BY Дата_продажи
HAVING COUNT(DISTINCT Менеджер_ID) = (SELECT COUNT(DISTINCT Менеджер_ID) FROM Продажи);
Этот запрос группирует данные по
Дата_продажи
и использует условие HAVING
для фильтрации дней, в которые количество уникальных менеджеров, совершивших продажи, равно общему количеству уникальных менеджеров, работающих в компании. Если в компании работают менеджеры, которые не совершали продаж в какой-то из дней, эти дни отфильтровываются.👍11❤🔥1
#вопросы_с_собеседований
Равен ли NULL 0 в SQL?
Нулевое значение в SQL обозначает значение, которое недоступно или назначено. Пробел (‘ ‘) или ноль (0) не эквивалентны значению NULL. Вы не можете сравнить значение NULL с любым другим значением, используя операторы сравнения, такие как “=” или”>”, поскольку оно не может быть равно или неравно любому другому значению.
Равен ли NULL 0 в SQL?
Нулевое значение в SQL обозначает значение, которое недоступно или назначено. Пробел (‘ ‘) или ноль (0) не эквивалентны значению NULL. Вы не можете сравнить значение NULL с любым другим значением, используя операторы сравнения, такие как “=” или”>”, поскольку оно не может быть равно или неравно любому другому значению.
👍10
Как сэкономить свои нервы и деньги компании на перестроении структуры больших таблиц без простоя в PostgreSQL
Смотреть статью
Смотреть статью
Хабр
Как сэкономить свои нервы и деньги компании на перестроении структуры больших таблиц без простоя в PostgreSQL
Привет! Меня зовут Васильев Виктор, я DBA. В этой статье на реальных примерах расскажу, как можно сэкономить время разработчика, администратора баз данных и ресурсы сервера(ов), используя утилиту...
👍5
usql
usql – это мощный инструмент, который позволяет легко работать с базами данных SQL и NoSQL через командную строку. Созданный на основе популярного psql от PostgreSQL, usql предоставляет удобный интерфейс для выполнения запросов и манипуляций с данными.
Одной из главных особенностей usql является поддержка множества баз данных. Вы можете легко переключаться между разными базами данных, копировать данные между ними и выполнять другие операции без необходимости покидать командную строку.
usql также предоставляет множество удобных функций, таких как подсветка синтаксиса и завершение на основе контекста. Это помогает сделать процесс написания и отладки запросов более эффективным.
usql – это мощный инструмент, который позволяет легко работать с базами данных SQL и NoSQL через командную строку. Созданный на основе популярного psql от PostgreSQL, usql предоставляет удобный интерфейс для выполнения запросов и манипуляций с данными.
Одной из главных особенностей usql является поддержка множества баз данных. Вы можете легко переключаться между разными базами данных, копировать данные между ними и выполнять другие операции без необходимости покидать командную строку.
usql также предоставляет множество удобных функций, таких как подсветка синтаксиса и завершение на основе контекста. Это помогает сделать процесс написания и отладки запросов более эффективным.
👍5
#Вопросы_с_собеседования
Что такое соединения SQL и какие соединения SQL наиболее популярны?
Объединения являются фундаментальной частью управления данными в SQL. Они позволяют объединить две или более таблиц для создания единой таблицы, которую можно использовать для анализа данных. Они также предоставляют способ фильтрации результатов на основе критериев в одной таблице, что может быть полезно при попытке найти определенные строки или столбцы в большой таблице.
В SQL существует четыре основных типа соединений: ВНУТРЕННЕЕ СОЕДИНЕНИЕ, ВНЕШНЕЕ СОЕДИНЕНИЕ, ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ и САМОСТОЯТЕЛЬНОЕ СОЕДИНЕНИЕ.
Что такое соединения SQL и какие соединения SQL наиболее популярны?
Объединения являются фундаментальной частью управления данными в SQL. Они позволяют объединить две или более таблиц для создания единой таблицы, которую можно использовать для анализа данных. Они также предоставляют способ фильтрации результатов на основе критериев в одной таблице, что может быть полезно при попытке найти определенные строки или столбцы в большой таблице.
В SQL существует четыре основных типа соединений: ВНУТРЕННЕЕ СОЕДИНЕНИЕ, ВНЕШНЕЕ СОЕДИНЕНИЕ, ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ и САМОСТОЯТЕЛЬНОЕ СОЕДИНЕНИЕ.
👍8
#Вопросы_с_собеседования
Почему важно использовать параметризованные запросы в SQL вместо конкатенации строк при создании динамических запросов?
Использование параметризованных запросов помогает предотвратить SQL-инъекции, которые могут произойти при прямой конкатенации строк для создания динамических запросов. Параметризация обеспечивает соответствующий эскейпинг и обработку входных данных, что делает запросы более безопасными.
Почему важно использовать параметризованные запросы в SQL вместо конкатенации строк при создании динамических запросов?
Использование параметризованных запросов помогает предотвратить SQL-инъекции, которые могут произойти при прямой конкатенации строк для создания динамических запросов. Параметризация обеспечивает соответствующий эскейпинг и обработку входных данных, что делает запросы более безопасными.
👍5