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

Что такое выражения в SQLite?
Прежде чем мы углубимся в детали, давайте поймем, что такое выражения в SQLite. Представьте выражения как строительные блоки ваших запросов к базе данных. Это как ингредиенты в рецепте - вы комбинируете их по-разному, чтобы получить мощные и значимые результаты.
В SQLite выражения могут быть настолько простыми, как одно значение, или настолько сложными, как комбинация множества операций. Они используются в различных частях SQL-запросов, таких как SELECT, WHERE и clauses ORDER BY.
Теперь давайте рассмотрим три основные типа выражений в SQLite:
- Логические выражения
- Числовые выражения
- Выражения с датами
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
