27 распространённых вопросов по SQL с собеседований и ответы на них
Вопросы по SQL на собеседованиях — обычное дело, и чтобы не завалиться, нужно хорошо понимать, как работать с базами данных. В этом списке представлены основные вопросы и задачи по SQL, которые часто встречаются на собеседованиях, а также ответы на них.
Теория
Что такое СУБД?
Допустим, есть большая база данных, которой пользуются многие сотрудники: кто-то ищет информацию, а кто-то изменяет или даже удаляет её. Чтобы правильно обрабатывать все эти запросы, нужно специальное программное обеспечение, и именно такое ПО получило название системы управления базами данных (СУБД).
Какие типы СУБД в соответствии с моделями данных вы знаете?
Этот вопрос по SQL предполагает не просто назвать, но и дать краткое описание каждому типу.
Что такое первичный ключ?
Первичный ключ или PRIMARY KEY предназначен для однозначной идентификации каждой записи в таблице и является строго уникальным ( UNIQUE ): две записи таблицы не могут иметь одинаковые значения первичного ключа. Нулевые значения ( NULL ) в PRIMARY KEY не допускаются. Если в качестве PRIMARY KEY используется несколько полей, их называют составным ключом.
Здесь в качестве первичного ключа используется поле id.
Когда используется PRIMARY KEY?
PRIMARY KEY — это первичный ключ, который используется в качестве основного ключа и может быть использован для связи с дочерней таблицей, содержащей внешний ключ.
А что такое внешний ключ?
Внешний ключ или FOREIGN KEY также является атрибутом ограничения и обеспечивает связь двух таблиц. По сути, это поле или несколько полей, которые ссылаются на PRIMARY KEY в родительской таблице.
Какие ещё ограничения вы знаете, как они работают и указываются?
SQL-ограничения (constraints) указываются при создании или изменении таблицы. Это правила для ограничения типа данных, которые могут храниться в таблице. Действие с данными не будет выполнено, если нарушаются установленные ограничения.
Для чего используется ключевое слово ORDER BY?
Для сортировки данных в порядке возрастания ( ASC ) или убывания ( DESC ).
Выбираются пользователи, которые будут отсортированы по имени в порядке убывания. Дополните ответ на этот вопрос по SQL тем, что без указания DESC данные были бы отсортированы по умолчанию — в порядке возрастания:
Назовите четыре основных типа соединения в SQL
А что такое Self JOIN?
Такой вопрос тоже может прозвучать на собеседовании по SQL. Это выражение используется для того, чтобы таблица объединилась сама с собой, словно это две разные таблицы. Чтобы такое реализовать, одна из таких «таблиц» временно переименовывается.
Например, следующий SQL-запрос объединяет клиентов из одного города:
Для чего нужен оператор UNION?
Он используется для объединения полученных данных из двух или более запросов, которые должны иметь одинаковое количество столбцов с одинаковыми типами данных и расположенных в том же порядке.
Как работают подстановочные знаки?
Какими бывают подстановочные знаки?
Данный запрос позволяет найти данные всех пользователей, имена которых содержат в себе «test».
А в этом случае имена искомых пользователей начинаются на «t», после содержат какой-либо символ и «est» в конце.
Что делают псевдонимы Aliases?
SQL-псевдонимы нужны для того, чтобы дать временное имя таблице или столбцу. Это нужно, когда в запросе есть таблицы или столбцы с неоднозначными именами. В этом случае для удобства в составлении запроса используются псевдонимы. SQL-псевдоним существует только на время запроса.
Для чего нужен оператор INSERT INTO SELECT?
Данный оператор копирует данные из одной таблицы и вставляет их в другую, при этом типы данных в обеих таблицах должны соответствовать.
Что такое нормализация и денормализация?
Соответственно, денормализация является обратным процессом, который вносит в нормализованную таблицу избыточные данные.
Подробнее о пяти нормальных формах и форме Бойса-Кодда можно узнать из данного видеокурса:
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию:
При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно:
Чем VARCHAR отличается от NVARCHAR?
Главное отличие в том, что VARCHAR хранит значения в формате ASCII, где символ занимает один байт, а NVARCHAR хранит значения в формате Unicode, где символ «весит» 2 байта. Тип VARCHAR следует использовать, если вы уверены, что в значениях не будет Unicode-символов. Например, VARCHAR можно применить к адресам электронной почты, состоящих из ASCII-символов.
Практика
Как выбрать записи с нечётными Id?
Один из самых распространённых вопросов на собеседовании. SQL запрос для выбора записей с нечётными id должен выглядеть следующим образом:
Если остаток от деления id на 2 равен нулю, перед нами чётное значение, и наоборот.
Как найти дубли в поле email?
При выборке из таблицы прибавьте к дате 1 день
Функция DATE_ADD() прибавляет к дате заданный промежуток времени. Синтаксис выглядит следующим образом:
Выберите только уникальные имена
SELECT DISTINCT возвращает разные значения, даже если в выбранном столбце есть дубли.
Найдите в таблице среднюю зарплату работников
Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.
Что нужно знать и уметь разработчику T-SQL. Технологии, языки, навыки
Здравствуйте, уважаемые посетители сайта Info-Comp.ru! Сегодня мы с Вами поговорим о том, что нужно знать разработчику T-SQL, иными словами, с какими технологиями, приложениями и языками программирования приходится сталкиваться разработчику T-SQL в реальной жизни на работе.
Немного вводной информации
Сразу хотелось бы отметить, что перечень технологий и языков программирования, которые перечислены в данной статье, не является исчерпывающим, он основан на моем личном опыте, а также на основе анализа большинства соответствующих вакансий на популярных сервисах поиска работы.
Однако в любом случае можно с уверенностью сказать, что если Вы на достаточно хорошем уровне знаете большую часть всех перечисленных ниже технологий (включая сам язык T-SQL), то Вы без каких-либо проблем сможете найти работу разработчиком T-SQL, в противном случае Вам нужно будет подтягивать знания по той или иной технологии, но это уже в зависимости от специфики возлагаемых обязанностей на должность разработчика T-SQL.
Дело в том, что обязанности разработчика T-SQL могут быть на самом деле достаточно широкими, например, в крупных компаниях кроме как с реализацией каких-то сложных алгоритмов в БД разработчик T-SQL с чем-то другим может и не сталкиваться, так как для всех остальных целей есть другие узконаправленные специалисты. А вот в малых и средних организациях за должностью «Разработчик T-SQL» в большинстве случаев скрывается и разработчик интерфейсов, и архитектор, и администратор баз данных, и аналитик, и разработчик хранилищ данных, что в свою очередь требует от человека дополнительных знаний и навыков.
В данной статье как раз и рассмотрено все то, с чем может столкнуться разработчик T-SQL.
При этом обязательно стоит отметить, что знать на хорошем уровне абсолютно все технологии, которые здесь перечислены, на мой взгляд, невозможно, хотя такие люди наверное и существуют.
Поэтому не пугайтесь довольно внушительному и в некоторых случаях разнообразному перечню технологий, как было уже отмечено, разработчик T-SQL в большинстве случаев должен знать (на хорошем уровне) как минимум 5-6 пунктов из перечисленного ниже списка.
Стоит отметить, что большинство перечисленных в этой статье технологий будет связано с компанией Microsoft, так как язык T-SQL используется в Microsoft SQL Server, который в свою очередь разработала компания Microsoft, поэтому достаточно часто Microsoft SQL Server используется совместно с другими технологиями этой компании.
Данную статью Вы можете использовать как некую шпаргалку для подготовки к становлению разработчиком T-SQL и планирования своего пути, а также для подготовки к собеседованиям.
Итак, давайте начнем.
Что нужно знать разработчику T-SQL
Язык T-SQL
Конечно же, язык T-SQL разработчик T-SQL должен знать на очень профессиональном уровне, без этого никуда. И если Вы знаете, как написать запросы на выборку данных, как создать таблицы, это еще не значит, что Вы разработчик T-SQL, Вы должны уметь гораздо больше, и погрузиться в особенности SQL Server и языка T-SQL.
Так, например, разработчик T-SQL должен уметь:
И это только общий функционал без какого-либо углубления.
Теория баз данных
Разработчик T-SQL обязательно должен знать устройство баз данных, понимать реляционную модель, а также знать принципы нормализации баз данных, ведь без этих фундаментальных знаний корректно проектировать базу данных, SQL запросы и хранимые процедуры практически невозможно. Нет, конечно же, возможно, но, как было отмечено, результат будет в большинстве случаев не совсем корректный и приемлемый.
Устройство Microsoft SQL Server, SSMS и навыки администрирования
Язык T-SQL – это процедурное расширение языка SQL, реализованное в Microsoft SQL Server. Поэтому разработчик T-SQL, конечно же, должен знать как общее, так и внутреннее устройство Microsoft SQL Server. Он должен знать, как организованы файлы баз данных, как устроено внутреннее хранение данных в этих файлах, какие процессы запускаются во время выполнения SQL инструкций и в какой последовательности.
Кроме этого, как я уже отмечал ранее, разработчик T-SQL иногда выполняет роль и администратора баз данных, поэтому безусловно он должен уметь самостоятельно устанавливать SQL Server, осуществлять настройку сервера и баз данных, оптимизировать сервер и базы данных в процессе эксплуатации, а также обеспечивать безопасность данных на сервере (создание ролей и пользователей, разграничение прав доступа).
Еще хотелось бы отметить, что основным инструментом разработчика T-SQL в большинстве случаев выступает среда SQL Server Management Studio (SSMS), поэтому разработчик T-SQL обязан владеть этим инструментом на достаточно высоком уровне, знать как базовый функционал, так и более расширенные, тонкие возможности.
SQL Server Analysis Services (SSAS)
В современном мире размер данных, которые необходимо хранить, постоянно растет, поэтому анализировать данные и формировать отчеты на основе OLTP баз данных становится проблематично, за счет того, что подобные отчеты формируются очень долго.
Однако у нас есть OLAP технология (аналитическая обработка онлайн), которая решает проблему медленного выполнения SQL запросов и формирования отчетов. При этом, конечно же, внутреннее устройство OLAP баз данных отличается от OLTP баз данных.
Однако, как Вы помните, разработчик T-SQL достаточно часто выступает и в роли аналитика, и в роли разработчика хранилищ данных для бизнес-анализа.
Поэтому в большинстве вакансий на должность разработчика T-SQL в требованиях будет стоять знания OLAP и в частности SSAS.
SQL Server Analysis Services (SSAS) – это службы для работы с многомерными данными (OLAP) от компании Microsoft. Многомерные данные позволяют проектировать, создавать и управлять сложными структурами, которые содержат детализирующие и статистические данные из нескольких источников данных, например, из реляционной базы данных SQL Server.
SSAS – разработаны для бизнес-анализа и хранения данных в формате, который позволяет быстро получить результат обработки большого объема данных.
Иными словами, OLAP – это хранилище данных, в котором хранится агрегированная информация большого массива данных. Данные из такой базы можно получить в десятки раз быстрей, чем из обычной базы.
В знания SSAS, конечно же, включается еще и язык MDX, который используется в системах OLAP. MDX – это своего рода SQL, но только для многомерных данных.
Таким образом, разработчик T-SQL должен уметь работать с SSAS, проектировать OLAP-кубы данных, писать и оптимизировать MDX-запросы.
SQL Server Reporting Services (SSRS)
В большинстве случаев в обязанности разработчика T-SQL входит и разработка аналитических отчетов в той или иной системе построения отчетов. И очень часто для этих целей компании используют практически встроенный в Microsoft SQL Server компонент SQL Server Reporting Services.
SQL Server Reporting Services (SSRS) – это службы SQL сервера для построения отчетов. С помощью SSRS можно разрабатывать и формировать как простые табличные отчеты, так и интерактивные, графические и другие более сложные отчеты с использованием диаграмм и других отчетных элементов. Отчеты можно формировать на основе различных источников данных, иными словами, источником может выступать не только Microsoft SQL Server.
Таким образом, разработчик T-SQL просто обязан уметь работать со службами SSRS и разрабатывать отчеты.
SQL Server Integration Services (SSIS)
Кроме разработки бизнес логики в базе данных, разработки отчетов и хранилищ данных, в обязанности разработчика T-SQL очень часто входит организация и реализация ETL процессов.
ETL (Extract, Transform, Load) – извлечение, преобразование, загрузка.
Как и в предыдущих случаях, у Microsoft для этих целей есть свой продукт SQL Server Integration Services, который и используется в большинстве случаев, когда в качестве системы хранения данных выступает Microsoft SQL Server.
SQL Server Integration Services (SSIS) – это службы SQL Server, которые предназначены для автоматизации извлечения, трансформации и консолидации данных из одного типа источников данных в другой тип источника данных. Очень часто, если используется линейка продуктов от компании Microsoft, ETL процесс заключается в переносе данных из OLTP базы данных SQL Server (а также других источников данных) в хранилище данных средствами службы SSIS.
И все это иногда выполняет разработчик T-SQL, поэтому он должен уметь работать со службами SSAS, SSRS и SSIS.
Visual Studio и SQL Server Data Tools (SSDT)
Продолжая разговор о SSAS, SSRS и SSIS, обязательно стоит отметить, что основным инструментом, которым пользуется разработчик T-SQL для работы со всем вышеперечисленным, является Visual Studio, в частности компонент SQL Server Data Tools (SSDT) и расширения.
SQL Server Data Tools (SSDT) – это отдельный компонент (рабочая нагрузка) Visual Studio, который предназначен для разработки реляционных баз данных SQL Server.
SSDT создан для проектной разработки баз данных с применением всех возможностей и преимуществ Visual Studio, а также с использованием привычного для разработчиков приложений интерфейса и функционала.
Microsoft Analysis Services Projects – расширение для работы с SSAS, т.е. для создания многомерных баз данных (OLAP), кубов и всего, что с этим связано.
Microsoft Reporting Services Projects – расширение для работы с SSRS, в частности для разработки отчетов.
SQL Server Integration Services Projects – расширение для работы с SSIS, с помощью именно этого инструмента создаются SSIS пакеты и публикуются на сервере.
Отсюда следует, что если Вам предстоит создавать многомерные базы, отчеты или настраивать ETL процессы, то Вы обязательно должны уметь пользоваться Visual Studio и перечисленными выше расширениями.
Кроме непосредственной работы с данными разработчик T-SQL достаточно часто выполняет роль разработчика графического интерфейса информационной системы, которой пользуются конечные пользователи компании.
Дело в том, что если основная бизнес логика информационной системы перенесена в базу данных и реализуется средствами СУБД, то отдельный программист, который программирует на языке общего назначения, в большинстве случаев просто не нужен, так как в интерфейс ИС изменения вносятся редко, ведь основная логика реализована в БД.
При этом на разработчика T-SQL возлагается роль того, кто в тех редких случаях будет вносить изменения в графическую оболочку информационной системы.
Кроме этого, на языке C# разрабатываются CLR сборки, которые можно подключать к SQL Server и тем самым расширять стандартные возможности языка T-SQL, дополняя его всеми преимуществами языка C#.
Delphi
Кроме языка C# для разработки приложений, в которых в качестве системы хранения данных используется Microsoft SQL Server, достаточно часто используется язык Delphi, и во многих вакансиях в требованиях указано знание языка Delphi.
Поэтому разработчику T-SQL будет плюсом, если он умеет работать с языком Delphi.
VBA (Excel, Word, Access)
Кроме разработки отчётов в системе SSRS на разработчика T-SQL иногда возлагают обязанности разработки отчетов в Excel, Word или Access, при этом используя внутренние возможности этих приложений, в частности язык VBA, макросы, формулы и так далее.
Поэтому разработчику T-SQL не помешают знания языка VBA (Visual Basic for Applications) и объектной модели Excel, Word, Access, а также навыки формирования отчетов в этих приложениях.
Power Query, Power Pivot, Power BI
Продолжая разговор об аналитике данных нельзя не упомянуть такие приложения, как Power Query, Power Pivot, Power BI, которые предназначены для бизнес анализа, а как мы помним, разработчик T-SQL может выступать и в качестве аналитика данных, поэтому часто от разработчика T-SQL требуют и знания этих приложений.
Python и R
Новые версии SQL Server поддерживают выполнение кода на внешних языках внутри базы данных, например, на Python или R, которые славятся своими возможностями для анализа данных, поэтому разработчику T-SQL, чтобы проводить аналитику данных внутри базы данных, требуются знания языков Python и R.
Microsoft Azure SQL Databases
В современном мире многие компании располагают свои сервисы и хранят данные в облаке, при этом выбирая в качестве решения продукты компании Microsoft.
Microsoft Azure SQL Databases – это облачный сервис от компании Microsoft, который предоставляет возможность хранения и обработки реляционных данных. Он основан на Microsoft SQL Server.
Поэтому разработчик T-SQL должен знать устройство и возможности этой платформы, и уметь работать с ней. Дело в том, что функционал облачного SQL Server (включая возможности языка T-SQL) отличается от локального, т.е. классического.
Другие СУБД
Достаточно распространённое явление, когда в одной компании используются несколько СУБД, причем от разных производителей, например, все тот же Microsoft SQL Server и PostgreSQL или Oracle.
И нередко на разработчика T-SQL возлагают некоторые обязанности по разработке или поддержанию функционала в другой системе управления базами данных, отличной от Microsoft SQL Server. Или просто необходимо периодически осуществлять перенос или миграцию данных с одной системы на другую.
И все это может лечь на плечи разработчика T-SQL, поэтому он должен знать процедурное расширение языка SQL других СУБД (PL/SQL или PLpg/SQL), хотя бы на поверхностном уровне, и просто уметь работать с этими СУБД.
WEB технологии
Иногда Microsoft SQL Server используется для WEB приложений, а как Вы помните, на разработчика T-SQL могут возлагать обязанности по разработке и поддержанию пользовательского интерфейса.
Поэтому разработчику T-SQL будут очень полезны знания WEB технологии, в частности:
Другие полезные знания и навыки
Кроме всего вышеперечисленного, что требуется на самом деле достаточно часто, существуют и другие, менее распространённые технологии и навыки, которые могут потребоваться разработчику T-SQL, хотя некоторые из них можно было и выделить в отдельный пункт, например, английский язык, так как английский язык требуется практически любому программисту и программист T-SQL не исключение.
Технологии, приложения и языки, знание которых также может потребоваться разработчику T-SQL:
Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней язык SQL рассматривается как стандарт, чтобы после прочтения данной книги можно было работать с языком SQL в любой системе управления базами данных.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I
Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик»
Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопросами по SQL с собеседований я познакомлю вас с наиболее часто задаваемыми вопросами по SQL (Structured Query Language — язык структурированных запросов). Эта статья является идеальным руководством для изучения всех концепций, связанных с SQL, Oracle, MS SQL Server и базой данных MySQL.
Наша статья с вопросами по SQL — универсальный ресурс, с помощью которого вы можете ускорить подготовку к собеседованию. Она состоит из набора из 65 самых распространенных вопросов, которые интервьюер может задать во время собеседования. Оно обычно начинается с базовых вопросов по SQL, а затем переходит к более сложным на основе обсуждения и ваших ответов. Эти вопросы по SQL с собеседований помогут вам извлечь максимальную выгоду на различных уровнях понимания.
Давайте начнем!
Вопросы по SQL с собеседований
Вопрос 1. В чем разница между операторами DELETE и TRUNCATE?
| DELETE | TRUNCATE |
|---|---|
| Используется для удаления строки в таблице | Используется для удаления всех строк из таблицы |
| Вы можете восстановить данные после удаления | Вы не можете восстановить данные (прим. перевод.: операции логируются по разному, но в SQL Server есть возможность сделать откат) транзакции) |
| DML-команда | DDL-команда |
| Медленнее, чем оператор TRUNCATE | Быстрее |
№ Вопрос 2. Из каких подмножеств состоит SQL?
Вопрос 3. Что подразумевается под СУБД? Какие существуют типы СУБД?
База данных — структурированная коллекция данных. Система управления базами данных (СУБД) — программное обеспечение, которое взаимодействует с пользователем, приложениями и самой базой данных для сбора и анализа данных. СУБД позволяет пользователю взаимодействовать с базой данных. Данные, хранящиеся в базе данных, могут быть изменены, извлечены и удалены. Они могут быть любых типов, таких как строки, числа, изображения и т. д.
Существует два типа СУБД:
Вопрос 4. Что подразумевается под таблицей и полем в SQL?
Таблица — организованный набор данных в виде строк и столбцов. Поле — это столбцы в таблице. Например:
Таблица: Student_Information
Поле: Stu_Id, Stu_Name, Stu_Marks
Вопрос 5. Что такое соединения в SQL?
Для соединения строк из двух или более таблиц на основе связанного между ними столбца используется оператор JOIN. Он используется для объединения двух таблиц или получения данных оттуда. В SQL есть 4 типа соединения, а именно:
Вопрос 6. В чем разница между типом данных CHAR и VARCHAR в SQL?
И Char, и Varchar служат символьными типами данных, но varchar используется для строк символов переменной длины, тогда как Char используется для строк фиксированной длины. Например, char(10) может хранить только 10 символов и не сможет хранить строку любой другой длины, тогда как varchar(10) может хранить строку любой длины до 10, т.е. например 6, 8 или 2.
Вопрос 7. Что такое первичный ключ (Primary key)?
_Пример: в таблице Student StuID является первичным ключом.
Вопрос 8. Что такое ограничения (Constraints)?
Ограничения (constraints) используются для указания ограничения на тип данных таблицы. Они могут быть указаны при создании или изменении таблицы. Пример ограничений:
Вопрос 9. В чем разница между SQL и MySQL?
SQL — стандартный язык структурированных запросов (Structured Query Language) на основе английского языка, тогда как MySQL — система управления базами данных. SQL — язык реляционной базы данных, который используется для доступа и управления данными, MySQL — реляционная СУБД (система управления базами данных), также как и SQL Server, Informix и т. д.
Вопрос 10. Что такое уникальный ключ (Unique key)?
Вопрос 11. Что такое внешний ключ (Foreign key)?
Вопрос 12. Что подразумевается под целостностью данных?
Целостность данных определяет точность, а также согласованность данных, хранящихся в базе данных. Она также определяет ограничения целостности для обеспечения соблюдения бизнес-правил для данных, когда они вводятся в приложение или базу данных.
Вопрос 13. В чем разница между кластеризованным и некластеризованным индексами в SQL?
Вопрос 14. Напишите SQL-запрос для отображения текущей даты.
В SQL есть встроенная функция GetDate (), которая помогает возвращать текущий timestamp/дату.
Вопрос 15. Перечислите типы соединений
Существуют различные типы соединений, которые используются для извлечения данных между таблицами. Принципиально они делятся на четыре типа, а именно:
Inner join (Внутреннее соединение): в MySQL является наиболее распространенным типом. Оно используется для возврата всех строк из нескольких таблиц, для которых выполняется условие соединения.
Left Join (Левое соединение): в MySQL используется для возврата всех строк из левой (первой) таблицы и только совпадающих строк из правой (второй) таблицы, для которых выполняется условие соединения.
Right Join (Правое соединение): в MySQL используется для возврата всех строк из правой (второй) таблицы и только совпадающих строк из левой (первой) таблицы, для которых выполняется условие соединения.
Full Join (Полное соединение): возвращает все записи, для которых есть совпадение в любой из таблиц. Следовательно, он возвращает все строки из левой таблицы и все строки из правой таблицы.
Вопрос 16. Что вы подразумеваете под денормализацией?
Денормализация — техника, которая используется для преобразования из высших к низшим нормальным формам. Она помогает разработчикам баз данных повысить производительность всей инфраструктуры, поскольку вносит избыточность в таблицу. Она добавляет избыточные данные в таблицу, учитывая частые запросы к базе данных, которые объединяют данные из разных таблиц в одну таблицу.
Вопрос 17. Что такое сущности и отношения?
Сущности: человек, место или объект в реальном мире, данные о которых могут храниться в базе данных. В таблицах хранятся данные, которые представляют один тип сущности. Например — база данных банка имеет таблицу клиентов для хранения информации о клиентах. Таблица клиентов хранит эту информацию в виде набора атрибутов (столбцы в таблице) для каждого клиента.
Отношения: отношения или связи между сущностями, которые имеют какое-то отношение друг к другу. Например — имя клиента связано с номером учетной записи клиента и контактной информацией, которая может быть в той же таблице. Также могут быть отношения между отдельными таблицами (например, клиент к счетам).
Вопрос 18. Что такое индекс?
Индексы относятся к методу настройки производительности, позволяющему быстрее извлекать записи из таблицы. Индекс создает отдельную структуру для индексируемого поля и, следовательно, позволяет быстрее получать данные.
Вопрос 19. Опишите различные типы индексов.
Есть три типа индексов, а именно:
Вопрос 20. Что такое нормализация и каковы ее преимущества?
Нормализация — процесс организации данных, цель которого избежать дублирования и избыточности. Некоторые из преимуществ:
Вопрос 21. В чем разница между командами DROP и TRUNCATE?
Команда DROP удаляет саму таблицу, и нельзя сделать Rollback команды, тогда как команда TRUNCATE удаляет все строки из таблицы (прим. перевод.: в SQL Server Rollback нормально отработает и откатит DROP).
Вопрос 22. Объясните различные типы нормализации.
Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.
Вопрос 23. Что такое свойство ACID в базе данных?
ACID означает атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation), долговечность (Durability). Он используется для обеспечения надежной обработки транзакций данных в системе базы данных.
Атомарность. Гарантирует, что транзакция будет полностью выполнена или потерпит неудачу, где транзакция представляет одну логическую операцию данных. Это означает, что при сбое одной части любой транзакции происходит сбой всей транзакции и состояние базы данных остается неизменным.
Согласованность. Гарантирует, что данные должны соответствовать всем правилам валидации. Проще говоря, вы можете сказать, что ваша транзакция никогда не оставит вашу базу данных в недопустимом состоянии.
Изолированность. Основной целью изолированности является контроль механизма параллельного изменения данных.
Долговечность. Долговечность подразумевает, что если транзакция была подтверждена (COMMIT), произошедшие в рамках транзакции изменения сохранятся независимо от того, что может встать у них на пути (например, потеря питания, сбой или ошибки любого рода).
Вопрос 24. Что вы подразумеваете под «триггером» в SQL?
Триггер в SQL — особый тип хранимых процедур, которые предназначены для автоматического выполнения в момент или после изменения данных. Это позволяет вам выполнить пакет кода, когда вставка, обновление или любой другой запрос выполняется к определенной таблице.
Вопрос 25. Какие операторы доступны в SQL?
В SQL доступно три типа оператора, а именно:
Вопрос 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 вопросов с ответами опубликуем в следующей части… Следите за новостями!


