Галерея
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 для внешних соединений.

    Источник