Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
UNION и UNION ALL — это операторы SQL, используемые для объединения результатов двух или более запросов.SELECT name FROM employees
UNION
SELECT name FROM managers;
SELECT name FROM employees
UNION ALL
SELECT name FROM managers;
UNION удаляет дубликаты, а UNION ALL — нет.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
GRANT назначает права доступа к базе данных, а FLUSH PRIVILEGES обновляет изменения.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
TIMESTAMP WITH TIME ZONE. Этот тип данных сохраняет временные метки вместе с информацией о временной зоне.Пример использования в PostgreSQL:
-- Создание таблицы с временной меткой и временной зоной
CREATE TABLE events (
event_id SERIAL PRIMARY KEY,
event_time TIMESTAMP WITH TIME ZONE
);
-- Вставка данных с указанием временной зоны
INSERT INTO events (event_time) VALUES ('2025-01-01 10:00:00+02');
-- Преобразование временной метки в другую временную зону
SELECT event_time AT TIME ZONE 'UTC' FROM events;
Этот подход позволяет корректно обрабатывать временные данные в разных временных зонах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
DELETE. Она позволяет удалить одну или несколько строк, соответствующих заданным условиям. Для удаления всех строк из таблицы используется команда без условия
WHERE:
DELETE FROM table_name;
Для удаления конкретных строк необходимо указать условие
WHERE:
DELETE FROM table_name WHERE condition;
Важно помнить, что
DELETE удаляет данные, но не структуру таблицы. Для полного удаления данных и структуры используется команда DROP.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
UPDATE. Он позволяет изменить существующие записи на основе заданных условий.
UPDATE employees
SET salary = salary * 1.1
WHERE department = 'Sales';
Этот запрос увеличивает зарплату на 10% для всех сотрудников в отделе продаж.
Важно использовать
WHERE для ограничения обновляемых строк, иначе изменения будут применены ко всем записям таблицы. Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4
-- Создание представления для упрощения сложного запроса
CREATE VIEW ActiveUsers AS
SELECT id, username, email
FROM users
WHERE status = 'active';
-- Использование представления в запросе
SELECT * FROM ActiveUsers;
Представления помогают сократить дублирование кода и централизовать логику выборки данных.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
При работе с JOIN важно учитывать возможные дубликаты, которые могут возникнуть в результате объединения таблиц. Вот несколько способов обработки таких случаев.
🔴 Первый подход — использование DISTINCT для устранения дубликатов в результатах. Например:
Этот запрос вернет уникальные комбинации значений из обеих таблиц.
🔴 Второй способ — использовать GROUP BY, если требуется агрегировать данные:
Это позволит получить количество связанных записей без дубликатов.
🔴 Также можно воспользоваться подзапросами для более сложных случаев, где нужны конкретные значения без дублирования:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ SQL собеседования
SELECT DISTINCT a.column1, b.column2
FROM table_a a
JOIN table_b b ON a.id = b.a_id;
Этот запрос вернет уникальные комбинации значений из обеих таблиц.
SELECT a.column1, COUNT(b.column2) AS count
FROM table_a a
JOIN table_b b ON a.id = b.a_id
GROUP BY a.column1;
Это позволит получить количество связанных записей без дубликатов.
SELECT a.column1, b.column2
FROM table_a a
JOIN (SELECT DISTINCT a_id, column2 FROM table_b) b ON a.id = b.a_id;
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
- BETWEEN: Проверяет, находится ли значение в диапазоне, включая границы. Используется для числовых, временных или строковых данных.
SELECT * FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Этот запрос вернет все заказы, сделанные в 2023 году.
- IN: Проверяет, совпадает ли значение с одним из элементов списка. Подходит для сравнения с конкретными значениями.
SELECT * FROM products WHERE category_id IN (1, 2, 3);
Этот запрос вернет продукты, относящиеся к категориям 1, 2 или 3.
Разница:
BETWEEN работает с диапазонами, а IN — с конкретными значениями.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
1. Сложность отладки:
Триггеры выполняются автоматически, что усложняет поиск ошибок. Если логика скрыта в триггерах, это может затруднить понимание работы системы.
2. Производительность:
Триггеры добавляют накладные расходы на каждую операцию. Например, триггер на
INSERT будет выполняться при каждой вставке, что может замедлить работу. 3. Альтернативы:
Логику часто можно реализовать на уровне приложения или через хранимые процедуры, что делает код более прозрачным и управляемым.
4. Каскадные эффекты:
Триггеры могут вызывать другие триггеры, создавая цепочки, которые сложно отследить. Это увеличивает риск непредсказуемого поведения.
Триггеры стоит использовать осторожно, когда их преимущества перевешивают потенциальные сложности. В остальных случаях лучше рассмотреть альтернативные подходы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
BEGIN TRANSACTION и завершаются COMMIT или ROLLBACK.
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
Если все операции прошли успешно, изменения фиксируются с помощью
COMMIT. В случае ошибки выполняется ROLLBACK, который отменяет все изменения, сделанные в рамках транзакции. Это гарантирует целостность данных.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1