#Вопросы_с_собеседования
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
👍10
#Вопросы_с_собеседования
❓Даны две таблицы: таблица category и таблица sub_category с полями id и name. Достаньте одним запросом названия категорий и подкатегорий.
Ответ на картинке.
❓Даны две таблицы: таблица category и таблица sub_category с полями id и name. Достаньте одним запросом названия категорий и подкатегорий.
Ответ на картинке.
👍10😁1
#Вопросы_с_собеседования
❓Как вставить нескольких строк одним запросом?
В данном примере мы одним SQL-запросом добавим 3 записи.
❓Как вставить нескольких строк одним запросом?
В данном примере мы одним SQL-запросом добавим 3 записи.
👍18🎄1
#Вопросы_с_собеседования
Напишите SQL-запрос, который найдет суммарное количество заказов и общую сумму продаж для каждого месяца за последние 6 месяцев, и отобразит результаты только для тех месяцев, в которых было совершено более 100 заказов?
В этом примере мы используем функцию
Напишите SQL-запрос, который найдет суммарное количество заказов и общую сумму продаж для каждого месяца за последние 6 месяцев, и отобразит результаты только для тех месяцев, в которых было совершено более 100 заказов?
В этом примере мы используем функцию
DATE_TRUNC для округления даты до месяца. Затем мы считаем общее количество заказов с помощью функции COUNT и общую сумму продаж с помощью функции SUM. Затем мы используем выражение HAVING для фильтрации только тех месяцев, где количество заказов превышает 100. Наконец, мы сортируем результаты по месяцам с помощью выражения ORDER BY.👍12❤🔥1
#Вопросы_с_собеседования
❓При выборке из таблицы workers получите последние 5 символов поля denoscription
Ответ на картинке.
❓При выборке из таблицы workers получите последние 5 символов поля denoscription
Ответ на картинке.
👍13❤🔥2
#Вопросы_с_собеседования
Дана таблица 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.
👍15
#Вопросы_с_собеседования
❓Выберите все записи, где первая буква City начинается с любой буквы от "a" до "f"
Ответ на картинке.
❓Выберите все записи, где первая буква City начинается с любой буквы от "a" до "f"
Ответ на картинке.
👍24🎄3
#Вопросы_с_собеседования
❓В чем разница между командами Delete, Truncate и Drop?
• Команда Delete — это команда DML , он используется для удаления строк из таблицы. Его можно откатить.
• Truncate — это команда DDL, она используется для удаления всех строк из таблицы и освобождения пространства, содержащего таблицу. Ее нельзя откатить.
• Drop — это команда DDL, она удаляет все данные вместе со структурой таблицы (в отличие от команды truncate, которая удаляет только строки). Все строки, индексы и привилегии таблиц также будут удалены.
❓В чем разница между командами Delete, Truncate и Drop?
• Команда Delete — это команда DML , он используется для удаления строк из таблицы. Его можно откатить.
• Truncate — это команда DDL, она используется для удаления всех строк из таблицы и освобождения пространства, содержащего таблицу. Ее нельзя откатить.
• Drop — это команда DDL, она удаляет все данные вместе со структурой таблицы (в отличие от команды truncate, которая удаляет только строки). Все строки, индексы и привилегии таблиц также будут удалены.
👍16😁1
#Вопросы_с_собеседования
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
В качестве операндов операций сложения и вычитания нельзя использовать числовой тип BIT. BIT - целочисленный тип данных, который может принимать значения 1, 0 или NULL.
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
👍15
Поиск значений в таблице, которые не совпадают с другой таблицей
Для выполнения поиска значений в таблице, которые не совпадают с другой таблицей в SQL, можно использовать операторы JOIN, NOT IN и NOT EXISTS.
1. JOIN - используется для объединения двух таблиц по заданному условию. Для поиска значений, которые не совпадают, можно использовать LEFT JOIN или RIGHT JOIN, а затем выбрать строки с NULL значениями в столбцах таблицы-присоединения.
2. NOT IN - спользуется для выбора значений из одной таблицы, которые не содержатся в другой таблице.
3. NOT EXISTS - используется для проверки наличия значений в подзапросе и выбора строк, которые не имеют соответствия в другой таблице.
Для выполнения поиска значений в таблице, которые не совпадают с другой таблицей в SQL, можно использовать операторы JOIN, NOT IN и NOT EXISTS.
1. JOIN - используется для объединения двух таблиц по заданному условию. Для поиска значений, которые не совпадают, можно использовать LEFT JOIN или RIGHT JOIN, а затем выбрать строки с NULL значениями в столбцах таблицы-присоединения.
2. NOT IN - спользуется для выбора значений из одной таблицы, которые не содержатся в другой таблице.
3. NOT EXISTS - используется для проверки наличия значений в подзапросе и выбора строк, которые не имеют соответствия в другой таблице.
👍18🔥2
#Вопросы_с_собеседования
❓Выберите из таблицы workers записи с id равным 1, 2, 3, 7, 9, и логином, равным 'user', 'admin', 'ivan' и зарплатой больше 300
Ответ на картинке.
❓Выберите из таблицы workers записи с id равным 1, 2, 3, 7, 9, и логином, равным 'user', 'admin', 'ivan' и зарплатой больше 300
Ответ на картинке.
👍17😁3
#Вопросы_с_собеседования
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
В качестве операндов операций сложения и вычитания нельзя использовать числовой тип BIT. BIT - целочисленный тип данных, который может принимать значения 1, 0 или NULL.
❓Для каких числовых типов недопустимо использовать операции сложения/вычитания?
Ответ:
👍9
Почему данный код выведет ошибку?
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
WHERE 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';
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
WHERE 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';
👍11
Возможно ли использование одновременно двух агрегирующих функций: select min(price), max(price) from Orders;
Anonymous Quiz
18%
да, но данный запрос составлен неверно, надо так: select * from Orders where price IN (min, max);
35%
да, в результате мы получим минимальную и максимальную стоимости 63%
15%
да, в результате мы получим стоимости, отсортированные от минимальной к максимальной
16%
нет, две функции использовать одновременно нельзя
17%
Посмотреть ответы
😁6👍2🎄1
Ультимативная дорожная карта для изучения SQL и баз данных в 2023 году + источники для знаний
Смотреть статью
Смотреть статью
Хабр
Ультимативная дорожная карта для изучения SQL и баз данных в 2023 году + источники для знаний
SQL является одним из наиболее важных языков для работы с данными в Сети. Без SQL мы не смогли бы обмениваться данными настолько уверенным и мощным способом, как мы это делаем сегодня. Независимо от...
👍6
#Вопросы_с_собеседования
Каковы различия между INNER JOIN и OUTER JOIN в SQL, и в каких сценариях каждый из них является наиболее подходящим для использования? Приведите примеры, где использование OUTER JOIN (LEFT, RIGHT или FULL) предпочтительнее по сравнению с INNER JOIN.
Основное различие между INNER JOIN и OUTER JOIN заключается в обработке несоответствующих строк в соединяемых таблицах. INNER JOIN возвращает только те строки, которые имеют соответствующие значения в обеих таблицах. Если совпадений нет, строки не включаются в результат. Напротив, OUTER JOIN (LEFT, RIGHT, FULL) включает все строки из одной (LEFT или RIGHT) или обеих таблиц (FULL), даже если совпадений нет, добавляя NULL значения для отсутствующих данных.
Пример, где OUTER JOIN предпочтительнее:
Использование LEFT JOIN для получения списка всех сотрудников и их проектов, включая сотрудников без проектов. Здесь INNER JOIN исключил бы сотрудников, не работающих над проектами, тогда как LEFT JOIN позволит включить их в результат с NULL в столбцах, связанных с проектами.
Каковы различия между INNER JOIN и OUTER JOIN в SQL, и в каких сценариях каждый из них является наиболее подходящим для использования? Приведите примеры, где использование OUTER JOIN (LEFT, RIGHT или FULL) предпочтительнее по сравнению с INNER JOIN.
Основное различие между INNER JOIN и OUTER JOIN заключается в обработке несоответствующих строк в соединяемых таблицах. INNER JOIN возвращает только те строки, которые имеют соответствующие значения в обеих таблицах. Если совпадений нет, строки не включаются в результат. Напротив, OUTER JOIN (LEFT, RIGHT, FULL) включает все строки из одной (LEFT или RIGHT) или обеих таблиц (FULL), даже если совпадений нет, добавляя NULL значения для отсутствующих данных.
Пример, где OUTER JOIN предпочтительнее:
Использование LEFT JOIN для получения списка всех сотрудников и их проектов, включая сотрудников без проектов. Здесь INNER JOIN исключил бы сотрудников, не работающих над проектами, тогда как LEFT JOIN позволит включить их в результат с NULL в столбцах, связанных с проектами.
👍10
#Вопросы_с_собеседования
Объясните, что такое фантомное чтение в транзакциях баз данных, и какие меры могут быть приняты для его предотвращения?
Фантомное чтение — это явление в базах данных, когда транзакция повторно читает данные и обнаруживает строки, которых раньше не было, из-за изменений, внесенных другой недавно завершенной транзакцией. Это может привести к неконсистентности данных, если одна транзакция основывается на предыдущем чтении, которое было сделано до внесения изменений.
Для предотвращения фантомного чтения можно использовать строгие уровни изоляции транзакций, например, уровень сериализуемости, который гарантирует, что транзакции выполняются так, как если бы они происходили в отдельной последовательности, а не параллельно. Это может быть достигнуто с помощью механизмов блокировки строк, предотвращающих другие транзакции от внесения изменений в строки, которые используются текущей транзакцией, или с помощью многоуровневых версий снимков данных (MVCC), которые предоставляют каждой транзакции консистентный снимок базы данных на определенный момент времени.
Объясните, что такое фантомное чтение в транзакциях баз данных, и какие меры могут быть приняты для его предотвращения?
Для предотвращения фантомного чтения можно использовать строгие уровни изоляции транзакций, например, уровень сериализуемости, который гарантирует, что транзакции выполняются так, как если бы они происходили в отдельной последовательности, а не параллельно. Это может быть достигнуто с помощью механизмов блокировки строк, предотвращающих другие транзакции от внесения изменений в строки, которые используются текущей транзакцией, или с помощью многоуровневых версий снимков данных (MVCC), которые предоставляют каждой транзакции консистентный снимок базы данных на определенный момент времени.
👍11