SQLite - Выражения

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

SQLite - Expressions

Что такое выражения в SQLite?

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

В SQLite выражения могут быть настолько простыми, как одно значение, или настолько сложными, как комбинация множества операций. Они используются в различных частях SQL-запросов, таких как SELECT, WHERE и clauses ORDER BY.

Теперь давайте рассмотрим три основные типа выражений в SQLite:

  1. Логические выражения
  2. Числовые выражения
  3. Выражения с датами

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

Логические выражения resemble вопросы с да/нет в викторине. Они оцениваются как ИСТИНА или ЛОЖЬ. Эти выражения super полезны, когда вы хотите фильтровать данные или принимать решения в своих запросах.

Основные операторы сравнения

Давайте начнем с некоторых основных операторов сравнения:

Оператор Описание
= Равно
<> Не равно
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно

Вот простой пример:

SELECT name, age
FROM students
WHERE age > 18;

В этом запросе age > 18是我们的 логическое выражение. Оно проверяет, больше ли возраст 18, и возвращает ИСТИНА для всех студентов, которые старше 18 лет.

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

Теперь добавим немного остроты с логическими операторами:

Оператор Описание
AND Логическое И
OR Логическое ИЛИ
NOT Логическое НЕ

Вот пример combinating нескольких условий:

SELECT name, age, grade
FROM students
WHERE age > 18 AND grade = 'A';

Этот запрос находит всех студентов, которые старше 18 лет И имеют оценку 'A'. Это как сказать: "Покажи мне взрослых студентов с оценкой 'A'!"

Оператор BETWEEN

Оператор BETWEEN - это сокращение для проверки, находится ли значение в диапазоне:

SELECT name, score
FROM exam_results
WHERE score BETWEEN 80 AND 90;

Этот запрос находит всех студентов, которые получили оценки между 80 и 90 на экзамене. Это эквивалентно записи score >= 80 AND score <= 90.

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

Числовые выражения в SQLite позволяют выполнять математические операции в ваших запросах. Это как если бы у вас был встроенный в базу данных калькулятор!

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

Вот основные арифметические операторы:

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

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

SELECT name,
price,
quantity,
price * quantity AS total_cost
FROM orders;

В этом запросе мы calculate total_cost, умножая цену и количество. Ключевое слово AS позволяет нам дать имя вычисленной колонке.

Агрегатные функции

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

Функция Описание
AVG() Calculate the average
SUM() Calculate the sum
COUNT() Count the number of rows
MAX() Find the maximum value
MIN() Find the minimum value

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

SELECT
AVG(price) AS average_price,
SUM(quantity) AS total_items,
COUNT(*) AS order_count,
MAX(price) AS highest_price,
MIN(price) AS lowest_price
FROM orders;

Этот запрос gives us a summary of our orders table, including the average price, total items sold, number of orders, and the highest and lowest prices.

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

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

Функции даты и времени

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

Функция Описание
date() Возвращает текущую дату
time() Возвращает текущее время
datetime() Возвращает текущую дату и время
julianday() Возвращает Julian day для даты
strftime() Форматирует дату согласно строке формата

Давайте посмотрим, как мы можем использовать эти функции:

SELECT
date('now') AS current_date,
time('now') AS current_time,
datetime('now') AS current_datetime,
julianday('now') AS julian_day,
strftime('%Y-%m-%d %H:%M', 'now') AS formatted_datetime;

Этот запрос показывает нам различные способы работы с текущей датой и временем.

Вычисления с датами

Мы также можем выполнять вычисления с датами:

SELECT
name,
hire_date,
date(hire_date, '+1 year') AS first_anniversary,
julianday('now') - julianday(hire_date) AS days_employed
FROM employees;

В этом запросе мы calculate each employee's first work anniversary и сколько дней они проработали.

И вот оно, друзья! Мы прошли через страну выражений SQLite, от логической логики до вычислений с числами и работы с временем (ну, sort of). Помните, что практика makes perfect, так что не бойтесь экспериментировать с этими выражениями в своих запросах.

Before we wrap up, here's a little story from my teaching experience: I once had a student who was struggling with boolean expressions. He kept mixing up AND and OR. So, I told him to think of AND as a strict parent (both conditions must be true) and OR as a lenient one (either condition can be true). He never forgot after that!

I hope this tutorial has been helpful and maybe even a bit fun. Keep exploring, keep querying, and most importantly, keep learning. Until next time, happy coding!

Credits: Image by storyset