В этой статье вы узнаете о 20 наиболее часто задаваемых вопросах и ответах на собеседованиях по SQL.

Вопрос 1. Что такое СУБД, РСУБД, база данных?

  • Система управления базами данных (СУБД) — это программные системы, используемые для хранения, извлечения и выполнения запросов к данным. Также ее можно назвать файловым менеджером, который управляет данными в базе данных, а не сохраняет их в файловой системе. Пример: MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, база данных Oracle и Microsoft Access.
  • Система управления реляционными базами данных (СУБД), которая хранит данные в наборе таблиц.Пример:sql-сервер
  • База данных — это организованная форма данных или, можно сказать, структурированная форма данных, доступ к которым можно получить разными способами. Этот тип данных облегчает доступ, хранение, поиск и управление данными.

В2. В чем разница между таблицами и полями?

Таблицы — это набор данных, организованных в виде строк и столбцов, где строки можно разделить на горизонтальные, а столбцы — на вертикальные. тогда как в таблице указано количество столбцов, которые можно назвать полями, но любое количество строк можно назвать записями.

Вопрос 3. Каковы подмножества SQL?

SQL-запросы разделены на четыре основные категории:

Язык определения данных (DDL):

SQL-команды

  • CREATE: Создает базы данных, таблицы, схемы и т. д.
  • DROP: удаляет таблицы и другие объекты базы данных.
  • DROP COLUMN: удаляет столбец из любой структуры таблицы.
  • ALTER: изменяет определение объектов базы данных.
  • TRUNCATE: удаляет таблицы, представления, процедуры и другие объекты базы данных.
  • ДОБАВИТЬ СТОЛБЕЦ: добавляет любой столбец в схему таблицы.

Язык манипулирования данными (DML):

используется для манипулирования данными

  • SELECT INTO: выбирает данные из одной таблицы и вставляет их в другую.
  • INSERT: вставляет данные или записи в таблицу.
  • ОБНОВЛЕНИЕ: обновляет значение любой записи в базе данных.
  • DELETE: удаляет записи из таблицы.

Язык управления данными (DCL):

управлять правами доступа и контролем разрешений.

  • GRANT: предоставляет права доступа к объектам базы данных.
  • REVOKE: отзывает разрешение у объектов базы данных.

Язык управления транзакциями (TCL):

Этонабор команд, который управляет транзакциями в базе данных и изменениями, вносимыми операторами DML. TCL позволяет группировать операторы в логические транзакции.

  • COMMIT: необратимая транзакция, т. е. предыдущий образ базы данных перед транзакцией не может быть получен.
  • ROLLBACK: отменяет шаги транзакции в случае ошибки.
  • SAVEPOINT: устанавливает точку сохранения в транзакции, до которой можно выполнить откат.
  • SET TRANSACTION: устанавливает характеристики транзакции.

Вопрос 4. Что такое ограничения в SQL?

Ограничения используются для указания правил, касающихся данных в таблице. Его можно применить к одному или нескольким полям в таблице SQL во время создания таблицы или после создания с помощью команды ALTER TABLE. Ограничения:

  • NOT NULL — запрещает вставку значения NULL в столбец.
  • ПРОВЕРКА — проверяет, что все значения в поле удовлетворяют условию.
  • DEFAULT — автоматически назначает значение по умолчанию, если для поля не указано значение.
  • UNIQUE — обеспечивает вставку в поле уникальных значений.
  • INDEX — индексирует поле, обеспечивая более быстрый поиск записей.
  • ПЕРВИЧНЫЙ КЛЮЧ. Уникально идентифицирует каждую запись в таблице.
  • FOREIGN KEY — обеспечивает ссылочную целостность записи в другой таблице.

Вопрос 5. Что такое первичный ключ и внешний ключ?

  • ПЕРВИЧНЫЙ КЛЮЧ — столбец или поле, определяющий уникальную строку. это особый вид уникального ключа. первичный ключ не может быть нулевым, т. е. он неявно имеет ненулевые ограничения Пример: каждая страна в мире имеет уникальное имя и код (ISO, ICAO, IOC, E. 164 или любой другой.
  • ВНЕШНИЙ КЛЮЧ состоит из одного или нескольких полей в таблице, которые по существу ссылаются на ПЕРВИЧНЫЙ КЛЮЧ в другой таблице. Ограничение внешнего ключа обеспечивает ссылочную целостность в отношениях между двумя таблицами.

Вопрос 6. Что такое нормализация?

Нормализация заключается в разбиении данных на более мелкие связанные части и хранении их в отдельных таблицах. Это помогает уменьшить избыточность или, скажем, дублирование в таблице (повторение одной и той же информации) и гарантирует согласованность ваших данных и удобство управления ими.

Вопрос 7. Какие существуют формы нормализации?

1.Первая нормальная форма (1NF):Удалите все повторяющиеся столбцы из таблицы. Другими словами, мы можем сказать, что отношение находится в 1NF, если оно содержит атомарное значение. то есть каждая ячейка в вашей таблице должна иметь только одно значение».

Пример. Как мы видим, поле «Выпущенные книги» имеет более одного значения для каждой записи, и чтобы преобразовать его в 1NF, это необходимо преобразовать в отдельные отдельные записи для каждой выпущенной книги. Проверьте следующую таблицу в форме 1NF:

2. Вторая нормальная форма (2NF): она удовлетворяет всем требованиям 1NF. Размещение подмножеств данных в отдельной таблице и создание связи между таблицами с использованием первичного ключа.

Пример. Рассмотрим приведенный выше пример. Таблица студентов в настоящее время находится в 1NF с потенциальным ключом [Студент, Адрес] для уникальной идентификации записей. Однако неосновной атрибут «Выпущено книг» частично зависит от «Студента». Для достижения 2NF таблица будет разделена на две части. Таблица «Студенты» будет иметь новый первичный ключ, а вторая таблица будет иметь внешний ключ, связанный с таблицей «Студенты» для обеспечения ссылочной целостности.

3. Третья нормальная форма (3НФ): соответствует всем требованиям 2НФ. Удаление столбцов, которые не зависят от ограничений первичного ключа.

Пример. В таблице студентов 2NF Student_ID действует как первичный ключ. Однако Приветствие зависит от Студента, а не от этого ключа, что нарушает 3НФ. Чтобы достичь 3NF, мы разделили таблицы: Студенты с Student_ID в качестве первичного ключа и Приветствия с внешним ключом, связанным со Студентами для уникальной идентификации.

4. Четвертая нормальная форма (4NF): когда данные не находятся в 4NF. Разделите данные на отдельные таблицы, когда одна часть информации зависит от другой, чтобы связь была прямой и избегала ненужных связей. Кроме того, удалите избыточные данные, которые можно вывести из другой информации в вашей базе данных.

Пример. Представьте, что в вашей таблице есть столбцы «Имя друга», «Название блюда» и «Тип блюда». В этом сценарии тип блюда зависит только от названия блюда, а не от имени друга. В 4NF вы разделите это на две таблицы: одну для имени друга и названия блюда, а другую для названия блюда и типа блюда. Таким образом, вы предотвратите косвенную связь типа блюда с именем друга.

5. Пятая нормальная форма (5НФ): Только тогда таблица находится в 4НФ. он находится в 5NF и не может быть разложен на любое количество меньших таблиц без потери данных.

Вопрос 8. Что такое денормализация?

Денормализация — это процесс, обратный нормализации, при котором нормализованная схема преобразуется в схему, содержащую избыточную информацию. Производительность повышается за счет использования избыточности и обеспечения согласованности избыточных данных. Причиной выполнения денормализации являются накладные расходы, создаваемые в процессоре запросов сверхнормализованной структурой.

Вопрос 9. В чем разница между SQL и MySQL?

SQL (язык структурированных запросов) — это язык, который вы используете для взаимодействия с базами данных, а MySQL — один из многих инструментов, которые слушают этот язык и управляют данными за вас. Точно так же, как вы говорите по-английски для общения, вы используете SQL для общения с базами данных, а MySQL (это RDMS (система управления реляционными базами данных)) является одной из систем, понимающих этот язык.

Вопрос 10. Что такое D/B OLTP и OLAP?

OLTP означает онлайн-обработку транзакций. Он позволяет огромным группам людей выполнять огромные объемы транзакций базы данных в режиме реального времени, обычно через Интернет. Транзакция базы данных происходит, когда данные в базе данных изменяются, вставляются, удаляются или запрашиваются. тогда как OLAP означает онлайн-аналитическую обработку. , тогда как OLAP — это онлайн-система ответа на запросы к базе данных.

Вопрос 11. Какие общие предложения используются с запросом SELECT в SQL?

Ниже приведены некоторые распространенные предложения SQL, используемые в сочетании с запросом SELECT:

  • Предложение WHERE используется для фильтрации необходимых записей на основе определенных условий.
  • Предложение ORDER BY используется для сортировки записей на основе некоторых полей в порядке возрастания (ASC) или убывания (DESC).
SELECT *
FROM myDB.students
WHERE graduation_year = 2019
ORDER BY studentID DESC;
  • Предложение GROUP BY похоже на объединение похожих элементов и использование некоторых функций агрегирования для получения обобщенных результатов из базы данных.
  • Предложение HAVING используется для фильтрации записей в сочетании с предложением GROUP BY. Оно отличается от WHERE, поскольку предложение WHERE не может фильтровать агрегированные записи.
SELECT COUNT(studentId), country
FROM myDB.students
WHERE country != "INDIA"
GROUP BY country
HAVING COUNT(studentID) > 5;

Вопрос 12. В чем разница между функциями RANK() и DENSE_RANK()?

  • Представьте, что у вас есть список результатов людей в игре, и вы хотите знать, кто лидирует. Функции RANK() и DENSE_RANK() помогут вам в этом разобраться.
  • С помощью RANK(), если два человека имеют одинаковый балл, они получают одинаковый ранг, а затем следующий ранг пропускает эти дубликаты. Таким образом, если два человека разделят 4-е место, следующим будет 7-е место.
  • С другой стороны, DENSE_RANK() присваивает каждому человеку уникальный ранг, даже если у них одинаковый балл. Он продолжает считать по порядку, без каких-либо пробелов. Итак, если два человека делят 4-е место, следующим местом будет просто 5-е.
  • Эти функции помогут вам увидеть, кто побеждает, не пропуская ни одного ранга и не повторяя его.

Вопрос 13. Перечислите различные типы отношений в SQL.

В базе данных существуют разные типы отношений:
1. Отношения «один к одному».Представьте, что у вас есть два друга, Алиса и Боб. У каждого из них единый паспорт. Каждый человек привязан только к одному паспорту, и каждый паспорт привязан только к одному человеку.

2. Отношения «один ко многим» и «многие к одному». Представьте себе библиотеку. Каждая книга в библиотеке написана одним автором, но у каждого автора может быть несколько книг. Так же, как у одного автора может быть много книг, но каждая книга принадлежит только одному автору.

3. Отношения «многие ко многим». Представьте себе сценарий, в котором учащиеся могут записаться на несколько курсов, и на каждом курсе может обучаться много студентов. Это отношения «многие ко многим». Многие студенты могут посещать множество курсов, создавая связь между различными экземплярами с обеих сторон.

4. Отношения с самореференцией. Представьте себе базу данных сотрудников компании. У каждого сотрудника может быть менеджер, который также является сотрудником той же компании. Это отношения самореференции. Сотрудник (запись) связан с другим сотрудником (записью) в той же таблице.

Вопрос 14. Что такое соединения в SQL?

Предложение JOIN используется для объединения строк из двух или более таблиц на основе связанного между ними столбца. Он используется для объединения двух таблиц или извлечения оттуда данных. Существует 4 типа объединений, как вы можете увидеть ниже:

  • Внутреннее объединение: извлекает только те строки, в которых есть совпадения между указанными столбцами в обеих таблицах. Из результата исключаются строки, не имеющие совпадений в обеих таблицах.
SELECT * FROM Table_A JOIN Table_B; SELECT * FROM Table_A INNER JOIN Table_B;
  • Левое (внешнее) соединение: извлекает все строки из левой (первой) таблицы и соответствующие строки (общие значения) из правой (второй) таблицы. Если совпадений в правой таблице нет, результат будет содержать значения NULL для столбцов из правой таблицы.
SELECT * FROM Table_A A LEFT JOIN Table_B B ON A.col = B.col;
  • Правое (внешнее) соединение: аналогично левому соединению, но извлекает все строки из правой таблицы и соответствующие строки (общие значения) из левой таблицы. Если совпадений в левой таблице нет, для столбцов из левой таблицы будут присутствовать значения NULL.
SELECT *FROM Table_A A RIGHT JOIN Table_B B ON A.col = B.col;
  • Полное объединение возвращает все записи, если есть совпадения в любой из таблиц. Таким образом, он возвращает все строки из левой таблицы и все строки из правой таблицы.
SELECT * FROM Table_A A FULL JOIN Table_B B ON A.col = B.col;
  • Самостоятельное объединение. Объединяет строки из одной таблицы, рассматривая ее как два отдельных экземпляра, что часто используется для поиска связей внутри одной таблицы.
SELECT e1.employee_name, e2.supervisor_name
FROM employees AS e1
JOIN employees AS e2 ON e1.supervisor_id = e2.employee_id;
  • Перекрестное (декартово) соединение: создает комбинацию всех строк из первой таблицы со всеми строками из второй таблицы, в результате чего получается декартово произведение двух таблиц.
SELECT stu.name, sub.subject FROM students AS stu CROSS JOIN subjects AS sub;

Вопрос 15. В чем разница между операторами DELETE, TRUNCATE и DROP?

Команда DELETE используется для удаления отдельных строк из таблицы, а команда TRUNCATE — для удаления всех строк в таблице. После оператора DELETE можно выполнить откат данных, тогда как с помощью TRUNCATE это невозможно. DELETE — это команда категории (DML), тогда как TRUNCATE — это команда (DDL). DELETE обычно занимает больше времени по сравнению с более быстрым оператором TRUNCATE. Команда DROP удаляет таблицу, и ее невозможно откатить из базы данных.

Вопрос 16. Что такое сущности и отношения?

  • Объекты: человек, место или предмет в реальном мире, данные о котором могут храниться в базе данных. Таблицы хранят данные, представляющие один тип сущности. Например: в банковской базе данных есть таблица клиентов для хранения информации о клиентах. Таблица клиентов хранит эту информацию в виде набора атрибутов (столбцов в таблице) для каждого клиента.
  • Отношения: отношения или связи между сущностями, которые имеют какое-то отношение друг к другу. Например: имя клиента связано с номером счета клиента и контактной информацией, которые могут находиться в той же таблице. Также могут быть связи между отдельными таблицами (например, клиент-счета).

Вопрос 17. Сколько агрегатных функций доступно в SQL?

SQL предоставляет 7 агрегатных функций, которые приведены ниже:

  • AVG(): возвращает среднее значение из указанных столбцов.
  • COUNT(): возвращает количество строк таблицы, включая строки с нулевыми значениями.
  • MAX(): возвращает наибольшее значение в группе.
  • MIN(): возвращает наименьшее значение в группе.
  • SUM(): возвращает общую сумму значений (отличных от нуля) указанного столбца.
  • FIRST(): возвращает первое значение выражения.
  • LAST(): возвращает последнее значение выражения.

Вопрос 18. Что такое свойство ACID в базе данных?

  • Атомарность: атомарность относится к транзакциям, которые полностью выполнены или не выполнены, где транзакция относится к одной логической операции с данными. Это означает, что если одна часть любой транзакции завершается сбоем, вся транзакция завершается с ошибкой, а состояние базы данных остается неизменным.
  • Согласованность. Согласованность гарантирует, что данные соответствуют всем правилам проверки. Проще говоря, вы можете сказать, что ваша транзакция никогда не покинет базу данных, не завершив свое состояние.
  • Изоляция. Основная цель изоляции — управление параллелизмом.
  • Долговечность. Долговечность означает, что если транзакция была зафиксирована, она произойдет независимо от того, что может произойти, например, при отключении питания, сбое или любой другой ошибке.

Вопрос 19. Являются ли значения NULL такими же, как у нуля или пробела?

Значение NULL совсем не то же самое, что ноль или пробел. Значение NULL представляет собой значение, которое недоступно, неизвестно, назначено или неприменимо, тогда как ноль — это число, а пробел — это символ.

Отзывы/предложения:

Если у вас есть какие-либо отзывы или предложения, оставьте комментарий ниже или напишите письмо по адресу [email protected] или свяжитесь со мной через LinkedIn по адресу https://www.linkedin.com/in/anshika- aggarwal-033535210/