Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция SELECT oбщие правила

Каждое предложение инструкции SELECT имеет свою область применения. Поэтому можно говорить отдельно о предложении FROM, предложении WHERE, предложении GROUP BY и так далее. Дополнительную информацию и примеры инструкций SELECT вы можете найти в разделах, посвященных каждому из предложений инструкции. Однако не в каждом запросе нужно использовать каждое предложение. Минимально необходимыми в запросе являются список отбираемых элементов и предложение FROM. Поскольку предложение SELECT является очень важным и имеет много опций, мы разделили раздел «Общие правила» на следующие подразделы.

Псевдонимы и соединения с использованием предложения WHERE.

  • Предложение JOIN.
  • Предложение WHERE.
  • Предложение GROUP BY.
  • Предложение HAVING.
  • Предложение ORDER BY.

Псевдонимы и соединения с использованием предложения WHERE

Перед именем столбца может потребоваться указать префикс в виде имени базы данных, схемы и имени таблицы, поскольку столбцы с одним именем могут присутствовать в разных таблицах, на которые ссылается запрос. В следующем примере (для базы данных Oracle) таблица jobs и таблица employee схемы scott содержат столбец job_id. Обратите внимание, что в этих примерах таблицы employee и jobs соединяются при помощи предложения WHERE.

SELECT
scott.employee.emp_id,
scott.employee.fname,
scott.employee,
lname,
jobs,
job_desc
FROM scott.employee, jobs
WHERE scott.employee.job_id=jobs.job_id
ORDER BY scott.employee.fname, scott employee.Inane;

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

SELECT
e.emp_id,
е.fname,
e.lname,
j.job_desc
FROM scott.employee AS e, jobs AS j
WHERE e.job_id=j.job_id
ORDER BY e.fname, e.lname

Эти два запроса также иллюстрируют некоторые важные правила, касающиеся соединений, выполняемых при помощи предложений WHERE.

  • Используйте запятые для разделения элементов в списке_отбираемых_элементов, элементов в предложении FROM и элементов в выражении_для_сортировки.
  • Используйте предложения AS для определения псевдонимов.
  • Определив псевдонимы, используйте их постоянно, по всей инструкции SELECT.
  • Вообще говоря, при описании соединений вам следует отдавать предпочтение предложению JOIN (о котором мы сейчас поговорим), а не предложению WHERE. Это не только сделает ваш код более понятным и позволит легко отличать условия соединения от условий поиска, но также устранит саму возможность создания трудно понимаемых на интуитивном уровне условий при использовании в некоторых реализациях предложения WHERE для внешних соединений.

    Источник