Sql кратко для собеседования

Обновлено: 07.07.2024

В этом руководстве рассматриваются основные вопросы собеседования по SQL, которые помогут вам ответить на вопросы по SQL как для новичков, так и для опытных.

1. Что такое SQL?

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

2. В чем разница между SQL и PL / SQL?

3. Каковы различные операции или способы использования SQL?

Мы можем использовать SQL для управления данными в реляционных базах данных и поддерживать следующие операции:

  • Создать новую базу данных
  • Создать новую таблицу в базе данных
  • Вставить запись
  • Получить запись
  • Удалить запись
  • Выполнять запросы
  • Обновить запись
  • Создать представление в базе данных

4. Поддерживает ли SQL язык программирования?

SQL - это командный язык, который нельзя использовать для программирования, поскольку он не поддерживает управляющие операторы, такие как цикл for, if-else и т. Д. Мы в основном используем SQL как запрос для работы с данными в реляционной базе данных.

5. Что такое подмножества SQL?

Ниже приведены подмножества SQL:

    Определяет структуру данных и имеет такие команды, как CREATE, ALTER, DROP и т. Д.
  • DML - язык обработки данных: Манипулирует существующими данными и имеет такие команды, как SELECT, UPDATE, INSERT и т. Д.
  • DCL - Язык управления данными: Управляет доступом к данным в базе данных и имеет такие команды, как GRANT, REVOKE.

6. Определите таблицы и поля в базе данных.

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

7. Что такое первичный ключ?

Первичный ключ - это уникальный ключ, который помогает находить уникальные записи. Первичный ключ может представлять одно поле или группу полей. Например, мы можем рассматривать EMP_ID как первичный ключ в таблице EMPLOYEE, который помогает однозначно находить записи о сотрудниках на основе поля идентификатора. Первичный ключ не может содержать NULL значения.

8. Что такое внешний ключ?

Внешний ключ относится к первичному ключу другой таблицы. Он устанавливает отношения между таблицы с использованием комбинаций первичного и внешнего ключей. Он также поддерживает свойства ACID.

9. Что такое база данных?

База данных - это структурированная форма данных, которая помогает легко поддерживать данные и получать к ним доступ. Это помогает организованно хранить огромное количество данных. Используя базу данных, мы можем выполнять любые манипуляции с данными или операции без особых усилий. База данных может содержать несколько таблиц для хранения и организации данных.

10. Какие существуют типы систем управления базами данных (СУБД)?

  • Иерархическая база данных
  • Реляционная база данных
  • Сетевая база данных
  • Объектно-ориентированная база данных

11. Что такое СУБД?

RDBMS - это сокращение от Relational Database Management. Система который представляет данные в реляционной модели. Он использует реляционные операторы для хранения и связывания коллекции таблиц в базе данных. Например: Microsoft Access, MySQL, SQLServer, Oracle и т. Д. РСУБД - наиболее часто используемые система управления базами данных.

12. Какие типы операторов существуют в SQL?

  • Арифметические операторы: + - * /
  • Логические операторы: ALL, AND, ANY, ISNULL, EXISTS, BETWEEN, IN, LIKE, NOT, OR, UNIQUE.
  • Операторы сравнения: =,! =, <>, , =,!

13. Что такое представление в SQL?

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

14. Что такое индекс в SQL?

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

15. Какие типы индексов существуют в SQL?

  • Уникальный индекс
  • Кластерный индекс
  • Некластеризованный индекс
  • Индекс битовой карты
  • Нормальный индекс
  • Составной индекс
  • Индекс B-дерева
  • Индекс на основе функций

16. В чем разница между кластерными и некластеризованными индексами?

17. Что такое нормализация?

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

  • Первая нормальная форма
  • Вторая нормальная форма
  • Третья нормальная форма
  • Код Бойса Нормальная форма

18. Какие соединения обычно используются в SQL?

  • Внутреннее соединение
  • Внешнее соединение - левое внешнее соединение, правое внешнее соединение
  • Естественное соединение
  • Перекрестное соединение
  • Самостоятельное присоединение

19. Что такое внутреннее соединение и какие бывают типы внутреннего соединения?

Внутреннее соединение возвращает совпадающие строки между таблицами. Другими словами, он возвращает общие записи, которые присутствуют в обеих таблицах. Он использует ключевое слово INNERJOIN в запросе SQL.

  • Тета присоединиться
  • Естественное соединение
  • Equi присоединиться

Внутреннее соединение

20. Что такое правильное соединение?

Правое соединение возвращает все строки из правой таблицы независимо от того, есть ли совпадение с левой таблицей вместе с общими строками. Он использует ключевое слово RIGHTJOIN в запросе SQL.

Правое внешнее соединение

21. Что такое левое соединение?

Левое соединение возвращает все строки из левой части таблицы независимо от того, есть ли совпадение с правой таблицей вместе с общими строками. Он использует ключевое слово LEFTJOIN в запросе SQL.

Левое внешнее соединение

22. Что такое полное соединение?

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

Полное внешнее соединение

23. Что такое самостоятельное присоединение?

Таблица, которая присоединяется к той же таблице, что означает, что она содержит копию той же таблицы внутри себя.

24. Что такое перекрестное соединение?

Перекрестное соединение возвращает произведение строк из 2 таблиц. Например, если есть n строк в таблице 1 и m строк в таблице 2, она вернет n * m строк. Это также называется декартовым соединением.

25. Что такое триггер?

Триггер выполняет пакет кода всякий раз, когда выполняется какая-либо команда, такая как вставка, обновление или удаление. Это набор действий, которые необходимо выполнить после вызова любых команд SQL. Они автоматически выполняются при вставке или обновлении любой записи. Мы можем использовать CREATE TRIGGER для генерации триггеров. Это хранимые процедуры, которые выполняются при возникновении события. Он состоит из 3 частей: событие, условие, действие.

26. Что такое операторы Set?

Различные установить операторы в SQL это UNION, UNIONALL, INTERSECT и MINUS. Запросы, в которых используются эти операторы набора, называются составными запросами.

27. В чем разница между операторами условия IN и BETWEEN?

Оператор BETWEEN отображает все строки, содержащие значения или данные в определенном диапазоне, тогда как оператор IN возвращает строки, относящиеся к данному набору значений.

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

Теория

Что такое СУБД?

Допустим, есть большая база данных, которой пользуются многие сотрудники: кто-то ищет информацию, а кто-то изменяет или даже удаляет её. Чтобы правильно обрабатывать все эти запросы, нужно специальное программное обеспечение, и именно такое ПО получило название системы управления базами данных (СУБД).

Какие типы СУБД в соответствии с моделями данных вы знаете?

Этот вопрос по SQL предполагает не просто назвать, но и дать краткое описание каждому типу.

Что такое первичный ключ?

Первичный ключ или PRIMARY KEY предназначен для однозначной идентификации каждой записи в таблице и является строго уникальным ( UNIQUE ): две записи таблицы не могут иметь одинаковые значения первичного ключа. Нулевые значения ( NULL ) в PRIMARY KEY не допускаются. Если в качестве PRIMARY KEY используется несколько полей, их называют составным ключом.

Здесь в качестве первичного ключа используется поле id.

Когда используется PRIMARY KEY?

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

А что такое внешний ключ?

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

В данном случае внешний ключ, привязанный к полю user_id в таблице order , ссылается на первичный ключ id в таблице users , и именно по этим полям происходит связывание двух таблиц.

Какие ещё ограничения вы знаете, как они работают и указываются?

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

  • UNIQUE — гарантирует уникальность значений в столбце;
  • NOT NULL — значение не может быть NULL ;
  • INDEX — создаёт индексы в таблице для быстрого поиска/запросов;
  • CHECK — значения столбца должны соответствовать заданным условиям;
  • DEFAULT — предоставляет столбцу значения по умолчанию.

Для чего используется ключевое слово ORDER BY?

Для сортировки данных в порядке возрастания ( ASC ) или убывания ( DESC ).

Выбираются пользователи, которые будут отсортированы по имени в порядке убывания. Дополните ответ на этот вопрос по SQL тем, что без указания DESC данные были бы отсортированы по умолчанию — в порядке возрастания:

Назовите четыре основных типа соединения в SQL

Чтобы объединить две таблицы в одну, следует использовать оператор JOIN . Соединение таблиц может быть внутренним ( INNER ) или внешним ( OUTER ), причём внешнее соединение может быть левым ( LEFT ), правым ( RIGHT ) или полным ( FULL ).

  • INNER JOIN — получение записей с одинаковыми значениями в обеих таблицах, т.е. получение пересечения таблиц.
  • FULL OUTER JOIN — объединяет записи из обеих таблиц (если условие объединения равно true) и дополняет их всеми записями из обеих таблиц, которые не имеют совпадений. Для записей, которые не имеют совпадений из другой таблицы, недостающее поле будет иметь значение NULL .
  • LEFT JOIN — возвращает все записи, удовлетворяющие условию объединения, плюс все оставшиеся записи из внешней (левой) таблицы, которые не удовлетворяют условию объединения.
  • RIGHT JOIN — работает точно так же, как и левое объединение, только в качестве внешней таблицы будет использоваться правая.

SQL JOIN

Рассмотрим пример соединения SQL таблиц с использованием INNER JOIN . Следующий запрос выбирает все заказы с информацией о клиенте:

А что такое Self JOIN?

Например, следующий SQL-запрос объединяет клиентов из одного города:

Для чего нужен оператор UNION?

Он используется для объединения полученных данных из двух или более запросов, которые должны иметь одинаковое количество столбцов с одинаковыми типами данных и расположенных в том же порядке.

Как работают подстановочные знаки?

Это специальные символы, которые нужны для замены каких-либо знаков в запросе. Они используются вместе с оператором LIKE , с помощью которого можно отфильтровать запрашиваемые данные.

Какими бывают подстановочные знаки?

  • % — заменить ноль или более символов;
  • _ — заменить один символ.

Что делают псевдонимы Aliases?

SQL-псевдонимы нужны для того, чтобы дать временное имя таблице или столбцу. Это нужно, когда в запросе есть таблицы или столбцы с неоднозначными именами. В этом случае для удобства в составлении запроса используются псевдонимы. SQL-псевдоним существует только на время запроса.

Для чего нужен оператор INSERT INTO SELECT?

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

Что такое нормализация и денормализация?

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

Соответственно, денормализация является обратным процессом, который вносит в нормализованную таблицу избыточные данные.

Подробнее о пяти нормальных формах и форме Бойса-Кодда можно узнать из данного видеокурса:


Объясните разницу между командами DELETE и TRUNCATE

Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию:

При этом создаются логи удаления, то есть операцию можно отменить.

А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно:

Чем VARCHAR отличается от NVARCHAR?

Практика

Как выбрать записи с нечётными Id?

Один из самых распространённых вопросов на собеседовании. SQL запрос для выбора записей с нечётными id должен выглядеть следующим образом:

Если остаток от деления id на 2 равен нулю, перед нами чётное значение, и наоборот.

Как найти дубли в поле email?

Функция COUNT() возвращает количество строк из поля email . Оператор HAVING работает почти так же, как и WHERE , вот только применяется не для всех столбцов, а для набора, созданного оператором GROUP BY .

При выборке из таблицы прибавьте к дате 1 день

Функция DATE_ADD() прибавляет к дате заданный промежуток времени. Синтаксис выглядит следующим образом:

Выберите только уникальные имена

SELECT DISTINCT возвращает разные значения, даже если в выбранном столбце есть дубли.

Найдите в таблице среднюю зарплату работников

Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.


Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопросами по SQL с собеседований я познакомлю вас с наиболее часто задаваемыми вопросами по SQL (Structured Query Language — язык структурированных запросов). Эта статья является идеальным руководством для изучения всех концепций, связанных с SQL, Oracle, MS SQL Server и базой данных MySQL.

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

DELETE TRUNCATE
Используется для удаления строки в таблице Используется для удаления всех строк из таблицы
Вы можете восстановить данные после удаления Вы не можете восстановить данные (прим. перевод.: операции логируются по разному, но в SQL Server есть возможность сделать откат) транзакции)
DML-команда DDL-команда
Медленнее, чем оператор TRUNCATE Быстрее

№ Вопрос 2. Из каких подмножеств состоит SQL?

  • DDL (Data Definition Language, язык описания данных) — позволяет выполнять различные операции с базой данных, такие как CREATE (создание), ALTER (изменение) и DROP (удаление объектов).
  • DML (Data Manipulation Language, язык управления данными) — позволяет получать доступ к данным и манипулировать ими, например, вставлять, обновлять, удалять и извлекать данные из базы данных.
  • DCL (Data Control Language, язык контролирования данных) — позволяет контролировать доступ к базе данных. Пример — GRANT (предоставить права), REVOKE (отозвать права).

Вопрос 3. Что подразумевается под СУБД? Какие существуют типы СУБД?

База данных — структурированная коллекция данных. Система управления базами данных (СУБД) — программное обеспечение, которое взаимодействует с пользователем, приложениями и самой базой данных для сбора и анализа данных. СУБД позволяет пользователю взаимодействовать с базой данных. Данные, хранящиеся в базе данных, могут быть изменены, извлечены и удалены. Они могут быть любых типов, таких как строки, числа, изображения и т. д.

Существует два типа СУБД:

  • Реляционная система управления базами данных: данные хранятся в отношениях (таблицах). Пример — MySQL.
  • Нереляционная система управления базами данных: не существует понятия отношений, кортежей и атрибутов. Пример — Mongo.

Вопрос 4. Что подразумевается под таблицей и полем в SQL?

Таблица — организованный набор данных в виде строк и столбцов. Поле — это столбцы в таблице. Например:
Таблица: Student_Information
Поле: Stu_Id, Stu_Name, Stu_Marks

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

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

  • Inner Join (Внутреннее соединение)
  • Right Join (Правое соединение)
  • Left Join (Левое соединение)
  • Full Join (Полное соединение)

Вопрос 6. В чем разница между типом данных CHAR и VARCHAR в SQL?

И Char, и Varchar служат символьными типами данных, но varchar используется для строк символов переменной длины, тогда как Char используется для строк фиксированной длины. Например, char(10) может хранить только 10 символов и не сможет хранить строку любой другой длины, тогда как varchar(10) может хранить строку любой длины до 10, т.е. например 6, 8 или 2.

Вопрос 7. Что такое первичный ключ (Primary key)?


  • Первичный ключ — столбец или набор столбцов, которые однозначно идентифицируют каждую строку в таблице.
  • Однозначно идентифицирует одну строку в таблице
  • Нулевые (Null) значения не допускаются

_Пример: в таблице Student StuID является первичным ключом.

Вопрос 8. Что такое ограничения (Constraints)?

Ограничения (constraints) используются для указания ограничения на тип данных таблицы. Они могут быть указаны при создании или изменении таблицы. Пример ограничений:

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

SQL — стандартный язык структурированных запросов (Structured Query Language) на основе английского языка, тогда как MySQL — система управления базами данных. SQL — язык реляционной базы данных, который используется для доступа и управления данными, MySQL — реляционная СУБД (система управления базами данных), также как и SQL Server, Informix и т. д.

Вопрос 10. Что такое уникальный ключ (Unique key)?

  • Однозначно идентифицирует одну строку в таблице.
  • Допустимо множество уникальных ключей в одной таблице.
  • Допустимы NULL-значения (прим. перевод.: зависит от СУБД, в SQL Server значение NULL может быть добавлено только один раз в поле с UNIQUE KEY).

Вопрос 11. Что такое внешний ключ (Foreign key)?

  • Внешний ключ поддерживает ссылочную целостность, обеспечивая связь между данными в двух таблицах.
  • Внешний ключ в дочерней таблице ссылается на первичный ключ в родительской таблице.
  • Ограничение внешнего ключа предотвращает действия, которые разрушают связи между дочерней и родительской таблицами.

Вопрос 12. Что подразумевается под целостностью данных?

Целостность данных определяет точность, а также согласованность данных, хранящихся в базе данных. Она также определяет ограничения целостности для обеспечения соблюдения бизнес-правил для данных, когда они вводятся в приложение или базу данных.

Вопрос 13. В чем разница между кластеризованным и некластеризованным индексами в SQL?

  1. Различия между кластеризованным и некластеризованным индексами в SQL:
    Кластерный индекс используется для простого и быстрого извлечения данных из базы данных, тогда как чтение из некластеризованного индекса происходит относительно медленнее.
  2. Кластеризованный индекс изменяет способ хранения записей в базе данных — он сортирует строки по столбцу, который установлен как кластеризованный индекс, тогда как в некластеризованном индексе он не меняет способ хранения, но создает отдельный объект внутри таблицы, который указывает на исходные строки таблицы при поиске.
  3. Одна таблица может иметь только один кластеризованный индекс, тогда как некластеризованных у нее может быть много.

Вопрос 14. Напишите SQL-запрос для отображения текущей даты.

В SQL есть встроенная функция GetDate (), которая помогает возвращать текущий timestamp/дату.

Вопрос 15. Перечислите типы соединений

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


Inner join (Внутреннее соединение): в MySQL является наиболее распространенным типом. Оно используется для возврата всех строк из нескольких таблиц, для которых выполняется условие соединения.

Left Join (Левое соединение): в MySQL используется для возврата всех строк из левой (первой) таблицы и только совпадающих строк из правой (второй) таблицы, для которых выполняется условие соединения.

Right Join (Правое соединение): в MySQL используется для возврата всех строк из правой (второй) таблицы и только совпадающих строк из левой (первой) таблицы, для которых выполняется условие соединения.

Full Join (Полное соединение): возвращает все записи, для которых есть совпадение в любой из таблиц. Следовательно, он возвращает все строки из левой таблицы и все строки из правой таблицы.

Вопрос 16. Что вы подразумеваете под денормализацией?

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

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

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

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

Вопрос 18. Что такое индекс?

Индексы относятся к методу настройки производительности, позволяющему быстрее извлекать записи из таблицы. Индекс создает отдельную структуру для индексируемого поля и, следовательно, позволяет быстрее получать данные.

Вопрос 19. Опишите различные типы индексов.

Есть три типа индексов, а именно:

  1. Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
  2. Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
  3. Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.

Вопрос 20. Что такое нормализация и каковы ее преимущества?

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

  • Лучшая организация базы данных
  • Больше таблиц с небольшими строками
  • Эффективный доступ к данным
  • Большая гибкость для запросов
  • Быстрый поиск информации
  • Проще реализовать безопасность данных
  • Позволяет легко модифицировать
  • Сокращение избыточных и дублирующихся данных
  • Более компактная база данных
  • Обеспечивает согласованность данных после внесения изменений

Вопрос 21. В чем разница между командами DROP и TRUNCATE?

Команда DROP удаляет саму таблицу, и нельзя сделать Rollback команды, тогда как команда TRUNCATE удаляет все строки из таблицы (прим. перевод.: в SQL Server Rollback нормально отработает и откатит DROP).

Вопрос 22. Объясните различные типы нормализации.

Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.

  • Первая нормальная форма (1NF) — нет повторяющихся групп в строках
  • Вторая нормальная форма (2NF) — каждое неключевое (поддерживающее) значение столбца зависит от всего первичного ключа
  • Третья нормальная форма (3NF) — каждое неключевое значение зависит только от первичного ключа и не имеет зависимости от другого неключевого значения столбца

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

ACID означает атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation), долговечность (Durability). Он используется для обеспечения надежной обработки транзакций данных в системе базы данных.

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

Согласованность. Гарантирует, что данные должны соответствовать всем правилам валидации. Проще говоря, вы можете сказать, что ваша транзакция никогда не оставит вашу базу данных в недопустимом состоянии.

Изолированность. Основной целью изолированности является контроль механизма параллельного изменения данных.

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

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

Вопрос 25. Какие операторы доступны в SQL?

В SQL доступно три типа оператора, а именно:

  1. Арифметические Операторы
  2. Логические Операторы
  3. Операторы сравнения

Вопрос 26. Совпадают ли значения NULL со значениями нуля или пробела?

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

Вопрос 27. В чем разница между перекрестным (cross join) и естественным (natural join) соединением?

Перекрестное соединение создает перекрестное или декартово произведение двух таблиц, тогда как естественное соединение основано на всех столбцах, имеющих одинаковое имя и типы данных в обеих таблицах.

Вопрос 28. Что такое подзапрос в SQL?

Подзапрос — это запрос внутри другого запроса, в котором определен запрос для извлечения данных или информации из базы данных. В подзапросе внешний запрос называется основным запросом, тогда как внутренний запрос называется подзапросом. Подзапросы всегда выполняются первыми, а результат подзапроса передается в основной запрос. Он может быть вложен в SELECT, UPDATE или любой другой запрос. Подзапрос также может использовать любые операторы сравнения, такие как >, SELECT * FROM table1
SELECT COUNT(*) FROM table1
SELECT rows FROM sysindexes WHERE AND indid

Ещё 35 вопросов с ответами опубликуем в следующей части… Следите за новостями!


ТОП-20 хитрых вопросов по SQL для собеседования

Оператор EXISTS – это отвлекающий маневр. Тут всегда будет true, т. к. ID не является членом dbo.docs. Таким образом, ID будет ссылаться на таблицу envelope, сравнивая себя с самим собой.

Неверное выражение BillingYear в условии WHERE. Несмотря на то, что он определен как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Программисты привыкли к тому, что операторы выполняются сверху вниз или слева направо, но в T-SQL это происходит в другом порядке.

Правильный запрос будет выглядеть так:

Напишите один запрос для вычисления суммы всех положительных и отрицательных значений x.

1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1

Написать запрос, чтобы установить 2 вместо 0 и установить 3 вместо 1.

В таблице Emp 10 записей, а в Dept – 5. Сколько строк будет отображаться в результате следующего SQL-запроса:

Объясните свой ответ.

Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.

Ключевое место – AND a!=X. Это дает вам все плюшки UNION DISTINCT, избегая при этом просадки производительности.

NVARCHAR способен хранить значения в формате Unicode – каждый символ занимает 2 байта, а кодировка занимает 65 536 символов.

VARCHAR хранит значения в формате ASCII – каждый символ занимает байт, а кодировка занимает 256 символов.

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

Во многих системах SQL план выполнения можно получить с помощью ключевого слова EXPLAIN. В Microsoft SQL Server Query Analyzer имеет в раскрывающемся меню параметр “Show Execution Plan”. Если его активировать, то при выполнении запроса план будет отображаться в отдельном окне.

Это один из распространенных вопросов по SQL на собеседованиях.

Выбор четных записей:

Выбор нечетных записей:

Как NVL(exp1, exp2), так и NVL2(exp1, exp2, exp3) исследуют значение exp1 на предмет NULL. Функция NVL заменяет значение, если встречается NULL. Функция NVL2 проверяет значение exp1. Если оно не NULL, то возвращается exp2, иначе – exp3.

Важен. Когда строится составной индекс, сначала индексируется первый столбец, а потом строятся индексы других столбцов, на основании главного (первого).

Однорядные функции одновременно работают только с одной строкой, а многорядные функции – с данными из нескольких строк.

Команда GROUP BY объединяет все записи, имеющие одинаковые значения в определенном поле или любой группе полей.

Если в запросе не используется GROUP BY, то условия WHERE и HAVING эквивалентны.

Но при использовании GROUP BY:

  • Условие HAVING используется для фильтрации значений из группы (т. е. для проверки условий после выполнения агрегации в группы).
  • Условие WHERE используется для фильтрации записей из результата до срабатывания какой-либо группировки.

Этот запрос вернет 10 записей, т. к. TRUNCATE выполняется в транзакции.

Да, можно. Например, так:

Это еще один из популярных вопросов по SQL.

IN:

  • Работает результирующим набором.
  • Не применяется во вложенных запросах.
  • Сравнивает все значения в списке результатов
  • Имеет сравнительно низкую производительность при работе с большими результатами и подзапросами.

EXISTS:

  • Работает с виртуальными таблицами.
  • Используется со связанными запросами.
  • Выводит результаты сравнения, если true.
  • Обладает высокой производительностью, что облегчает обработку больших подзапросов.
Мы рассмотрели основные из распространенных вопросов по SQL.

Среди них встречаются не совсем понятные и очевидные, но это делает их более интересными. Тренируйтесь, пробуйте, читайте и у вас получится пройти собеседование на должность вашей мечты.

Мы что-то упустили? Напишите нам о каверзных вопросах по SQL, которые вам встречались.

Читайте также: