SQL - Выражения

Здравствуйте, будущие маги SQL! Сегодня мы отправимся в увлекательное путешествие в мир SQL-выражений. Не волнуйтесь, если вы новички в программировании - я буду вашим доброжелательным проводником, и мы будем двигаться шаг за шагом. К концу этого урока вы будете создавать SQL-выражения, как профи!

SQL - Expressions

Что такое SQL-выражение?

Давайте начнем с азов. SQL-выражение похоже на формулу или расчет, который вы можете использовать в своих SQL-запросах. Это комбинация одного или нескольких значений, операторов и SQL-функций, которая evalюируется в значение. Представьте это как секретный соус, который добавляет flavor вашим запросам к базе данных!

например, давайте представим, что у вас есть таблица продуктов, и вы хотите применить скидку 10% ко всем ценам. Вы могли бы использовать выражение, такое как:

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

В этом запросе, price * 0.9是我们的 SQL-выражение. Оно принимает цену и умножает ее на 0.9 (что то же самое, что вычесть 10%).

SQL Логические выражения

Теперь перейдем к логическим выражениям. Это как да/нет вопросы в мире SQL. Они всегда заканчиваются TRUE, FALSE или NULL (что означает "неизвестно").

Логические выражения超级 полезны, когда вы хотите отфильтровать свои данные или принимать решения в своих запросах. Вот некоторые из часто используемых операторов в логических выражениях:

Оператор Описание
= Равно
<> Не равно
> Больше чем
< Меньше чем
>= Больше или равно
<= Меньше или равно
AND Логическое И
OR Логическое ИЛИ
NOT Логическое НЕ

Давайте посмотрим, как это работает на примерах:

-- Найти все продукты, costing более $100
SELECT * FROM products WHERE price > 100;

-- Найти все заказы за последние 30 дней
SELECT * FROM orders WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';

-- Найти всех активных клиентов в Нью-Йорке или Калифорнии
SELECT * FROM customers
WHERE (state = 'NY' OR state = 'CA') AND is_active = TRUE;

В каждом из этих примеров, часть после WHERE является логическим выражением. Это как будто вы задаете базе данных да/нет вопрос для каждой строки данных.

SQL Числовые выражения

Следующий пункт, числовые выражения. Это как математические задачи в SQL - они включают числа и арифметические операции.

Вот основные арифметические операторы, которые вы можете использовать:

Оператор Описание
+ Сложение
- Вычитание
* Умножение
/ Деление
% Модуль (остаток)

Давайте рассмотрим несколько примеров:

-- Рассчитать общую стоимость запасов
SELECT product_name, quantity, price, quantity * price AS total_value
FROM inventory;

-- Рассчитать возраст сотрудников
SELECT first_name, last_name, EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM birth_date) AS age
FROM employees;

-- Рассчитать процент потраченного бюджета
SELECT project_name, budget, spent, (spent / budget) * 100 AS percent_spent
FROM projects;

В этих примерах мы используем числовые выражения для выполнения расчетов на наших данных. Это incredibly полезно для получения новых инсайтов из существующих данных.

SQL Выражения с датами

Last but not least, давайте поговорим о выражениях с датами. Работа с датами в SQL может быть сложной, но она также incredibly мощная. Выражения с датами позволяют вам манипулировать и сравнивать даты в ваших запросах.

Вот некоторые из часто используемых функций с датами:

Функция Описание
CURRENT_DATE Возвращает текущую дату
CURRENT_TIMESTAMP Возвращает текущую дату и время
DATE_ADD Добавляет указанный временной интервал к дате
DATE_SUB Вычитает указанный временной интервал из даты
DATEDIFF Рассчитывает разницу между двумя датами

Давайте посмотрим, как это работает на примерах:

-- Найти заказы, размещенные сегодня
SELECT * FROM orders WHERE order_date = CURRENT_DATE;

-- Найти клиентов, которые не размещали заказы в последние 90 дней
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days'
);

-- Рассчитать, сколько дней назад был размещен каждый заказ
SELECT order_id, order_date,
DATEDIFF(CURRENT_DATE, order_date) AS days_ago
FROM orders;

Эти выражения с датами позволяют вам выполнять сложные операции с датами, что необходимо для анализа данных, основанных на времени.

И вот мы и arrived! Мы прошли через мир SQL-выражений, от логики до вычислений с числами и manipulations с датами. Помните, что практика makes perfect, поэтому не бойтесь экспериментировать с этими выражениями в своих запросах.

Before we wrap up, here's a little SQL joke for you: Why did the database administrator leave his wife? She had one-to-many relationships! (Ba dum tss!)

Счастливо работайте с запросами, и пусть ваши объединения всегда будут быстрыми, а запросы никогда не timeout!

Credits: Image by storyset