SQLite - Операторы

Здравствуйте, будущие маги баз данных! Сегодня мы погружаемся в магический мир операторов SQLite. Как ваш доброжелательный соседский компьютерный учитель, я здесь, чтобы направить вас в этом путешествии, даже если вы никогда не писали ни строчки кода. Так что возьмите свои виртуальные палочки (клавиатуры) и начнем колдовать с SQLite!

SQLite - Operators

Что такое оператор в SQLite?

Прежде чем мы полезем в深海, давайте начнем с азов. В SQLite (и в программировании в целом) оператор - это как особый символ или keyword, который говорит компьютеру выполнять конкретные операции или сравнения. Представьте операторы как глаголы в языке баз данных - они заставляют что-то происходить!

Например, когда вы видите знак "+" в SQLite, это не просто милоеlittle cross. Он говорит базе данных: "Эй, сложи эти вещи вместе!" Точно так же, когда вы видите "=", это не просто две линии, висящие вместе - это вопрос: "Эти две вещи равны?"

Теперь, когда мы это улажены, давайте исследуем разные типы операторов в SQLite. Поверьте мне, это интереснее, чем кажется!

Арифметические операторы в SQLite

Арифметические операторы в SQLite такие же, как и базовые математические операции, которые выучили в школе, но теперь они творят магию с вашими данными. Давайте посмотрим на них в действии:

Оператор Описание Пример
+ Сложение SELECT 5 + 3; -- Возвращает 8
- Вычитание SELECT 10 - 4; -- Возвращает 6
* Умножение SELECT 6 * 2; -- Возвращает 12
/ Деление SELECT 15 / 3; -- Возвращает 5
% Остаток от деления SELECT 17 % 5; -- Возвращает 2

Давайте разберем их с реальными примерами:

-- Давайте представим, что у нас есть таблица 'products' с колонками 'price' и 'quantity'
SELECT name, price * quantity AS total_value
FROM products;

В этом примере мы используем оператор умножения (*) для расчета общей стоимости каждого товара. SQLite умножит цену на количество для каждой строки, давая нам общую стоимость.

-- Расчет средней цены
SELECT AVG(price) AS average_price
FROM products;

-- Теперь давайте округлим до 2 знаков после запятой
SELECT ROUND(AVG(price), 2) AS rounded_average_price
FROM products;

Здесь мы используем оператор деления в фоновом режиме (функция AVG делит сумму на количество), а затем округляем результат. Это как если бы SQLite делал вашу домашнюю работу по математике!

Сравнительные операторы в SQLite

Сравнительные операторы - это как осуждающие друзья в мире SQLite - они всегда что-то сравнивают. Вот таблица этих капризных операторов:

Оператор Описание Пример
= Равно SELECT * FROM products WHERE price = 10;
!= или <> Не равно SELECT * FROM products WHERE category != 'Electronics';
< Меньше SELECT * FROM products WHERE price < 50;
> Больше SELECT * FROM employees WHERE salary > 50000;
<= Меньше или равно SELECT * FROM inventory WHERE quantity <= 5;
>= Больше или равно SELECT * FROM orders WHERE order_date >= '2023-01-01';

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

-- Найдите все товары, которые закончились
SELECT name, quantity
FROM products
WHERE quantity = 0;

-- Найдите всех сотрудников, которые не работают в IT-отделе
SELECT name, department
FROM employees
WHERE department <> 'IT';

-- Найдите все заказы, сделанные за последнюю неделю
SELECT order_id, order_date
FROM orders
WHERE order_date >= DATE('now', '-7 days');

В этих примерах мы используем сравнительные операторы для фильтрации данных. Это как если бы вы сказали SQLite: "Я хочу видеть только эту конкретную информацию, спасибо!"

Логические операторы в SQLite

Логические операторы - это decision-makers в SQLite. Они помогают нам combine условия и делать более сложные запросы. Вот наши логические друзья:

Оператор Описание Пример
AND Истинно, если все условия истинны SELECT * FROM products WHERE price > 100 AND category = 'Electronics';
OR Истинно, если любое условие истинно SELECT * FROM customers WHERE country = 'USA' OR country = 'Canada';
NOT Отрицание условия SELECT * FROM employees WHERE NOT department = 'Sales';

Давайте применим их:

-- Найдите все дорогие电子产品
SELECT name, price, category
FROM products
WHERE price > 500 AND category = 'Electronics';

-- Найдите всех клиентов из Северной Америки
SELECT name, country
FROM customers
WHERE country = 'USA' OR country = 'Canada' OR country = 'Mexico';

-- Найдите всех сотрудников, которые не работают в отделах Sales или Marketing
SELECT name, department
FROM employees
WHERE NOT (department = 'Sales' OR department = 'Marketing');

В этих примерах мы комбинируем условия, чтобы получить exactly данные, которые хотим. Это как быть детективом, собирающим улики для решения тайны!

Битовые операторы в SQLite

Теперь мы въезжаем в мир бинарной магии с битовыми операторами. Эти операторы работают с двоичными представлениями чисел. Они не используются так часто в повседневных запросах SQLite, но они мощные инструменты для определенных операций.

Оператор Описание Пример
& Битовое И SELECT 5 & 3; -- Возвращает 1
| Битовое ИЛИ SELECT 5 | 3; -- Возвращает 7
~ Битовое НЕ SELECT ~5; -- Возвращает -6
<< Сдвиг влево SELECT 5 << 1; -- Возвращает 10
>> Сдвиг вправо SELECT 5 >> 1; -- Возвращает 2

Давайте разберем пример比特овой операции:

-- Использование битового И для проверки чётности или нечётности числа
SELECT
number,
CASE
WHEN number & 1 = 1 THEN 'Нечет'
ELSE 'Чет'
END AS parity
FROM (
SELECT 1 AS number
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
);

В этом примере мы используем битовый оператор И для проверки, чётное или нечётное число. Если число И 1 равно 1, это нечётное число; в противном случае, это чётное число. Это как если бы SQLite считал на своих пальцах!

И вот мы и добрались до этого,folks! Мы совершили путешествие по земле операторов SQLite, от знакомой территории арифметики до экзотического мира битовых операций. Помните, что практика makes perfect, так что не бойтесь экспериментировать с этими операторами в своих запросах. Before you know it, вы будете использовать эти силы SQLite, как настоящий маг баз данных!

Credits: Image by storyset