Команды
BEGIN, COMMIT и ROLLBACK используются для управления транзакциями в SQL, обеспечивая целостность и согласованность данных.1. BEGIN: Инициирует новую транзакцию. Все последующие операции будут частью этой транзакции до тех пор, пока не будет выполнена команда
COMMIT или ROLLBACK.
BEGIN;
2. COMMIT: Фиксирует все изменения, сделанные в рамках текущей транзакции, и делает их постоянными в базе данных. После выполнения
COMMIT транзакция завершается.
COMMIT;
3. ROLLBACK: Отменяет все изменения, сделанные в рамках текущей транзакции, возвращая базу данных в состояние, предшествующее началу транзакции. Используется для отмены транзакции в случае ошибки или необходимости.
ROLLBACK;
Пример использования:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT;
Если возникает ошибка, можно использовать
ROLLBACK вместо COMMIT, чтобы отменить изменения.Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Оператор
DISTINCT используется в SQL для удаления дубликатов из результатов запроса, возвращая только уникальные строки. Это полезно, когда необходимо получить список уникальных значений из одного или нескольких столбцов.Пример использования
DISTINCT для одного столбца:
SELECT DISTINCT department
FROM employees;
Этот запрос возвращает уникальные названия отделов из таблицы
employees.Пример использования
DISTINCT для нескольких столбцов:
SELECT DISTINCT department, job_noscript
FROM employees;
В этом случае запрос возвращает уникальные комбинации отделов и должностей.
Важно помнить, что
DISTINCT применяется ко всем указанным столбцам в запросе, и результат будет уникальным только для комбинаций значений этих столбцов. Использование DISTINCT может замедлить выполнение запроса, особенно на больших объемах данных, поэтому его следует применять с осторожностью.Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍1
Агрегатные функции в SQL используются для выполнения вычислений над набором значений и возвращают одно значение.
1. COUNT: Подсчитывает количество строк в наборе данных. Может использоваться с
DISTINCT для подсчета уникальных значений.
SELECT COUNT(*) FROM employees;
2. SUM: Вычисляет сумму значений в столбце. Обычно используется с числовыми данными.
SELECT SUM(salary) FROM employees;
3. AVG: Вычисляет среднее значение в столбце. Применяется к числовым данным.
SELECT AVG(salary) FROM employees;
4. MAX: Возвращает максимальное значение в столбце.
SELECT MAX(salary) FROM employees;
5. MIN: Возвращает минимальное значение в столбце.
SELECT MIN(salary) FROM employees;
Эти функции часто используются с
GROUP BY для агрегирования данных по группам. Например, чтобы получить среднюю зарплату по отделам, можно использовать AVG с GROUP BY department.Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Схема базы данных — это структурированное описание базы данных, которое определяет, как данные организованы и как они связаны друг с другом. Она включает в себя таблицы, столбцы, типы данных, ключи и отношения между таблицами. Схема служит основой для проектирования и управления базой данных, обеспечивая целостность и согласованность данных.
В реляционных базах данных схема обычно представлена в виде диаграммы, где каждая таблица изображается как прямоугольник, а связи между таблицами — как линии. Первичные ключи (Primary Keys) и внешние ключи (Foreign Keys) играют ключевую роль в установлении этих связей.
Схема базы данных может быть логической и физической. Логическая схема описывает структуру данных на концептуальном уровне, а физическая — на уровне хранения данных в системе управления базами данных (СУБД).
Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1
Основные типы данных в SQL делятся на несколько категорий, каждая из которых предназначена для хранения определенного типа информации.
Числовые типы данных включают
INT для целых чисел, FLOAT и DOUBLE для чисел с плавающей запятой, а также DECIMAL для точных числовых значений.Строковые типы данных включают
CHAR для строк фиксированной длины и VARCHAR для строк переменной длины. Для хранения больших текстов используется TEXT.Дата и время представлены типами
DATE, TIME, DATETIME, TIMESTAMP и YEAR, которые позволяют хранить даты и временные метки.Логические значения хранятся в типе
BOOLEAN, который может принимать значения TRUE или FALSE.Также существуют специальные типы данных, такие как
BLOB для бинарных данных и ENUM для перечислений. Выбор подходящего типа данных важен для оптимизации производительности и хранения данных.Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1💯1
Например, в таблице "Orders" может быть столбец "customer_id", который является внешним ключом, ссылающимся на "id" в таблице "Customers". Это позволяет каждой записи в "Customers" соответствовать нескольким записям в "Orders", обеспечивая связь "один ко многим".
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
SELECT e1.name AS Employee1, e2.name AS Employee2
FROM employees e1
JOIN employees e2 ON e1.department_id = e2.department_id
WHERE e1.id <> e2.id;
Этот запрос выбирает пары сотрудников из одной таблицы, работающих в одном отделе, исключая совпадения с самим собой.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
SELECT. Он позволяет извлечь данные из одной или нескольких таблиц базы данных. Чтобы выбрать все строки и все столбцы из таблицы, применяется следующая команда:SELECT * FROM table_name;
table_name — это имя таблицы, из которой необходимо извлечь данные. Символ * обозначает выбор всех столбцов. Эта команда возвращает все строки таблицы в том порядке, в котором они хранятся.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1✍1
student_courses с внешними ключами student_id и course_id, которые ссылаются на таблицы students и courses.CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY,
noscript VARCHAR(100)
);
CREATE TABLE student_courses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
Эта структура позволяет одному студенту записываться на несколько курсов и одному курсу иметь нескольких студентов.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯1
Подзапросы можно использовать в JOIN двумя основными способами:
1⃣ В условии соединения (ON):
2⃣ В качестве присоединяемой таблицы:
Второй способ особенно полезен, когда нужно соединить основную таблицу с агрегированными данными или предварительно отфильтрованным набором записей.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ SQL собеседования
SELECT e.name, d.dept_name
FROM employees e
JOIN departments d ON e.dept_id = (
SELECT dept_id
FROM dept_locations
WHERE location = 'New York'
)
SELECT e.name, s.avg_salary
FROM employees e
JOIN (
SELECT dept_id, AVG(salary) as avg_salary
FROM employees
GROUP BY dept_id
) s ON e.dept_id = s.dept_id
Второй способ особенно полезен, когда нужно соединить основную таблицу с агрегированными данными или предварительно отфильтрованным набором записей.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2👨💻1
SELECT department, product, SUM(sales) AS total_sales
FROM sales_data
GROUP BY ROLLUP(department, product);
Этот запрос вернет общие продажи по каждому продукту в каждом отделе, а также общие продажи по отделам и общую сумму продаж.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👀2✍1
SELECT
product_name,
CASE
WHEN price < 100 THEN 'Дешево'
WHEN price BETWEEN 100 AND 500 THEN 'Средне'
ELSE 'Дорого'
END AS price_category
FROM products;
Этот запрос классифицирует товары по ценовым категориям.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
SELECT
department,
product,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY CUBE(department, product);
Этот запрос вычисляет общие продажи для каждой комбинации отдела и продукта, включая общие суммы по каждому из них и общую сумму по всем данным.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔4✍1👀1
Индексы значительно улучшают производительность запросов в базах данных, ускоряя операции поиска. Они работают как указатели, позволяя быстро находить нужные строки без необходимости сканировать всю таблицу.
⏩ Например, в таблице с миллионами записей поиск по неиндексированному столбцу может занять много времени, так как требуется последовательный просмотр каждой записи. Однако, если на столбец установлен индекс, поиск будет происходить значительно быстрее, так как индекс позволяет напрямую перейти к нужным данным.
⏩ Индексы особенно полезны для операций
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ SQL собеседования
SELECT, JOIN и WHERE, но могут замедлять INSERT, UPDATE и DELETE, так как требуют обновления индексов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Нормализация — это процесс организации данных в базе данных для минимизации избыточности и обеспечения целостности данных.
✅ Основные преимущества нормализации включают в себя:
1️⃣ Уменьшение избыточности данных, что снижает объем хранимой информации и упрощает управление данными.
2️⃣ Обеспечение целостности данных, так как изменения в одном месте автоматически отражаются в других связанных местах.
3️⃣ Улучшение производительности запросов за счет уменьшения количества дублирующихся данных.
❌ Однако нормализация имеет и недостатки:
1️⃣ Усложнение структуры базы данных, что может затруднить понимание и поддержку.
2️⃣ Увеличение количества таблиц и, как следствие, сложности запросов, что может замедлить выполнение сложных операций.
3️⃣ Потребность в дополнительных соединениях (JOIN) при выполнении запросов, что может негативно сказаться на производительности в некоторых случаях.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ SQL собеседования
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
SELECT t1.col1, t2.col2
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.key = t2.key OR t1.key IS NULL;
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💯2
DATEADD(day, 5, '2025-01-01') добавляет 5 дней.DATEDIFF(day, '2024-10-01', '2024-10-10') возвращает 9.FORMAT('2025-01-24', 'dd/MM/yyyy') возвращает '24/01/2025'.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡1
SQL cобеседования pinned «ℹ️ Подписывайся на наши новые каналы! 🖥 JS собеседования 🖥 Backend собеседования»