Вопросы с собеседования по анализу данных SQL в 2023 году.
Вы готовитесь к собеседованию по SQL для анализ данных? Тогда вы пришли в нужное место!
Это руководство поможет вам усовершенствовать свои навыки работы с SQL, вернуть уверенность в себе и быть готовым к работе!
Здесь вы найдёте подборку реальных вопросов для собеседований, задаваемых в таких компаниях, как Google, Oracle, Amazon, Microsoft и т.д. К каждому вопросу прилагается идеально написанный ответ, что экономит ваше время на подготовку к собеседованию.
Здесь также рассматриваются практические задачи, которые помогут вам понять основные концепции SQL.
@sqlhub – анализ данных с sql.
Мы разделили эту статью на следующие разделы:
- Вопросы для собеседования по SQL
- Вопросы для собеседования по PostgreSQL
Вопросы для собеседования по SQL
1. Что такое база данных?
База данных – это совокупность данных, хранящихся и извлекаемых в цифровом виде из удалённой или локальной компьютерной системы.
2. Что такое СУБД?
СУБД расшифровывается как Система Управления Базами Данных. СУБД – это системное программное обеспечение, ответственное за создание, поиск, обновление базы данных и управление ею. Она гарантирует, что наши данные организованы и легкодоступны, выступая в качестве интерфейса между базой данных и её конечными пользователями.
3. Что такое Реляционная СУБД? В чём заключается её отличие от СУБД?
РСУБД расшифровывается как Реляционная Система Управления Базами Данных. Ключевое отличие здесь, по сравнению с СУБД, заключается в том, что РСУБД хранит данные в виде набора таблиц, и между общими полями этих таблиц могут существовать отношения. Большинство современных систем управления базами данных, таких как MySQL, Microsoft SQL Server, Oracle, IBM DB2 и Amazon Redshift, основаны на РСУБД.
4. Что такое SQL?
SQL расшифровывается как язык структурированных запросов. Это стандартный язык для РСУБД. Он особенно полезен при обработке организованных данных, состоящих из сущностей (переменных) и отношений между различными сущностями данных.
5. В чём разница между SQL и MySQL?
SQL – это стандартный язык для извлечения структурированных баз данных и управления ими. Напротив, MySQL – это система управления реляционными базами данных, подобная SQL Server, Oracle или IBM DB2, которые используется для управления базами данных SQL.
6. Что такое таблицы и поля?
Таблица – это организованный набор данных, хранящихся в виде строк и столбцов. Столбцы могут быть классифицированы как вертикальные поля, а строки – как горизонтальные. Поля – это колонки в таблице, которые предназначены для хранения какой-либо информации.
7. Что такое ограничения в SQL?
Ограничения используются для указания правил, касающихся данных в таблице. Они могут быть применены к одному или нескольким полям в таблице SQL во время создания таблицы или после создания с помощью команды ALTER TABLE
. Ограничениями являются:
- NOT NULL – ограничивает вставку нулевого значения в столбец.
- CHECK – проверяет, что все значения в поле удовлетворяют условие.
- DEFAULT – автоматически присваивает значение по умолчанию, если для поля не было указано значение.
- UNIQUE – гарантирует, что в поле будут вставлены уникальные значения.
- INDEX – индексирует поле, обеспечивая более быстрый поиск записей.
- PRIMARY KEY – уникально идентифицирует каждую запись в таблице.
- FOREIGN KEY – обеспечивает ссылочную целостность для записи в другой таблице.
8. Что такое PRIMARY KEY?
Ограничение PRIMARY KEY уникально идентифицирует каждую строку в таблице. Оно должно содержать UNIQUE значения и иметь неявное ограничение NOT NULL.
Таблица в SQL строго ограничена наличием одного и только одного PRIMARY KEY, который состоит из одного или нескольких полей (столбцов).
CREATE TABLE Students ( /* Create table with a single field as primary key */
ID INT NOT NULL
Name VARCHAR(255)
PRIMARY KEY (ID)
);
CREATE TABLE Students ( /* Create table with multiple fields as primary key */
ID INT NOT NULL
LastName VARCHAR(255)
FirstName VARCHAR(255) NOT NULL,
CONSTRAINT PK_Student
PRIMARY KEY (ID, FirstName)
);
ALTER TABLE Students /* Set a column as primary key */
ADD PRIMARY KEY (ID);
ALTER TABLE Students /* Set multiple columns as primary key */
ADD CONSTRAINT PK_Student /*Naming a Primary Key*/
PRIMARY KEY (ID, FirstName);
9. Что такое UNIQUE?
Ограничение UNIQUE гарантирует, что все значения в столбце будут разными. Это обеспечивает уникальность столбца (ов) и помогает однозначно идентифицировать каждую строку. В отличие от PRIMARY KEY, для каждой таблицы может быть определено несколько уникальных ограничений. Синтаксис кода для UNIQUE очень похож на синтаксис PRIMARY KEY:
CREATE TABLE Students ( /* Create table with a single field as unique */
ID INT NOT NULL UNIQUE
Name VARCHAR(255)
);
CREATE TABLE Students ( /* Create table with multiple fields as unique */
ID INT NOT NULL
LastName VARCHAR(255)
FirstName VARCHAR(255) NOT NULL
CONSTRAINT PK_Student
UNIQUE (ID, FirstName)
);
ALTER TABLE Students /* Set a column as unique */
ADD UNIQUE (ID);
ALTER TABLE Students /* Set multiple columns as unique */
ADD CONSTRAINT PK_Student /* Naming a unique constraint */
UNIQUE (ID, FirstName);
10. What is a Foreign K
10. Что такое FOREIGN KEY?
FOREIGN KEY состоит из одного поля или набора полей в таблице, которые ссылаются на PRIMARY KEY в другой таблице. Данное ограничение обеспечивает ссылочную целостность в отношении между двумя таблицами.
Таблица с FOREIGN KEY помечена как дочерняя таблица, а таблица, содержащая PRIMARY KEY, помечена как родительская таблица.
CREATE TABLE Students ( /* Create table with foreign key - Way 1 */
ID INT NOT NULL
Name VARCHAR(255)
LibraryID INT
PRIMARY KEY (ID)
FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);
CREATE TABLE Students ( /* Create table with foreign key - Way 2 */
ID INT NOT NULL PRIMARY KEY
Name VARCHAR(255)
LibraryID INT FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);
ALTER TABLE Students /* Add a new foreign key */
ADD FOREIGN KEY (LibraryID)
REFERENCES Library (LibraryID);
11. Что такое объединение? Перечислите его различные типы.
SQL Join (объединение) используется для объединения записей (строк) из двух или более таблиц в базе данных SQL на основе связанного столбца между ними.
В SQL существует четыре различных типа соединений:
- (ВНУТРЕННЕЕ) СОЕДИНЕНИЕ: извлекает записи, которые имеют совпадающие значения в обеих таблицах, участвующих в соединении. Это широко используемое соединение для запросов.
SELECT *
FROM Table_A
JOIN Table_B;
SELECT *
FROM Table_A
INNER JOIN Table_B;
- ЛЕВОЕ (ВНЕШНЕЕ) СОЕДИНЕНИЕ: извлекает все записи/строки из левой таблицы и соответствующие записи/строки из правой таблицы.
SELECT *
FROM Table_A A
LEFT JOIN Table_B B
ON A.col = B.col;
- ПРАВОЕ (ВНЕШНЕЕ) СОЕДИНЕНИЕ: извлекает все записи/строки из правой таблицы и соответствующие записи/строки из левой таблицы.
SELECT *
FROM Table_A A
RIGHT JOIN Table_B B
ON A.col = B.col;
- ПОЛНОЕ (ВНЕШНЕЕ) СОЕДИНЕНИЕ: извлекает все записи, в которых есть совпадение либо в левой, либо в правой таблице.
SELECT *
FROM Table_A A
FULL JOIN Table_B B
ON A.col = B.col;
12. Что такое Self-Join?
Self-Join – это «самосоединение», объединение внутри одной таблицы. Оно используется тогда, когда у разных полей одной таблицы могут быть одинаковые значения.
SELECT A.emp_id AS "Emp_ID",A.emp_name AS "Employee",
B.emp_id AS "Sup_ID",B.emp_name AS "Supervisor"
FROM employee A, employee B
WHERE A.emp_sup = B.emp_id;
13. Что такое перекрёстное соединение?
Во время перекрёстного соединения каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц.
SELECT stu.name, sub.subject
FROM students AS stu
CROSS JOIN subjects AS sub;
14. Что такое индекс?
Индексы – это наборы уникальных значений для некоторой таблицы с соответствующими ссылками на данные. Они расположены в самой таблице и являются удобным внутренним механизмом системы SQL-сервера, с помощью которого осуществляется доступ к данным оптимальным способом.
CREATE INDEX index_name /* Create Index */
ON table_name (column_1, column_2);
DROP INDEX index_name; /* Drop Index */
15. Какие существуют виды индексов?
Индексы бывают нескольких типов:
- Уникальный и неуникальный индекс:
Уникальные индексы – это индексы, которые помогают поддерживать целостность данных, гарантируя, что никакие две строки данных в таблице не имеют идентичных значений.
Неуникальные индексы не используются для применения ограничений к таблицам, с которыми они связаны. Вместо этого, неуникальные индексы используются исключительно для повышения производительности запросов за счет поддержания отсортированного порядка значений данных, которые часто используются.
- Кластеризованные и некластеризованные индексы
Кластеризованные индексы – это индексы, порядок строк в базе данных которых соответствует порядку строк в индексе. Вот почему в данной таблице может существовать только один кластеризованный индекс.
Некластеризованные индексы имеют структуру, отдельную от строк данных. В некластеризованном индексе содержатся значения ключа некластеризованного индекса, и каждая запись значения ключа содержит указатель на строку данных, содержащую значение ключа.
16. В чём разница между кластеризованными и некластеризованными индексами?
Основное различие между кластеризованным и некластеризованным индексом состоит в том, что кластеризованный индекс определяет, как данные хранятся в строках таблицы. С другой стороны, некластеризованный индекс хранит данные в одном месте, а индексы хранятся в другом месте.
17. Что такое целостность данных?
Целостность данных-это поддержание и обеспечение точности и согласованности данных на протяжении всего их жизненного цикла. Является критическим аспектом проектирования, внедрения и использования любой системы, которая хранит, обрабатывает или извлекает данные.
18. Что такое запросы в SQL?
SQL-запросы необходимы для работы с информацией из базы данных. Это может быть внесение, извлечение, сортировка, удаление и ряд других операций. При этом не указывается способ осуществления запрашиваемого действия.
SELECT fname, lname /* select query */
FROM myDb.students
WHERE student_id = 1;
UPDATE myDB.students /* action query */
SET fname = 'Captain', lname = 'America'
WHERE student_id = 1;
19. Что такое подзапросы в SQL?
Подзапрос – это запрос внутри другого запроса, также известный как вложенный запрос или внутренний запрос. Он используется для ограничения или улучшения данных, запрашиваемых основным запросом, тем самым ограничивая или улучшая выходные данные основного запроса. Например, здесь мы получаем контактную информацию для студентов, которые записались на предмет математики:
SELECT name, email, mob, address
FROM myDb.contacts
WHERE roll_no IN (
SELECT roll_no
FROM myDb.students
WHERE subject = 'Maths');
Существует два типа подзапросов – коррелированные и некоррелированные.
20. Что такое оператор SELECT?
Оператор SELECT в SQL используется для выбора данных из базы данных. Возвращаемые данные сохраняются в таблице результатов, называемой результирующим набором.
21. Зачем нужны операторы UNION, MINUS и INTERSECT?
Оператор UNION отвечает за объединение строк из обоих подзапросов;
Оператор MINUS отвечает за вычитание результатов одного подзапроса из результатов второго подзапроса;
Оператор INTERSECT отвечает за пересечение строк из обоих подзапросов.
Перед выполнением любого из приведенных выше инструкций в SQL, необходимо выполнить определенные условия:
- Каждый оператор SELECT в предложении должен иметь одинаковое количество столбцов;
- Столбцы также должны иметь аналогичные типы данных;
- Столбцы в каждой инструкции SELECT обязательно должны иметь одинаковый порядок.
SELECT name FROM Students /* Fetch the union of queries */
UNION
SELECT name FROM Contacts;
SELECT name FROM Students /* Fetch the union of queries with duplicates*/
UNION ALL
SELECT name FROM Contacts;
SELECT name FROM Students /* Fetch names from students */
MINUS /* that aren't present in contacts */
SELECT name FROM Contacts;
SELECT name FROM Students /* Fetch names from students */
INTERSECT /* that are present in contacts as well */
SELECT name FROM Contacts;
22. Что такое курсор?
Курсор в SQL – это область в памяти базы данных, которая предназначена для хранения последнего оператора SQL. Если текущий оператор – запрос к базе данных, в памяти сохраняется и строка данных запроса, называемая текущим значением, или текущей строкой курсора.
DECLARE @name VARCHAR(50) /* Declare All Required Variables */
DECLARE db_cursor CURSOR FOR /* Declare Cursor Name*/
SELECT name
FROM myDB.students
WHERE parent_name IN ('Sara', 'Ansh')
OPEN db_cursor /* Open cursor and Fetch data into @name */
FETCH next
FROM db_cursor
INTO @name
CLOSE db_cursor /* Close the cursor and deallocate the resources */
DEALLOCATE db_cursor
23. Что такое сущности и отношения?
Сущность (entity) представляет тип объектов, которые должны храниться в базе данных. Каждая таблица в базе данных должна представлять одну сущность. Как правило, сущности соответствуют объектам из реального мира. У каждой сущности определяют набор атрибутов.
Отношения — это установленные связи между двумя или более таблицами. Отношения основаны на общих полях из более чем одной таблицы, часто связанных с первичными и иностранными ключами.
24. Перечислите различные типы связей в SQL.
- One-to-One – этот тип может быть определён как отношение между двумя таблицами, где каждая запись в одной таблице связана максимум с одной записью в другой таблице.
- One-to-Many & Many-to-One – это наиболее часто используемое отношение, когда запись в таблице связана с несколькими записями в другой таблице.
- Many-to-Many – этот тип используется в случаях, когда для определения отношения требуется несколько экземпляров с обеих сторон.
- Self-Referencing Relationships – этот тип используется, когда таблице необходимо определить связь с самой собой.
25. Что такое Alias в SQL?
Alias (псевдоним) — это имя, назначенное источнику данных в запросе при использовании выражения в качестве источника данных или для упрощения ввода и прочтения инструкции SQL. Такая возможность полезна, если имя источника данных слишком длинное или его трудно вводить. Псевдонимы могут быть использованы для переименования таблиц и колонок.
SELECT A.emp_name AS "Employee" /* Alias using AS keyword */
B.emp_name AS "Supervisor"
FROM employee A, employee B /* Alias without AS keyword */
WHERE A.emp_sup = B.emp_id;
Write an SQL statement to select all from table "Limited" with alias "Ltd".
26. What is a View?
26. Что такое представление?
Представление в SQL – это виртуальная таблица, основанная на наборе результатов инструкции SQL. Представление содержит строки и столбцы, точно так же, как настоящая таблица. Поля в представлении – это поля из одной или нескольких реальных таблиц в базе данных.
27. Что такое нормализация?
Нормализация — это процесс организации данных в базе данных, включающий создание таблиц и установление отношений между ними в соответствии с правилами, которые обеспечивают защиту данных и делают базу данных более гибкой, устраняя избыточность и несогласованные зависимости.
28. Что такое денормализация?
Денормализация – это обратный процесс нормализации, при котором нормализованная схема преобразуется в схему, содержащую избыточную информацию. Производительность повышается за счет использования избыточности и обеспечения согласованности избыточных данных. Причиной выполнения денормализации являются накладные расходы, возникающие в процессоре запросов из-за чрезмерно нормализованной структуры.
29. Что такое подстановочные знаки?
Это специальные символы, которые нужны для замены каких-либо знаков в запросе. Они используются вместе с оператором LIKE
, с помощью которого можно отфильтровать запрашиваемые данные.
30. Зачем нужны операторы TRUNCATE, DELETE и DROP?
TRUNCATE удаляет все строки из таблицы.
Команда DELETE используется для удаления одной или всех строк в таблице.
Команда DROP удаляет таблицу из базы данных. Все строки таблицы, индексы и привилегии удаляются.
31. В чём разница между операторами DROP и TRUNCATE?
Команда DROP удаляет таблицу из базы данных целиком, вместе со структурой. То есть после выполнения такой команды обратиться к удаленной таблице, например с помощью SELECT, будет уже нельзя. В свою очередь команда TRUNCATE удаляет не саму таблицу, а данные, которые эта таблица содержит.
32. В чём разница между операторами DELETE и TRUNCATE?
Операция DELETE блокирует каждую строку, а TRUNCATE — всю таблицу. Операция TRUNCATE не возвращает какого-то осмысленного значения (обычно возвращает 0) в отличие от DELETE, которая возвращает число удаленных строк. Также стоит заметить, что при использовании TRUNCATE, операцию удаления уже нельзя будет отменить.
33. Что такое агрегатные и скалярные функции?
Агрегатная функция выполняет вычисление над набором значений и возвращает одно значение. В табличной модели данных это значит, что функция берет ноль, одну или несколько строк для какой-то колонки и возвращает единственное значение. Для сравнения — скалярные функции принимают на вход одно значение и возвращают одно значение.
Примеры агрегатных функций:
- AVG() – Функция вычисляет среднее значение
- MAX() – Функция вычисляет элемент с максимальным значением
- MIN() – Функция вычисляет элемент с минимальным значением
- SUM() – Функция суммирует значения
Примеры скалярных функций:
- LEN() – Функция вычисляет общую длину поля
- MID() – Функция извлекает подстроки из набора строковых значений в таблице
- RAND() – Функция генерирует случайный набор чисел заданной длины
- NOW() – Функция возвращает текущую дату и время
34. Что такое определяемая пользователем функция?
Определяемая пользователем функция — это подпрограмма, которая принимает параметры, выполняет действие и возвращает результат в виде одного скалярного значения или результирующий набор.
35. Что такое OLTP?
OLTP – это транзакционные системы, то есть системы, ориентированные на быстрое добавление транзакций (операций) и, возможно, их изменения.
36. В чём различия между OLTP и OLAP?
OLTP-это система обработки транзакций, то есть она управляет приложениями, основанными на транзакциях, через Интернет. Например, системы OLTP отвечают за предоставление данных в хранилища данных. С другой стороны, OLAP-это система аналитической обработки. Это означает, что она отвечает на многомерные аналитические запросы, соответствующие финансовой отчетности, прогнозированию и т.д. Например, данные, доступные в хранилище данных, анализируются с помощью OLAP-системы.
37. Что такое сопоставление?
Сопоставление в SQL — это ряд правил, согласно которым сортируются и сравниваются данные. Эти правила определяют порядок сортировки символьных данных, в зависимости от регистра, надстрочных знаков (акцента), символьных типов Kana, ширины символов.
38. Что такое хранимая процедура?
Хранимая процедура – это объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам.
DELIMITER $$
CREATE PROCEDURE FetchAllStudents()
BEGIN
SELECT * FROM myDB.students;
END $$
DELIMITER ;
39. Что такое рекурсивная хранимая процедура?
Рекурсивная хранимая процедура – это хранимая процедура, которая вызывает сама себя.
DELIMITER $$ /* Set a new delimiter => $$ */
CREATE PROCEDURE calctotal( /* Create the procedure */
IN number INT, /* Set Input and Ouput variables */
OUT total INT
) BEGIN
DECLARE score INT DEFAULT NULL; /* Set the default value => "score" */
SELECT awards FROM achievements /* Update "score" via SELECT query */
WHERE id = number INTO score;
IF score IS NULL THEN SET total = 0; /* Termination condition */
ELSE
CALL calctotal(number+1); /* Recursive call */
SET total = total + score; /* Action after recursion */
END IF;
END $$ /* End of procedure */
DELIMITER ; /* Reset the delimiter */
40. How to create empty tables with th
40. Как создать пустые таблицы с той же структурой, что и у другой таблицы?
Создание пустых таблиц с одинаковой структурой может быть выполнено путём извлечения записей из одной таблицы в новую таблицу с помощью оператора INTO, установив при этом значение WHERE для всех записей равным false. Следовательно, SQL подготавливает новую таблицу с повторяющейся структурой для приема извлечённых записей, но поскольку никакие записи не извлекаются из-за действия предложения WHERE, в новую таблицу ничего не вставляется.
SELECT * INTO Students_copy
FROM Students WHERE 1 = 2;
41. Что такое сопоставление шаблонов в SQL?
Сопоставление шаблонов SQL позволяет искать шаблоны в данных, если вы не знаете точное слово или фразу, которую ищете. Этот тип SQL – запроса использует подстановочные знаки для соответствия шаблону, а не точное его указание. Например, вы можете использовать подстановочный знак “C%” для соответствия любой строке, начинающейся с заглавной С .
SELECT *
FROM students
WHERE first_name LIKE 'K%'
Вопросы для собеседования по PostgreSQL
42. Что такое PostgreSQL?
PostgreSQL — это реляционная база данных с открытым кодом, которая поддерживается в течение 30 лет разработки и является одной из наиболее известных среди всех существующих реляционных баз данных.
43. Как определять индексы в PostgreSQL?
Индексы – это встроенные функции в PostgreSQL, которые используются запросами для более эффективного выполнения поиска по таблице в базе данных. Предположим, что у вас есть таблица с тысячами записей, и у вас есть приведённый ниже запрос, согласно которому только несколько записей могут удовлетворять условию, тогда потребуется много времени для поиска и возврата тех строк, которые соответствуют этому условию. Это, несомненно, неэффективно для системы, имеющей дело с огромными данными. Теперь, если бы у этой системы был индекс столбца, в котором мы применяем поиск, она могла бы использовать эффективный метод для определения совпадающих строк, пройдя всего несколько уровней. Это называется индексацией.
Select * from some_table where table_col=120
44. Как изменить тип данных столбца?
Это можно сделать с помощью инструкции ALTER TABLE, как показано ниже:
ALTER TABLE tname
ALTER COLUMN col_name [SET DATA] TYPE new_data_type;
45. Какая команда используется для создания базы данных в PostgreSQL?
Первым шагом использования PostgreSQL является создание базы данных. Это делается с помощью команды createdb, как показано ниже: createdb db_name
CREATE DATABASE
46. Как запустить, перезапустить или остановить сервер PostgreSQL?
Чтобы запустить сервер PostgreSQL, мы используем:
service postgresql start
Чтобы перезапустить сервер PostgreSQL, мы используем:
service postgresql restart
Чтобы остановить сервер PostgreSQL, мы используем:
service postgresql stop
47. Что такое секционирование таблицы в PostgreSQL?
Секционированием данных называется разбиение одной большой логической таблицы на несколько меньших физических секций.
48. Что такое токен в PostgreSQL?
Токеном в PostgreSQL может являться ключевое слово, идентификатор, литерал, константа, идентификатор в кавычках, либо любой символ, обладающий отличительной индивидуальностью. Они могут быть разделены пробелом, новой строкой или табуляцией. Если токены являются ключевыми словами, то обычно это команды с полезными значениями. Токены известны как строительные блоки любого кода PostgreSQL
49. В чём важность оператора TRUNCATE?
Оператор TRUNCATE TABLE name_of_table
эффективно и быстро удаляет данные из таблицы.
Оператор TRUNCATE также может быть использован для сброса значений столбцов идентификаторов вместе с очисткой данных, как показано ниже:
TRUNCATE TABLE name_of_table
RESTART IDENTITY;
50. Какова максимальная ёмкость таблицы в PostgreSQL?
Максимальный размер таблицы PostgreSQL может составлять 32 ТБ.
51. Что такое последовательность?
Последовательность представляет собой объект, используемый для автоматического формирования чисел для различных целей, например для ключей.
52. Что такое строковые константы в PostgreSQL?
Строковые константы представляют собой последовательности символов, заключенные в одинарные кавычки. Они используются при вставке данных или обновлении символов в базе данных.
Существуют специальные строковые константы, которые указаны в долларах. Синтаксис: $tag$<string_constant>$tag$
Тег в константе необязателен, и когда мы не указываем тег, константа называется строковым литералом с двойным долларом.
53. Как можно получить список всех баз данных в PostgreSQL?
Это можно сделать с помощью команды \l
( обратная слеш, за которым следует строчная буква L).
54. Как удалить базу данных в PostgreSQL?
Это можно сделать с помощью команды DROP DATABASE, как показано ниже:
DROP DATABASE database_name;
Если база данных была удалена успешно, то будет показано следующее сообщение:
DROP DATABASE
55. Что такое ACID?
Это свойства транзакции базы данных, которые используются для обеспечения достоверности данных в случае ошибок и сбоев.
56. Можете ли вы объяснить архитектуру PostgreSQL?
Архитектура PostgreSQL соответствует модели клиент-сервер.
Серверная часть состоит из диспетчера фоновых процессов, обработчика запросов, утилит и общего пространства памяти, которые работают вместе для создания экземпляра PostgreSQL, имеющего доступ к данным. Клиентское приложение выполняет задачу подключения к этому экземпляру и запрашивает обработку данных у служб. Клиентом может быть либо GUI (графический пользовательский интерфейс), либо веб-приложение. Наиболее часто используемым клиентом для PostgreSQL является pgAdmin.
57. Что вы понимаете под управлением параллелизмом нескольких версий?
Под управлением параллелизмом подразумевают различные техники, которые используются для сохранения целостности базы данных, когда несколько пользователей обновляют строки одновременно. Неверный параллелизм может привести к проблемам, таким как чтение фантомных данных, чтение недействительных данных и неповторяемые чтения.
58. Зачем нужна команда enable-debug?
Команда enable-debug используется для включения компиляции всех библиотек и приложений. Когда она включено, системные процессы затрудняются и, как правило, увеличивают размер двоичного файла. Следовательно, не рекомендуется использовать её в производственной среде. Чаще всего она используется разработчиками для отладки ошибок в своих скриптах и помогает им выявлять проблемы.
59. Какие существуют операторы в PostgreSQL?
Операторы PostgreSQL включают в себя арифметические операторы, операторы сравнения, логические операторы и побитовые операторы.
60. Что вы можете сказать о WAL (ведение журнала с опережением записи)?
Ведение журнала с опережением записи (WAL)-это стандартный метод обеспечения целостности данных. Подробное описание можно найти в большинстве (если не во всех) книг об обработке транзакций. Вкратце, центральная концепция WAL заключается в том, что изменения в файлах данных (где находятся таблицы и индексы) должны быть записаны только после того, как эти изменения были зарегистрированы, то есть после того, как записи журнала, описывающие изменения, были сброшены в постоянное хранилище.
61. В чем заключается основной недостаток удаления данных из существующей таблицы с помощью команды DROP TABLE?
Хотя команда DROP TABLE позволяет полностью удалить данные из существующей таблицы, у не` есть недостаток — она удаляет полную структуру таблицы из базы данных. Из-за этого нам нужно заново создать таблицу для хранения данных.
62. Как выполнить сопоставление без учёта регистра с использованием регулярных выражений в PostgreSQL?
Чтобы выполнить сопоставления без учета регистра с использованием регулярного выражения, мы можем использовать выражение POSIX (~*) из операторов сопоставления с образцом. Например:
'interviewbit' ~* '.*INTervIewBit.*'
63. Как сделать резервную копию базы данных в PostgreSQL?
Мы можем достичь этого, используя инструмент pg_dump для сброса всего содержимого объекта в базе данных в один файл. Вот несколько шагов:
Шаг 1: Перейдите в папку bin по пути установки PostgreSQL.
C:\>cd C:\Program Files\PostgreSQL\10.0\bin
Шаг 2: Запустите программу pg_dump, чтобы перенести дамп данных в папку .tar, как показано ниже:
pg_dump -U postgres -W -F t sample_data > C:\Users\admin\pgbackup\sample_data.tar
Дамп базы данных будет сохранен в файле sample_data.tar в указанном расположении.
64. Поддерживает ли PostgreSQL полнотекстовый поиск?
Полнотекстовый поиск – это метод поиска одного документа или коллекции документов, хранящихся на компьютере, в полнотекстовой базе данных. В основном он поддерживается в продвинутых системах баз данных, таких как SOLR или ElasticSearch. Тем не менее, эта функция присутствует, но довольно проста в PostgreSQL.
65. Что такое параллельные запросы в PostgreSQL?
Параллельные запросы в PostgreSQL имеют возможность использовать более одного ядра процессора для каждого запроса.В параллельных запросах оптимизатор разбивает задачи запроса на более мелкие части и распределяет каждую задачу по нескольким ядрам процессора.
66. В чём разница между commit и checkpoint?
Действие commit обеспечивает сохранение согласованности данных транзакции и завершает текущую транзакцию в разделе. Commit добавляет в журнал новую запись, описывающую фиксацию в памяти. Checkpoint используется для записи всех изменений, которые были зафиксированы на диске, вплоть до SCN, которые будут храниться в заголовках файлов данных и файлах управления.
Заключение
SQL – это язык для работы с базой данных. Он обладает обширными и надёжными возможностями для создания различных объектов базы данных и управления ими с помощью таких команд, как CREATE, ALTER, DROP и т.д., А также загрузки объектов базы данных с помощью таких команд, как INSERT. Он также предоставляет опции для манипулирования данными с помощью таких команд, как DELETE, TRUNCATE, а ещё обеспечивает эффективное извлечение данных с помощью команд курсора, таких как FETCH, SELECT и т.д. Существует множество команд, которые предоставляют программисту большой объем контроля для эффективного взаимодействия с базой данных, не тратя впустую много ресурсов. Популярность SQL выросла настолько, что почти каждый программист полагается на него для реализации функций хранения данных в своих приложениях, что делает SQL полезным языком для изучения. Изучение этого даёт разработчику преимущество в понимании структур данных, используемых для хранения данных организации, и обеспечивает дополнительный уровень контроля и углубленного понимания приложения.
PostgreSQL, в свою очередь, являющаяся системой баз данных с открытым исходным кодом, обладающая чрезвычайно надежной и сложной поддержкой ACID, индексацией и транзакцией, завоевала широкую популярность среди сообщества разработчиков.