#Вопросы_с_собеседования
Что такое внешний ключ?
Внешний ключ или FOREIGN KEY также является атрибутом ограничения и обеспечивает связь двух таблиц. По сути, это поле или несколько полей, которые ссылаются на PRIMARY KEY в родительской таблице.
В нашем случае внешний ключ, привязанный к полю user_id в таблице order, ссылается на первичный ключ id в таблице users, и именно по этим полям происходит связывание двух таблиц.
Функция EXTRACT()
Функция EXTRACT() извлекает часть из заданной даты.
В нашем примере функция извлекает месяц из даты.
Синтаксис:EXTRACT(part FROM date)
.
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи за первую декаду любого месяца 2016 года
Ответ на картинке.
Генерация случайных чисел в MySQL
Для генерации случайных чисел или сортировки строк в случайном порядке можно использовать стандартную функцию NEWID().
#Вопросы_с_собеседования
❓При выборке из таблицы workers отнимите от даты 1 день
Ответ на картинке.
Использование фейковых функций в tSQLt для тестирования T-SQL кода
Применение практик модульного тестирования для кода базы данных улучшает качество и архитектуру кода, а также позволяет своевременно обнаруживать и устранять ошибки.
Смотреть статью
Создание, Подключение и Удаление Базы Данных - Уроки PostgreSQL
В этом вводном уроке по PostgreSQL, мы создадим базу данных, соединимся с ней и рассмотрим как работает ее удаление, все это при помощи SQL Shell (командной строки PostgreSQL или psql)
Смотреть видео
Агрегатные функции
Это не совсем основные команды SQL, однако знать их тоже желательно. Агрегатные функции используются для получения совокупного результата, относящегося к рассматриваемым данным:
• COUNT(col_name) — возвращает количество строк;
• SUM(col_name) — возвращает сумму значений в данном столбце;
• AVG(col_name) — возвращает среднее значение данного столбца;
• MIN(col_name) — возвращает наименьшее значение данного столбца;
• MAX(col_name) — возвращает наибольшее значение данного столбца.
Оператор ANY
Оператор ANY возвращает TRUE, если какое-либо из значений подзапроса соответствует условию.
Следующий оператор SQL возвращает TRUE и перечисляет имена товаров, если он находит ЛЮБЫЕ записи в таблице info, с количеством = 15.
#Вопросы_с_собеседования
❓При выборке из таблицы workers прибавьте к дате 2 часа, 3 минуты, 5 секунд
Ответ на картинке.
#Вопросы_с_собеседования
Напишите SQL-запрос, с применением UNION ALL (не UNION), использующий WHERE для устранения дубликатов.
Ключевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.
Магия оптимизации SQL запросов
Начнем с того, что можно выделить два основных подхода к поиску наиболее эффективного варианта выполнения: эвристический и стоимостной.
Смотреть статью
#Вопросы_с_собеседования
❓Что такое строковые функции в SQL?
Строковые функции SQL используются в основном для обработки строк. Некоторые из широко используемых строковых функций SQL представлены ниже:
• LEN () — возвращает длину значения в текстовом поле.
• LOWER () — преобразует символьные данные в нижний регистр
• UPPER () — преобразует символьные данные в верхний регистр
• SUBSTRING () — извлекает символы из текстового поля.
• LTRIM () — Это удалить все пробелы в начале строки.
• RTRIM () — удалить все пробелы в конце строки.
• CONCAT () — функция Concatenate объединяет несколько символьных строк вместе.
• REPLACE () — для обновления содержимого строки.
🐬 ТОП-10 самых часто используемых запросов MySQL
Из этой статьи вы узнаете о 10 наиболее часто используемых запросах в MySQL, которыми пользуются новички и эксперты в области управления базами данных.
Смотреть статью
#Вопросы_с_собеседования
Замените в таблице зарплату работника на 1000, если она равна 900, и на 1500 в остальных случаях.
Оператор UPDATE используется для изменения существующих записей. Но ответы на подобные вопросы с собеседований по SQL должны быть более развёрнутыми. Уточните,что после UPDATE следует указать, какие записи должны быть обновлены. В противном случае обновятся все записи в таблице.
В нашем примере условие задаётся через оператор CASE: если текущая зарплата равна 900, изменяем её на 1000, в остальных случаях — на 1500.
Функция QUARTER()
Функция QUARTER() возвращает квартал года для заданного значения даты (число от 1 до 4).
• Январе-Март возвращается 1
• Апрель-Июнь возвращается 2
• Июль-Сентябрь возвращается 3
• Октябрь-Декабрь возвращается 4.
Синтаксис:
QUARTER(date).
Прибавляем время
Функция TIMESTAMPADD(unit, value, datetime) прибавляет к дате и времени суток datetime временной интервал value.
В нашем примере мы прибавляем к нашей дате 3 часа.
Простой цикл While
В следующем примере в случае, если средняя цена продуктов из списка меньше чем $300, цикл WHILE удваивает цены, а затем выбирает максимальную. В том случае, если максимальная цена меньше или равна $500, цикл WHILE повторяется и снова удваивает цены.
Этот цикл продолжает удваивать цены до тех пор, пока максимальная цена не будет больше, чем $500, после чего выполнение цикла WHILE прекращается.
Функция SEC_TO_TIME()
Функция SEC_TO_TIME() возвращает значение времени (в формате HH:MM:SS), основанное на указанных секундах.
Синтаксис:
SEC_TO_TIME(seconds).
Функция NOW()
Функция NOW() возвращает текущую дату и время.
Примечание: Дата и время возвращаются как (строка) "YYYY-MM-DD HH-MM-SS" или как (числовое) YYYYMMDDHHMMSS.uuuuuu.
#Вопросы_с_собеседования
❓Вставьте в таблицу workers запись с полем date с текущей датой в формате 'год-месяц-день'
Ответ на картинке.
🐍🐬 Python и MySQL: Как соединить их?
Большинство приложений в той или иной форме взаимодействует с данными. Поэтому языки программирования (Python не исключение), предоставляют инструменты хранения источников данных и доступа к ним. MySQL — одна из самых популярных систем управления базами данных (СУБД). В прошлом году она заняла второе место после СУБД Oracle в рейтинге баз данных.
Разбираться
Руководство по подготовке к собеседованию по SQL
Задачи по SQL можно разделить на 4 уровня. В рамках гайда мы рассмотрим каждый из них вместе со стандартными примерами для практики. Если хотите лучше усвоить материал, не переходите сразу же к решению.
Смотреть статью
PostgreSQL Antipatterns: Индиана Джонс и максимальное значение ключа, или В поисках «последних» записей
Сегодняшняя задача вполне традиционна для любых учетных систем - поиск записей, содержащих максимальное значение по каждому из ключей. Что-то вроде "покажи мне последний заказ по каждому из клиентов", если переводить в прикладную область.
Кажется, что тут и споткнуться-то негде в реализации - но все оказывается совсем не тривиально.
Смотреть статью
Задача
Выбрать все записи из таблицы tbl_name и отсортировать их по полю id в обратном порядке.
Функция RPAD()
Функция RPAD() справа накладывает строку с другой строкой, до определенной длины.
Синтаксис:
RPAD(string, length, rpad_string).