Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

MYSQL вопросы и ответы на собеседование

Лекция



Привет, сегодня поговорим про mysql вопросы и ответы на собеседование, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое mysql вопросы и ответы на собеседование , настоятельно рекомендую прочитать все из категории MySql (Maria DB).

MYSQL вопросы и ответы на собеседование

1. Что такое реляционная база данных?

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

  • - каждый элемент таблицы - один элемент данных;
  • - все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый

тип (числовой, символьный и т. д.);

  • - каждый столбец имеет уникальное имя;
  • - одинаковые строки в таблице отсутствуют;
  • - порядок следования строк и столбцов может быть произвольным.

1.2 какие типы ключей вы знаете? назначение

1.3 что такое блокировки? какие виды бывают

1.4 расскажите механизм блокировок на примере движков Mycam Innodb

1.5 назначение транцакции

1.6 уровни изолированности транзакций

1.7 какие вы знаете не реляционные данные? какая их область применения?

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

Первичный ключ (primary key) - столбец, значения которого во всех строках различны. Первичные ключи могут быть логическими (естественными) и суррогатными (искусственными). Так, для воображаемой таблицы “Users” первичным ключом может стать столбец e-mail (ведь теоретически не может быть двух пользователей с одинаковым e-mail). Но на практике лучше использовать суррогатные ключи, т.к. их применение позволяет абстрагировать ключи от реальных данных. Кроме того, первичные ключи менять нельзя, но что если у пользователя сменится e-mail?

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

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

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

информации. Ее целью является сохранять данные только один раз, но в нужном месте.

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

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

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

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

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

оправдывают издержки, с которыми придется столкнуться.

4. Что такое mysql_pconnect? Чем он отличается от mysql_connect?

При использовании функции mysql_connect() каждый раз открывается новое соединение с базой данных. После вызова mysql_close() или после завершения работы скрипта соединение закрывается.

Отличия mysql_pconnect() заключаются в том, что, во-первых, при вызове функции сначала

ищется уже открытое (постоянное) соединение с базой (persistent connection), если его нет - создается новое. Во-вторых, после завершения работы скрипта и при вызове mysql_close() соединение с базой MySQL не закрывается, а остается открытым для последующего использования.

5. Что такое MyISAM и InnoDB?

MyISAM и InnoDB - это типы движков таблиц.

6. Чем они отличаются?

MyISAM

- не поддерживает транзакции и с этим связаны его основные недостатки и преимущества;

- в большинстве случаев он быстрее, так как нет расходов на транзакции;

- занимает меньше дискового пространства;

- меньше расход памяти на обновления;

- полнотекстовый индекс;

- быстрый INSERT, SELECT.

InnoDB

- поддержка транзакций;

- построчная блокировка. UPDATE не блокирует всю таблицу;

- отлично ведет себя при смешанной нагрузке (insert|select|update|delete).

7. Как сделать индекс в MySQL?

Для первичных ключей (PRIMARY KEY) индекс создается автоматически.

8. Что такое SQL-инъекция?

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

Уязвимость по отношению к SQL-инъекциям возникает из-за того, что пользовательская инфор мация попадает в запрос к базе данных без должной обработки: чтобы скрипт не был уязвим, требуется убедиться, что все пользовательские данные попадают во все запросы к базе данных

в экранированном виде.

9. Существует ли универсальная защита от SQL-инъекций?

Для этих целей в PHP есть специальные функций для работы со строками:

strip_tags() - вырезает теги HTML и PHP из строки.

htmlspecialchars() - конвертирует только специальные символы (’&’, ‘”‘, ”’, ‘<’ и ‘>’) в HTML сущности (’&’, ‘"’…). Используется для фильтрации вводимых пользователем данных для защиты от XSS-атак.

htmlentities() - конвертирует все символы в строке (кроме букв) в мнемоники HTML. Используется для защиты от XSS, являясь более гибким аналогом htmlspecialchars.

stripslashes() - удаляет заэкранированные символы (после преобразования в сущности предыдущими функциями их незачем экранировать). Обычно используется в связке с провероч-

ной функцией get_magic_quotes_gpc(), показывающей текущую установку конфигурации magic_quotes_gpc. Эта конфигурация влияет на то, как будут обрабатываться специальные символы,

содержащиеся в данных, передаваемых пользователем (массивы $_GET, $_POST, $_COOKIE). При magic_quotes_gpc = 1 эти спецсимволы (одиночные и двойные кавычки, обратный слэш, байт

NULL) автоматически экранируются. При magic_quotes_gpc = 0 все данные передаются в таком

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

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

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

функция превращает любую строку в правильную и безопасную для MySQL-запроса. Используется для очистки всех данных, передающихся в MySQL-запрос для защиты от SQL-инъекций.

10. Есть две таблицы:

users - таблица с пользователями (users_id, name)

orders - таблица с заказами (orders_id, users_id, status)

1) Выбрать всех пользователей из таблицы users, у которых ВСЕ записи в таб-

лице orders имеют status = 0

2) Выбрать всех пользователей из таблицы users, у которых больше 5 запи-

сей в таблице orders имеют status = 1

1) Выбор пользователей с использованием вложенного запроса:

SELECT * FROM users WHERE users_id NOT IN (

SELECT users_id FROM orders WHERE status <> 0)

2) C использованием JOIN и HAVING:

SELECT u.* FROM orders o

JOIN users u ON u.users_id = o.users_id

WHERE o.status = 1 GROUP BY o.users_id

HAVING COUNT(o.status) > 5

11. Какая разница между LEFT, RIGHT и INNER JOIN?

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

Простой JOIN - это то же самое, что INNER JOIN, он показывает только общие записи обоих таб-

лиц. Каким образом записи считаются общими, определяется полями в join-выражении. Напри-

мер, следующая запись:

FROM t1 JOIN t2 on t1.id = t2.id

означает что будут показаны записи с одинаковыми id, существующие в обоих таблицах.

LEFT JOIN (или LEFT OUTER JOIN) означает показывать все записи из левой таблицы (той, кото-

рая идет первой в join-выражении) независимо от наличия соответствующих записей в правой

таблице.

RIGHT JOIN (или RIGHT OUTER JOIN) действует в противоположность LEFT JOIN - показывает все

записи из правой (второй) таблицы и только совпавшие из левой (первой) таблицы.

LEFT JOIN:

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

ячейки второй;

- если условие не выполняется, присоединяются пустые ячейки.

INNER JOIN:

- при выполнении условия тоже, что и с LEFT JOIN;

- если условие не выполняется, строка вообще игнорируется (не будет ячеек даже из первой

таблицы).

Проще говоря, LEFT JOIN выберет из первой таблицы все записи, даже если во второй таблице

нет совпадений по какому-то условию. INNER JOIN выберет только те, что полностью соответс-

твуют условию.

12. Чем отличается WHERE от HAVING?

При помощи HAVING отражаются все предварительно сгруппированные посредством GROUP BY

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

ность “профильтровать” выходной набор.

Условия в HAVING отличаются от условий в WHERE:

- В условии поиска WHERE нельзя задавать агрегатные функции;

- HAVING исключает из результирующего набора данных группы с результатами агрегирован-

ных значений;

- WHERE исключает из расчета агрегатных значений по группировке записи, не удовлетворяю-

щие условию.

13. Что можешь сказать про команду GROUP BY?

GROUP BY используется для группировки результата одного или нескольких столбцов.

Синтаксис:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

14. Об этом говорит сайт https://intellect.icu . Приведи пример использования GROUP BY.

Есть следующая таблица “Orders”:

MYSQL вопросы и ответы на собеседование

Теперь мы хотим найти общую сумму заказа для каждого клиента. Выполним запрос:

SELECT Customer,SUM(Price) FROM Orders GROUP BY Customer

Результат запроса:

MYSQL вопросы и ответы на собеседование

Теперь давайте посмотрим, что произойдет, если мы не используем запрос GROUP BY:

SELECT Customer,SUM(OrderPrice) FROM Orders

Результат запроса:

MYSQL вопросы и ответы на собеседование

15. Допустим, у тебя есть Интернет-магазин. Составь запрос, который покажет сколько денег принес каждый отдельно взятый покупатель в общей сложности за все время существования магазина.

SELECT customer_name, SUM(order_price) FROM orders

GROUP BY customer_name;

16. А теперь пусть этот же запрос показывает только тех, кто купил товаров в общей сложности минимум на 10 тысяч евро.

SELECT customer_name, SUM(order_price) FROM orders

GROUP BY customer_name HAVING SUM(order_price) >= 10000;

17. Что делает команда EXPLAIN?

EXPLAIN может в точности рассказать, что происходит, когда мы выполняем запрос. Эта инфор-

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

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

Вот пример использования этой команды:

EXPLAIN SELECT * FROM users WHERE id=’42’

Если оператор SELECT предваряется ключевым словом EXPLAIN, MySQL сообщит о том, как бу-

дет производиться обработка SELECT, и предоставит информацию о порядке и методе связыва-

ния таблиц.

При помощи EXPLAIN можно выяснить, когда стоит снабдить таблицы индексами, чтобы полу-

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

Заставить оптимизатор связывать таблицы в заданном порядке можно при помощи указания

STRAIGHT_JOIN.

Для непростых соединений EXPLAIN возвращает строку информации о каждой из использован-

ных в работе оператора SELECT таблиц. Таблицы перечисляются в том порядке, в котором они

будут считываться. MySQL выполняет все связывания за один проход (метод называется “single-

sweep multi-join”). Делается это так: MySQL читает строку из первой таблицы, находит совпа-

дающую строку во второй таблице, затем - в третьей, и так далее. Когда обработка всех таблиц

завершается, MySQL выдает выбранные столбцы и обходит в обратном порядке список таблиц

до тех пор, пока не будет найдена таблица с наибольшим совпадением строк. Следующая строка

считывается из этой таблицы и процесс продолжается в следующей таблице.

18. Как вывести все поля из таблицы super_table?

SELECT * FROM super_table

19. Как вывести только поля name_first, name_last, salary из таблицы super_table?

SELECT name_first, name_last, salary FROM super_table

20. Таблице super_table задать псевдоним t и вывести всех, у кого salary выше 3800

SELECT * FROM super_table AS t WHERE t.salary>3800

21. Выбрать страны, из которых поставляют продукцию производители, так, чтобы страны не повторялись по 2 и более раз.

SELECT DISTINCT country FROM manufacturers

22. Вывести всех украинских производителей.

SELECT * FROM manufacturers WHERE country=”Ukraine”

23. Вывести только те магазины, которые находятся во Киеве и/или Амстердаме.

и:

SELECT * FROM shops WHERE area=”Киев” && area=”Амстердам”

или:

SELECT * FROM shops WHERE area=”Амстердам” || area=”Киев”

24. Вывести все модели авто Tesla, стоимостью не менее 150000 долларов.

SELECT * FROM buses WHERE brand=”Tesla” && NOT seats<15

25. Вывести все автобусы в порядке возрастания количества мест.

SELECT * FROM buses ORDER BY seats

26. Вывести все автобусы в порядке уменьшения количества мест.

SELECT * FROM buses ORDER BY seats DESC

27. Какие знаешь команды для подсчета значений поля?

SELECT MAX(seats) FROM buses // Выведет автобус с максимальным количеством сидений

SELECT MIN(seats) FROM buses // Выведет автобус с минимальным количеством сидений

SELECT SUM(seats) FROM buses // Выведет общее количество сидений во всех автобусах

SELECT AVG(seats) FROM buses // Выведет среднее количество сидений

SELECT COUNT(*) FROM buses // Выведет общее количество автобусов в таблице

SELECT COUNT(*) FROM cars WHERE brand=”Tesla” // Выведет количество авто Tesla

28. Предположим, у нас есть таблица в которой есть поля name и id.

Нужно вывести имя с наибольшим id, не используя при этом команду MAX.

Как это можно сделать?

Отсортировать по id в сторону уменьшения, но вывести только первый id. Он и будет наибольшим.

SELECT name, id FROM customers ORDER BY id DESC LIMIT 1

29. С помощью конструкции IN вывести производителей из Украины, Германии и США.

SELECT * FROM manufacturer WHERE country IN

(“Украина”, “Германия”, “США”)

30. Вывести всех производителей за исключением тех, которые находятся в Китае, Таджикистане и России.

SELECT * FROM manufacturer WHERE country NOT IN

(“Китай”,”Таджикистан”, “Россия”)

31. Вывести пустые / не пустые значения.

пустые:

SELECT * FROM manufacturer WHERE location IS NULL

не пустые:

SELECT * FROM manufacturer WHERE location IS NOT NULL

32. Вывести только те автобусы, названия которых начинаются на букву M.

SELECT * FROM buses WHERE brand LIKE “М%”

33. Мы не помним как точно пишется “Mercedes“ или “Mersedes“, но нужно из таблицы выбрать автобусы именно этой марки. Как быть?

Воспользоваться знаком подчеркивания, который означает “любой символ”:

SELECT * FROM buses WHERE brand LIKE “Mer_edes”

34. Выбрать только те автобусы, цена которых лежит в пределах от 100000 до 180000 долларов включительно.

SELECT * FROM price BETWEEN 100000 AND 180000

35. Подсчитать количество автобусов в таблице, у которых 45 мест.

SELECT COUNT(brand) FROM buses WHERE seats=45

36. Приведи пример вложенного запроса.

SELECT * FROM buses WHERE price=(SELECT MAX(price) FROM buses)

37. Можно ли выбрать данные из нескольких таблиц?

Да, например вот так:

SELECT o.order_no, o.amount_paid, с.company

FROM orders AS o

LEFT JOIN customer AS с ON (с.custno=o.custno)

  1. задача: основная таблица + справочник. Вывести объединение. Написать SQL запрос. Чем отличаются INNER и OUTER JOIN-ы.
  2. Задача: вывести список дубликатов значений поля и их количество. Написать SQL запрос.
  3. В чем заключается оптимизация БД, и в частности MySQL.
  4. Проектирование БД. Нормальные формы.

Вопрос 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)?

MYSQL вопросы и ответы на собеседование

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

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

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

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

  • NOT NULL
  • CHECK
  • DEFAULT
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY

Вопрос 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. Перечислите типы соединений

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

MYSQL вопросы и ответы на собеседование

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), произошедшие в рамках транзакции изменения сохранятся независимо от того, что может встать у них на пути (например, потеря питания, сбой или ошибки любого рода).

Вопрос 24. Что вы подразумеваете под «триггером» в SQL?

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

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

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

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

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

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

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

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

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

Подзапрос — это запрос внутри другого запроса, в котором определен запрос для извлечения данных или информации из базы данных. В подзапросе внешний запрос называется основным запросом, тогда как внутренний запрос называется подзапросом. Подзапросы всегда выполняются первыми, а результат подзапроса передается в основной запрос. Он может быть вложен в SELECT, UPDATE или любой другой запрос. Подзапрос также может использовать любые операторы сравнения, такие как >, < или =.

Вопрос 29. Какие бывают типы подзапросов?

Существует два типа подзапросов, а именно: коррелированные и некоррелированные.

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

Вопрос 30. Перечислите способы получить количество записей в таблице?

Для подсчета количества записей в таблице вы можете использовать следующие команды:
SELECT * FROM table1
SELECT COUNT(*) FROM table1
SELECT rows FROM sysindexes WHERE id = OBJECT_ID(table1) AND indid < 2

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

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2015-02-24
обновлено: 2021-01-24
133464



Рейтиг 10 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

MySql (Maria DB)

Термины: MySql (Maria DB)