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

SQL-выражение – это комбинация одного или более значений, операторов и функций, которая имеет определенный результат. Выражения SQL похожи на формулы, написанные на языке запросов. Также с их помощью можно запрашивать из БД конкретные наборы данных. 

Выражения SQL можно разделить на следующие категории: 

  • Логические 
  • Числовые 
  • Даты

Давайте попробуем разобраться в типах выражений, рассмотрев пару примеров.

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

Логическое выражение SQL извлекает данные на основе условия, которое является частью запроса SQL. При выполнении запроса такое выражение должно выдавать только одно значение. Его синтаксис выглядит так:

SELECT column 
FROM table_name 
WHERE SINGLE_VALUE_MATCHING_EXPRESSION;

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

EmpId EmpName EmpAge EmpSalary
1 John 32 2000
2 Smith 25 2500
3 Henry 29 3000

Отправим такой тестовый запрос: 

SELECT EmpName FROM Employee WHERE EmpId = 1;

Приведенный выше запрос выдаст единственное значение, в данном случае это John. Чтобы всегда получать только один результат, логические выражения SQL следует использовать с первичными ключами. Это необходимо делать в случае применения вложенных запросов select.

select posts.title, posts.author_id from posts, authors 
where posts.author_id = authors.id and 
posts.author_id = (select id from authors where name = 'Pankaj');

Приведенный выше запрос вернет все имена и идентификаторы сообщений, имя автора которых — Pankaj. В подобной ситуации вложенный SQL-запрос всегда должен возвращать только одну строку. Если подзапрос возвращает более 1 строки, вы получите сообщение об ошибке.

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

Числовое выражение SQL используется для выполнения математических операций в запросе SQL. Его синтаксис выглядит так:

SELECT NUMERICAL_EXPRESSION as OPERATION_NAME
FROM table_name

NUMERICAL_EXPRESSION — это математическая формула функции, которая будет использоваться в SQL-запросе. Давайте попробуем разобрать следующий пример: 

SELECT count(*) FROM Employee; -- 3

Приведенный выше запрос вернет 3, потому что функция COUNT(*) предоставит общее количество строк на основе условия в операторе WHERE. Например, выражение 

select count(*) from employee where empsalary > 2400;

вернет 2. Существуют и другие функции — sum(), avg(), min(), max() и т. д. Они используются для математических операций. Давайте рассмотрим еще пару фрагментов кода, которые используют числовые выражения SQL.

SELECT sum(EmpSalary) as "Salary" FROM Employee; -- 7500
select min(EmpSalary) from Employee; -- 2000
select max(EmpSalary) from Employee; -- 3000
select sum(EmpSalary) from Employee; -- 7500
select avg(EmpSalary) from Employee; -- 2500.0000

SQL-выражения даты 

Выражения даты выдают в качестве результата временное значение. Давайте рассмотрим следующий пример: 

SELECT CURRENT_TIMESTAMP; -- 2018-01-20 10:32:37

-- For MYQSL
SELECT now(); -- 2018-01-20 10:32:57

-- For SQL Server
SELECT GetDate();

-- For Oracle DB
select sysdate from Dual; -- 20-JAN-18

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

Подводим итоги 

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

Читайте также

Tags:

Добавить комментарий