#Вопросы_с_собеседования
Какое основное различие между внешним и внутренним соединением в SQL?
Внешнее соединение возвращает все строки из левой таблицы, даже если в правой таблице нет сопоставленных строк. Внутреннее соединение возвращает только строки, которые имеют сопоставленные строки в обеих таблицах.
Этот вопрос является сложным, потому что он требует понимания основ соединения таблиц в SQL. Внешние и внутренние соединения - это два основных типа соединения таблиц, и важно понимать, как они работают, чтобы правильно писать запросы.
Какое основное различие между внешним и внутренним соединением в SQL?
Этот вопрос является сложным, потому что он требует понимания основ соединения таблиц в SQL. Внешние и внутренние соединения - это два основных типа соединения таблиц, и важно понимать, как они работают, чтобы правильно писать запросы.
👍13❤5
#Вопросы_с_собеседования
Объясните разницу между INNER JOIN и LEFT JOIN в SQL и приведите пример ситуации, в которой каждый из них наиболее подходит
INNER JOIN в SQL возвращает строки, когда есть совпадение в обеих таблицах, в то время как LEFT JOIN возвращает все строки из левой таблицы и совпадающие строки из правой таблицы; строки, для которых нет совпадений в правой таблице, будут иметь NULL в этих столбцах. INNER JOIN подходит, когда необходимо найти точные совпадения между таблицами, тогда как LEFT JOIN используется, когда нужно включить все записи из одной таблицы, даже если соответствующих совпадений в другой таблице нет.
Объясните разницу между INNER JOIN и LEFT JOIN в SQL и приведите пример ситуации, в которой каждый из них наиболее подходит
👍11❤3🔥1
Подзапрос: Здесь используется подзапрос для выбора CustomerID из таблицы Orders, группируя по CustomerID и применяя условие HAVING COUNT(OrderID) > 2. Это выбирает клиентов, сделавших более двух заказов.
Объединение (JOIN): Основной запрос использует JOIN для соединения таблиц Customers и результата подзапроса по CustomerID.
Условие WHERE: Фильтрация происходит по полю City в таблице Customers, чтобы выбрать только тех клиентов, которые находятся в "New York".
Этот запрос тестирует понимание кандидата в области объединения таблиц, работы с агрегатными функциями и подзапросами, а также фильтрации данных в SQL.
❤7👍5
#вопросы_с_собеседований
Имеет ли значение порядок колонок в составном индексе?
Да, порядок колонок в составном индексе имеет значение.
Рассмотрим пример:
У нас есть таблица orders с колонками order_id, customer_id, order_date, product_id и quantity. Нам необходимо создать составной индекс для ускорения поиска заказов по customer_id и order_date.
Мы можем создать два индекса:
1. Индекс по (customer_id, order_date)
2. Индекс по (order_date, customer_id)
В первом случае, запросы с условием WHERE customer_id = ? AND order_date = ? будут выполняться быстрее, так как эти колонки находятся в порядке, указанном в индексе.
Во втором случае, запросы с условием WHERE order_date = ? AND customer_id = ? будут выполняться медленнее, так как порядок колонок не соответствует порядку в индексе.
Таким образом, порядок колонок в составном индексе имеет значение и должен соответствовать порядку, в котором используются колонки в запросах.
Имеет ли значение порядок колонок в составном индексе?
Да, порядок колонок в составном индексе имеет значение.
Рассмотрим пример:
У нас есть таблица orders с колонками order_id, customer_id, order_date, product_id и quantity. Нам необходимо создать составной индекс для ускорения поиска заказов по customer_id и order_date.
Мы можем создать два индекса:
1. Индекс по (customer_id, order_date)
2. Индекс по (order_date, customer_id)
В первом случае, запросы с условием WHERE customer_id = ? AND order_date = ? будут выполняться быстрее, так как эти колонки находятся в порядке, указанном в индексе.
Во втором случае, запросы с условием WHERE order_date = ? AND customer_id = ? будут выполняться медленнее, так как порядок колонок не соответствует порядку в индексе.
Таким образом, порядок колонок в составном индексе имеет значение и должен соответствовать порядку, в котором используются колонки в запросах.
👍11🔥1
#Вопросы_с_собеседования
❓Опишите различные типы индексов
Есть три типа индексов, а именно:
1. Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
2. Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
3. Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.
❓Опишите различные типы индексов
Есть три типа индексов, а именно:
1. Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
2. Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
3. Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.
👍11
#Вопросы_с_собеседования
❓Что такое строковые функции в SQL?
Строковые функции SQL используются в основном для обработки строк. Некоторые из широко используемых строковых функций SQL представлены ниже:
• LEN () — возвращает длину значения в текстовом поле.
• LOWER () — преобразует символьные данные в нижний регистр
• UPPER () — преобразует символьные данные в верхний регистр
• SUBSTRING () — извлекает символы из текстового поля.
• LTRIM () — Это удалить все пробелы в начале строки.
• RTRIM () — удалить все пробелы в конце строки.
• CONCAT () — функция Concatenate объединяет несколько символьных строк вместе.
• REPLACE () — для обновления содержимого строки.
❓Что такое строковые функции в SQL?
Строковые функции SQL используются в основном для обработки строк. Некоторые из широко используемых строковых функций SQL представлены ниже:
• LEN () — возвращает длину значения в текстовом поле.
• LOWER () — преобразует символьные данные в нижний регистр
• UPPER () — преобразует символьные данные в верхний регистр
• SUBSTRING () — извлекает символы из текстового поля.
• LTRIM () — Это удалить все пробелы в начале строки.
• RTRIM () — удалить все пробелы в конце строки.
• CONCAT () — функция Concatenate объединяет несколько символьных строк вместе.
• REPLACE () — для обновления содержимого строки.
👍11
#Вопросы_с_собеседования
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию(1 строка на картинке). При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно(2 строка на картинке).
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию(1 строка на картинке). При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно(2 строка на картинке).
👍8❤🔥1
SQL_Pandas.pdf
515.4 KB
Шпаргалка SQL → Pandas
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
👍9❤🔥3
#Вопросы_с_собеседования
Что такое сущности и отношения?
Объект представляет собой абстракцию набора связанных данных и представлен в виде таблиц . Отношения определяют, как объекты связаны друг с другом.
Например, предположим, что у нас есть две таблицы с именами orders и users. Наши orders и users являются нашими сущностями.
Мы можем представить, что у одного пользователя может быть много заказов. Таким образом, пользователи могут иметь отношения «один ко многим» с заказами. Сущности и отношения часто используются в процессе разработки схемы таблицы. Понимая, как определять объекты и отображать их отношения, вы показываете, что можете продуктивно работать в коллективном сеансе проектирования таблиц базы данных.
Что такое сущности и отношения?
Например, предположим, что у нас есть две таблицы с именами orders и users. Наши orders и users являются нашими сущностями.
Мы можем представить, что у одного пользователя может быть много заказов. Таким образом, пользователи могут иметь отношения «один ко многим» с заказами. Сущности и отношения часто используются в процессе разработки схемы таблицы. Понимая, как определять объекты и отображать их отношения, вы показываете, что можете продуктивно работать в коллективном сеансе проектирования таблиц базы данных.
👍3❤🔥2
Стоимостной подход в SQL
Стоимостной подход - это один из методов оптимизации запросов в SQL. Он основывается на том, что оптимальный план запроса может быть выбран путем оценки стоимости каждого возможного плана и выбора того, который имеет наименьшую стоимость.
Для выполнения данного запроса в SQL сервере может быть несколько возможных планов, например:
1. Сначала выполнить выборку из таблицы customers, затем из orders. Далее объединить результаты с помощью оператора JOIN по customer_id.
2. Сначала выполнить выборку из таблицы orders, затем из customers. Далее объединить результаты с помощью оператора JOIN по customer_id.
3. Использовать индексы на таблицах для выполнения быстрой выборки.
Для выбора наилучшего плана выполнения запроса SQL-сервер оценивает стоимость каждого плана, исходя из статистики таблиц, наличия индексов и других факторов.
Например, если таблица customers содержит много строк и немного соответствующих строк в таблице orders, то выборка из таблицы customers должна быть выполнена первой, чтобы уменьшить количество строк, которые нужно объединять с таблицей orders. Таким образом, стоимостной подход позволяет выбирать наиболее эффективный план выполнения запроса, что ускоряет работу SQL-сервера и сокращает время выполнения запросов.
Стоимостной подход - это один из методов оптимизации запросов в SQL. Он основывается на том, что оптимальный план запроса может быть выбран путем оценки стоимости каждого возможного плана и выбора того, который имеет наименьшую стоимость.
Для выполнения данного запроса в SQL сервере может быть несколько возможных планов, например:
1. Сначала выполнить выборку из таблицы customers, затем из orders. Далее объединить результаты с помощью оператора JOIN по customer_id.
2. Сначала выполнить выборку из таблицы orders, затем из customers. Далее объединить результаты с помощью оператора JOIN по customer_id.
3. Использовать индексы на таблицах для выполнения быстрой выборки.
Для выбора наилучшего плана выполнения запроса SQL-сервер оценивает стоимость каждого плана, исходя из статистики таблиц, наличия индексов и других факторов.
Например, если таблица customers содержит много строк и немного соответствующих строк в таблице orders, то выборка из таблицы customers должна быть выполнена первой, чтобы уменьшить количество строк, которые нужно объединять с таблицей orders. Таким образом, стоимостной подход позволяет выбирать наиболее эффективный план выполнения запроса, что ускоряет работу SQL-сервера и сокращает время выполнения запросов.
❤🔥6👍2
#Вопросы_с_собеседования
❓Для чего используются агрегатные функции?
Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией.
Несколько примеров агрегатных функций:
❓Для чего используются агрегатные функции?
Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией.
Несколько примеров агрегатных функций:
COUNT(), SUM(), MAX(), MIN(), AVG() и ROUND().❤🔥8👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6
JupySQL — позволяет выполнять SQL-запросы в Jupyter/IPython с помощью %sql и %%sql
—
JupySQL — это форк ipython-sql с множеством исправленных ошибок и массой новых возможностей
JupySQL позволяет выполнять SQL-запросы и строить графики для больших наборов данных в Jupyter с помощью команд
JupySQL совместим со всеми основными БД (PostgreSQL, MySQL, SQL Server и др.), хранилищами данных (типа Snowflake, BigQuery, Redshift) и движками (SQLite и DuckDB).
🖥 GitHub
🟡 Доки
—
pip install jupysql duckdb-engineJupySQL — это форк ipython-sql с множеством исправленных ошибок и массой новых возможностей
JupySQL позволяет выполнять SQL-запросы и строить графики для больших наборов данных в Jupyter с помощью команд
%sql, %%sql и %sqlplot. JupySQL совместим со всеми основными БД (PostgreSQL, MySQL, SQL Server и др.), хранилищами данных (типа Snowflake, BigQuery, Redshift) и движками (SQLite и DuckDB).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2🎄1
Чрезвычайно маленькое и "достаточно быстрое" расширение для векторного поиска SQLite, которое работает в любом месте!
Проект преемник sqlite-vss.
- Храните и запрашивайте float, int8 и двоичные векторы в виртуальных таблицах vec 0.
- Написан на чистом C, без зависимостей, работает везде, где работает SQLite (Linux/ macOS /Windows, в браузере с WASM, Raspberry Pis и т.д.)
- Предварительная фильтрация векторов с rowid В подзапросах (...)
▪ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤🔥1
Spice — унифицированный интерфейс запросов SQL и портативная среда выполнения для быстрого извлечения данных из любой БД, хранилища данных или озера данных
Spice — open-source портативная среда выполнения, предлагающая унифицированный интерфейс SQL для получения данных из любой базы данных и не только.
Spice написана на Rust для максимальной производительности.
🖥 GitHub
🟡 Доки
curl https://install.spiceai.org | /bin/bash
spice init spice_qs
cd spice_qs
spice run
Spice — open-source портативная среда выполнения, предлагающая унифицированный интерфейс SQL для получения данных из любой базы данных и не только.
Spice написана на Rust для максимальной производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9🔥5👍3