Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I
Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с 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?
- 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?
- Различия между кластеризованным и некластеризованным индексами в SQL:
Кластерный индекс используется для простого и быстрого извлечения данных из базы данных, тогда как чтение из некластеризованного индекса происходит относительно медленнее. - Кластеризованный индекс изменяет способ хранения записей в базе данных — он сортирует строки по столбцу, который установлен как кластеризованный индекс, тогда как в некластеризованном индексе он не меняет способ хранения, но создает отдельный объект внутри таблицы, который указывает на исходные строки таблицы при поиске.
- Одна таблица может иметь только один кластеризованный индекс, тогда как некластеризованных у нее может быть много.
Вопрос 14. Напишите SQL-запрос для отображения текущей даты.
В SQL есть встроенная функция GetDate (), которая помогает возвращать текущий timestamp/дату.
Вопрос 15. Перечислите типы соединений
Существуют различные типы соединений, которые используются для извлечения данных между таблицами. Принципиально они делятся на четыре типа, а именно:
Inner join (Внутреннее соединение): в MySQL является наиболее распространенным типом. Оно используется для возврата всех строк из нескольких таблиц, для которых выполняется условие соединения.
Left Join (Левое соединение): в MySQL используется для возврата всех строк из левой (первой) таблицы и только совпадающих строк из правой (второй) таблицы, для которых выполняется условие соединения.
Right Join (Правое соединение): в MySQL используется для возврата всех строк из правой (второй) таблицы и только совпадающих строк из левой (первой) таблицы, для которых выполняется условие соединения.
Full Join (Полное соединение): возвращает все записи, для которых есть совпадение в любой из таблиц. Следовательно, он возвращает все строки из левой таблицы и все строки из правой таблицы.
Вопрос 16. Что вы подразумеваете под денормализацией?
Денормализация — техника, которая используется для преобразования из высших к низшим нормальным формам. Она помогает разработчикам баз данных повысить производительность всей инфраструктуры, поскольку вносит избыточность в таблицу. Она добавляет избыточные данные в таблицу, учитывая частые запросы к базе данных, которые объединяют данные из разных таблиц в одну таблицу.
Вопрос 17. Что такое сущности и отношения?
Сущности: человек, место или объект в реальном мире, данные о которых могут храниться в базе данных. В таблицах хранятся данные, которые представляют один тип сущности. Например — база данных банка имеет таблицу клиентов для хранения информации о клиентах. Таблица клиентов хранит эту информацию в виде набора атрибутов (столбцы в таблице) для каждого клиента.
Отношения: отношения или связи между сущностями, которые имеют какое-то отношение друг к другу. Например — имя клиента связано с номером учетной записи клиента и контактной информацией, которая может быть в той же таблице. Также могут быть отношения между отдельными таблицами (например, клиент к счетам).
Вопрос 18. Что такое индекс?
Индексы относятся к методу настройки производительности, позволяющему быстрее извлекать записи из таблицы. Индекс создает отдельную структуру для индексируемого поля и, следовательно, позволяет быстрее получать данные.
Вопрос 19. Опишите различные типы индексов.
Есть три типа индексов, а именно:
- Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
- Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
- Некластеризованный индекс (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 доступно три типа оператора, а именно:
- Арифметические Операторы
- Логические Операторы
- Операторы сравнения
Вопрос 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 AND indid < 2
Ещё 35 вопросов с ответами опубликуем в следующей части… Следите за новостями!
Топ-30 вопросов по SQL на технических собеседованиях
Перевод первой части статьи «Top SQL Interview Questions».
SQL это один из самых широко используемых языков. Его применяют в своих проектах практически все самые известные компании, например, Uber, Netflix, Airbnb. Большинство специализаций в сфере разработки требуют знания языка SQL на том или ином уровне, потому что чаще всего разработчикам приходится подключаться к базам данных. И тут уже не важно, являетесь вы Python-разработчиком, тестировщиком, веб-разработчиком, администратором базы данных или специалистом по данным: изучать SQL все равно придется.
В связи с этим на всех технических собеседованиях 30-40% вопросов связаны с SQL. В этой статье мы разберем первые 15 из 30 вопросов, которые встречаются чаще всего:
- Поясните, в чем разница между выражениями HAVING и WHERE
- Что такое SQL?
- Расскажите о разных видах команд SQL.
- Что такое ограничение по умолчанию?
- Что такое ограничение уникальности?
- Как бы вы нашли вторую по величине зарплату в этой таблице?
- Что такое первичный ключ?
- Что такое внешний ключ?
- Что такое индекс?
- Расскажите о видах индексов.
- Поясните разницу между кластерными и некластерными индексами.
- Расскажите, чем отличаются SQL и PL/SQL.
- Как вы понимаете символьные функции?
- Что такое AUTO_INCREMENT?
- Чем отличаются команды DELETE и TRUNCATE?
1. Поясните, в чем разница между выражениями HAVING и WHERE
WHERE | HAVING | |
---|---|---|
Реализовано в | Строковых операциях | Столбцовых операциях |
Относится к | Отдельной строке | Суммированной строке или группам |
Используется для | Выборки конкретных данных из определенных строк, согласно заданным условиям | Выборки всех данных и отделения тех из них, которые соответствуют заданным условиям |
Агрегатные функции | Не может содержать | Может содержать |
Операторы | Может использоваться с SELECT, UPDATE и DELETE | Не может использоваться без оператора SELECT |
Выражение GROUP BY | Идет после выражения WHERE | Идет перед выражением HAVING |
2. Что такое SQL?
SQL расшифровывается как «Structured Query Language» — «язык структурированных запросов». Этот язык используется для взаимодействия с базами данных. Согласно ANSI (Американский национальный институт стандартов) SQL является стандартным языком запросов для систем управления реляционными базами данных и используется для поддержки этих баз и различных манипуляций с данными. В общем, это язык, используемый для создания и удаления баз данных, выборки и изменения строк таблиц и множества других операций.
3. Расскажите о разных видах команд SQL
Операторы определения данных (англ. Data Definition Language, DDL)
DDL — это часть SQL, которая служит для определения структуры данных в начальном состоянии, когда база данных только создается. Операторы определения данных используются, главным образом, для создания и реструктуризации объектов базы данных. К этим операторам относятся CREATE, ALTER и DROP.
CREATE служит для создания объектов базы данных, ALTER — для их изменения, DROP — для удаления.
Операторы манипуляции данными (англ. Data Manipulation Language, DML)
DML используется для работы с уже существующими данными, содержащимися в базе данных. С помощью этих операторов пользователи могут получать данные из базы и совершать над ними какие-то манипуляции. К этим операторам относятся SELECT, INSERT, UPDATE, DELETE.
Оператор INSERT позволяет вносить данные в базу данных, UPDATE — обновлять их, DELETE — удалять данные из базы.
Операторы определения доступа к данным (англ. Data Control Language, DCL)
DCL используется для контроля доступа к данным в базе данных. Команды DCL обычно служат для создания объектов, имеющих отношение к доступу пользователей к базе, а также к распределению разрешений между пользователями. Для этих операций используются операторы GRANT и REVOKE. Первый служит для «выдачи» разрешений, а второй — для их отзыва.
Операторы управления транзакциями (англ. Transaction Control Language, TCL)
TCL используется для контроля изменений, осуществленных при помощи DML. Также с помощью TCL происходит объединение операторов в логические транзакции. К операторам управления транзакциями относятся COMMIT, ROLLBACK, SAVEPOINT, BEGIN, TRANSACTION.
4. Что такое ограничение по умолчанию?
Ограничения используются для установки определенных правил обработки данных и указания типов данных, которые могут попадать в таблицу. Это что касается ограничений вообще. Теперь давайте рассмотрим ограничения по умолчанию.
Ограничение по умолчанию (DEFAULT) используется для определения дефолтного значения для столбца, которое будет автоматически добавляться во все новые записи, если нужное значение не будет задано явно. Например, если мы установим ограничение по умолчанию для столбца E_salary и укажем, что дефолтное значение — 85000, оно появится во всех ячейках этого столбца, за исключением случаев, когда при добавлении записи явно указывалось другое значение.
Теперь давайте посмотрим, как устанавливается значение по умолчанию. Начнем с создания новой таблицы и добавим ограничения по умолчанию для ее столбцов.
create table stu1(s_id int, s_name varchar(20), s_marks int default 50) select *stu1
Теперь давайте добавим записи.
insert into stu1(s_id,s_name) values(1,’Sam’) insert into stu1(s_id,s_name) values(2,’Bob’) insert into stu1(s_id,s_name) values(3,’Matt’) select *from stu1
5. Что такое ограничение уникальности?
Ограничения уникальности (UNIQUE) используются для обеспечения уникальности всех значений в столбце (т. е., чтобы все значения непременно были разными). Например, если мы установим ограничение уникальности для столбца e_name, каждая запись в этом столбце будет иметь уникальное значение.
Для начала давайте создадим таблицу.
create table stu2(s_id int unique, s_name varchar(20))
А теперь добавим в нее записи.
insert into stu2 values(1,’Julia’) insert into stu2 values(2,’Matt’) insert into stu2 values(3,’Anne’)
6. Как бы вы нашли вторую по величине зарплату в этой таблице?
select * from employee select max(e_salary) from employee where e_salary not in (select max(e_salary) from employee)
7. Что такое первичный ключ?
Первичный ключ используется в качестве уникального идентификатора для всех записей в таблице. Он не моет иметь значение NULL, кроме того, его значение должно быть уникальным. Первичный ключ может состоять из одного или нескольких полей.
Давайте напишем запрос для демонстрации использования первичного ключа в таблице Employee:
// CREATE TABLE Employee ( ID int NOT NULL, Employee_name varchar(255) NOT NULL, Employee_designation varchar(255), Employee_Age int, PRIMARY KEY (ID) );
8. Что такое внешний ключ?
Внешний ключ это атрибут или набор атрибутов, ссылающийся на первичный ключ в какой-нибудь другой таблице. В общем, он используется для связи между двумя таблицами.
Давайте создадим внешний ключ для этой таблицы:
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) )
9. Что такое индекс?
Индексы помогают ускорить поиск в базе данных. Если в выражении WHERE не задан индекс никакого столбца, SQL-сервер в поиске соответствия будет проверять каждую строку во всей таблице. Если у вас много данных, эта операция может оказаться довольно медленной.
Индексы используются для поиска всех строк, совпадающих по каким-то столбцам, а затем уже в этих выборках ведется поиск нужных данных.
CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN)
10. Расскажите о видах индексов
Простые индексы. Создаются только для одного столбца таблицы.
CREATE INDEX index_name ON table_name(column_name);
Составные индексы. Создаются для двух или большего количества столбцов таблицы.
CREATE INDEX index_name ON table_name (column1, column2)
Уникальные индексы. Используются для поддержания целостности данных таблицы. Они не дают вставлять в таблицу несколько значений.
CREATE UNIQUE INDEX index ON table_name(column_name)
11. Поясните разницу между кластерными и некластерными индексами
Кластерный индекс используется для сортировки данных в строках по их ключевым значениям. Кластерный индекс напоминает телефонный справочник. Мы можем открыть справочник на David (например, в поисках «David, Thompson») и найти информацию обо всех Дэвидах, по порядку. Поскольку данные расположены друг за другом, это помогает выбирать их в запросах с указанием диапазона. Также кластерный индекс имеет отношение к тому, как, собственно, хранятся данные. В таблице может быть только один кластерный индекс.
Некластерный индекс хранит данные в одном месте, а индексы — в другом. Этот индекс имеет указатели на расположение данных. Поскольку индекс не хранится там же, где и данные, для каждой таблицы может существовать много некластерных индексов.
Давайте рассмотрим основные различия между кластерными и некластерными индексами.
Параметры | Кластерный индекс | Некластерный индекс |
---|---|---|
Используется для | Сортировки и хранения записей в памяти (физически) | Создания логического порядка для строк данных. Указатели указывают на физические файлы с данными |
Методы хранения | Хранит данные в лиственных узлах индекса | Никогда не хранит данные в лиственных узлах индекса |
Размер | Довольно большой | Сравнительно маленький |
Доступ к данным | Быстрый | Медленный |
Дополнительное дисковое пространство | Не требуется | Требуется для отдельного хранения индексов |
Тип ключа | По умолчанию первичный ключ таблицы является кластерным индексом | Может использоваться с ограничением уникальности в таблице, которая выступает в роли составного ключа |
Отличительная особенность | Улучшает производительность при получении данных | Должен создаваться в столбцах, используемых в JOIN |
12. Расскажите, чем отличаются SQL и PL/SQL
SQL | PL/SQL |
---|---|
SQL это структурированный язык запросов к базам данных. | Это язык программирования для баз данных, использующий SQL. |
SQL это отдельный запрос, который используется для выполнения команд DML и DDL. | PL/SQL это блок кодов, используемый для написания всей процедуры или функции. |
SQL это декларативный язык, ориентированный на данные. | PL/SQL это процедурный язык, ориентированный на приложение. |
Используется главным образом для манипуляций с данными. | Используется для создания приложения. |
Предоставляет возможность взаимодействия с сервером базы данных. | Не предоставляет возможности взаимодействия с сервером базы данных. |
Не может содержать в себе код PL/SQL. | Может содержать SQL, поскольку сам является расширением SQL. |
13. Как вы понимаете символьные функции?
Символьные функции используются для манипуляций с символами. К ним относятся:
UPPER
Возвращает строку в верхнем регистре.
UPPER(‘ string’)
SELECT UPPER(‘demo string’) from String;
DEMO STRING
LOWER
Возвращает строку в нижнем регистре.
LOWER(‘STRING’)
SELECT LOWER (‘DEMO STRING’) from String
demo string
INITCAP
Переводит первую букву строки в верхний регистр, оставляя всю остальную строку в нижнем.
Initcap(‘sTRING’)
SELECT Initcap(‘dATASET’) from String
Dataset
CONCAT
Используется для конкатениции (объединения) двух строк.
CONCAT(‘str1’,’str2’)
SELECT CONCAT(‘Data’,’Science’) from String
Data Science
LENGTH
Используется для получения длины строки.
LENGTH(‘String’)
SELECT LENGTH(‘Hello World’) from String
14. Что такое AUTO_INCREMENT?
AUTO_INCREMENT используется в SQL для автоматической генерации уникального номера при каждом добавлении записи в таблицу.
Поскольку первичный ключ уникален для каждой записи, мы добавляем это поле в качестве AUTO_INCREMENT поля, таким образом при каждой вставке новой записи номер будет увеличиваться автоматически.
По умолчанию значение AUTO-INCREMENT начинается с 1 и увеличивается на 1 при каждом добавлении новой записи.
CREATE TABLE Employee( Employee_id int NOT NULL AUTO-INCREMENT, Employee_name varchar(255) NOT NULL, Employee_designation varchar(255) Age int, PRIMARY KEY (Employee_id) )
15. Чем отличаются команды DELETE и TRUNCATE?
- DELETE используется для удаления одной или большего числа существующих таблиц.
- TRUNCATE удаляет все данные внутри таблицы.
Между DELETE и TRUNCATE существуют следующие различия:
- TRUNCATE — это команда DDL, а DELETE — команда DML.
- При помощи TRUNCATE мы не можем активировать триггер, а с DELETE можем.
- TRUNCATE не будет работать, если таблица содержит внешние ключи. В этом случае придется использовать DELETE.
Синтаксис команды DELETE:
DELETE FROM table_name [WHERE condition];
select * from stu
delete from stu where s_name=’Bob’
Синтаксис команды TRUNCATE:
TRUNCATE TABLE Table_name;
select * from stu1
truncate table stu1
Таким образом будут удалены все записи в таблице.
Что спрашивают на собеседовании sql
МЕРОПРИЯТИЯ
Хакатон GO.ALGO
01 декабря Москва Онлайн Бесплатно
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
11 типов современных баз данных: краткие описания, схемы и примеры БД
Любые данные где-то хранятся. Будь это интернет вещей или пароли в *nix. Показываем схемы основных типов баз данных, чтобы наглядно представить различия между ними.
5 сайтов для оттачивания навыков написания SQL-запросов
Одним из ключевых навыков при работе с базами данных является умение писать sql-запросы. Мы отобрали 5 лучших сайтов для оттачивания этого навыка.
SQL за 20 минут
Предлагаем вашему вниманию статью с кричащим названием «SQL за 20 минут». Конечно, весь SQL за 20 минут вы не освоите, но хороший старт получите.
Популярные вопросы по SQL на собеседованиях
Потренируйтесь в ответах на популярные вопросы по SQL на собеседованиях. В данной статье приведен список типовых вопросов по SQL, с которыми можно столкнуться на настоящем собеседовании, и даны ответы.
Чтобы получить максимум из прочитанного, постарайтесь сначала отвечать на вопросы самостоятельно. Удачи!
1. Что такое SQL?
SQL расшифровывается как Structured Query Language – язык структурированных запросов. Это язык программирования для взаимодействия с данными, которые хранятся в системе управления реляционными базами данных.
Синтаксис SQL схож с английским языком, поэтому его легко читать, писать и интерпретировать. Он позволяет вам писать запросы, определяющие подмножество данных, которые вы ищите. Эти запросы можно сохранять, уточнять, обмениваться ими и запускать в различных базах данных.
2. Что такое база данных?
База данных (БД) – это набор данных, хранимых на компьютере. При этом сами данные структурированы таким образом, что их можно было легко получить.
3. Что такое реляционная база данных?
Реляционная база данных – это разновидность базы данных. В ней используется структура, которая позволяет нам идентифицировать и обращаться к данным в привязке к другим частям данных из БД. Данные в реляционной БД часто организованы в виде таблиц.
4. Что такое РСУБД?
Система управления реляционными базами данных (РСУБД) – это программа, позволяющая вам создавать, обновлять и администрировать реляционную базу данных. Для доступа к базам данных большинство РСУБД использует язык SQL.
Самой популярной РСУБД считается MySQL. К другим системам относятся PostgreSQL, Oracle DB, SQL Server и SQLite.
5. Что такое таблица?
Таблица – это набор данных, распределенных по строкам и столбцам. Иногда их называют «связями». В таблицах могут быть сотни, тысячи и иногда даже миллионы строк данных.
6. Что такое строка и столбец в таблице?
Строка – это одна запись данных в таблице.
Столбец – это набор значений данных определенного типа.
7. Что такое тип данных?
Тип данных – это атрибут, который определяет тип данных в столбце. В каждом столбце БД есть тип данных.
Несколько часто используемых типов данных: INTEGER , TEXT , DATE , REAL .
8. Что такое первичный и внешний ключ?
Первичный ключ (primary key) – это столбец, который однозначно определяет каждую строку в таблице.
Первичные ключи должны соответствовать следующим требованиям: ни одно значение не может быть пустым ( NULL ), каждое значение должно быть уникальным и в таблице не может быть более одного столбца с первичным ключом.
Например, в таблице customers первичным ключом будет customer_id .
Внешний ключ (foreign key) – это первичный ключ для одной таблицы, который присутствует и в другой таблице. Например, есть дополнительная таблица orders . В каждом заказе может храниться информация о клиенте. Поэтому внешним ключом будет столбец customer_id .
9. В чем отличие ALTER от UPDATE?
Оператор ALTER используется для добавления нового столбца в таблицу. Он изменяет структуру таблицы.
Оператор UPDATE используется для редактирования строки в таблице. Он изменяет существующие записи в таблице.
10. Что такое запрос?
Запрос (query) – это оператор SQL для получения информации, хранимой в базе данных.
Запросы позволяют нам «общаться» с базой данных, задавая вопросы и возвращая результирующий набор подходящих данных.
11. Что такое подзапрос?
Подзапрос (subquery) – это внутренний запрос, вложенный во внешний.
Запросы можно вложить через операторы SELECT , INSERT , UPDATE или DELETE .
Если есть подзапрос, то он будет выполняться до запуска внешнего оператора.
12. Что такое ограничения?
Ограничения (constraints) – это набор правил, через которых базе данных сообщается об ограничении типа данных, хранимых в столбцах. Они предписывают базе данных отклонять введенные данные, если они не соответствуют ограничению.
Ограничения добавляют информацию о том, как может использоваться столбец, и вызываются после типа данных для столбца.
Несколько примеров ограничений:
PRIMARY KEY : однозначно определяет каждую строку и требует уникальности каждого значения. UNIQUE : каждое значение в столбце должно отличаться. NOT NULL : в столбцах обязательно должны быть значения. DEFAULT : дополнительный аргумент, который подставляется в качестве предполагаемого значения для каждой новой строки, если в ней не указано значение для этого столбца.
13. Что такое оператор?
Оператор (statement) – это текст, который база данных распознает как допустимую команду.
Операторами можно пользоваться для выполнения таких задач, как изменение структуры таблицы, обновление данных или извлечение данных из БД.
Структура операторов может варьировать, но каждый из них должен заканчиваться точкой с запятой ( ; ). Количество строк в операторе неважно. Оператор можно записать в одну строку или разделить на несколько (для лучшей читабельности).
14. Как вы проверите, есть ли в поле значение или нет?
Если в поле отсутствует значение, оно обозначается как NULL .
Чтобы проверить поля на пустые значения, можно прописать в качестве условия IS NULL: WHERE [столбец] IS NULL .
Чтобы найти поля со значением, добавьте в условие IS NOT NULL: WHERE [столбец] IS NOT NULL .
15. Чем отличаются DISTINCT и UNIQUE?
DISTINCT – это ключевое слово, которым мы пользуемся, если хотим вернуть уникальные значения на выводе. Оно отсеивает все повторяющиеся значения в конкретном столбце.
UNIQUE – это ограничение, которым пользуются, чтобы все значения столбца отличались. Оно похоже на PRIMARY KEY , с той лишь разницей, что в таблице может быть множество разных столбцов с UNIQUE .
16. Для чего используются агрегатные функции?
Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией.
Несколько примеров агрегатных функций: COUNT() , SUM() , MAX() , MIN() , AVG() и ROUND() .
17. Что такое соединение (JOIN)?
JOIN – это способ объединения строк из двух и более таблиц посредством общего столбца.
18. В чем отличие INNER JOIN от LEFT JOIN?
INNER JOIN используется для объединения строк из двух таблиц, которые соответствуют условию ON . В конечный результат не попадают строки, не соответствующие условию ON .
LEFT JOIN сохраняет все строки из первой таблицы, вне зависимости от того, есть ли для них совпадающая по условию ON строка во второй таблице.
19. Для чего нужны оконные функции?
Оконные функции (windows functions) нужны в случаях, когда вы хотите сохранить значения своей исходной таблицы и параллельно отобразить сгруппированную или суммарную информацию. Они похожи на агрегатные функции, но не сокращают количество строк в результате, а объединяют и группируют их в несколько результатов.
20. Что такое индексы и для чего они нужны?
Индексы – это мощный инструмент, который используется в фоновом режиме БД для ускорения запросов и выступает в роли справочной таблицы для данных.
Они нужны для эффективного хранения данных и быстрого их получения, что может быть критически важным для успеха крупных технологических компаний, которые обрабатывают петабайты данных каждый день.