Что такое проекция и отбор?

93

В чем разница между проекцией и выбором? Это:

  • Проекция -> для выбора столбцов таблицы; а также
  • Выделение ---> выбрать строки таблицы?

Так являются ли проекция и выделение вертикальным и горизонтальным разрезом соответственно?

Dreftymac
источник

Ответы:

180

В яблочко.

Проекция означает выбор столбцов (или выражений), которые должен вернуть запрос.

Выбор означает, какие строки должны быть возвращены.

если запрос

select a, b, c from foobar where x=3;

тогда «a, b, c» - это часть проекции, «где x = 3» - часть выбора.

Эрих Кицмюллер
источник
3
Действительно, ясное объяснение, но я нахожу этот аспект SQL сбивающим с толку / вводящим в заблуждение: SELECTпредложение фактически выполняет проекцию (а не выбор), и именно WHEREпредложение фактически выполняет выбор .
flow2k
4
@ flow2k Хорошо подмечено, но не вините меня ;-)
Эрих Кицмюллер
2
@ErichKitzmueller Ха, будьте уверены, у меня не было такого намерения; иногда я обнаруживаю, что приход к соглашению / принятие этих тонких моментов определения или синтаксиса заставляет меня лучше их запомнить.
flow2k
13

Просто ПРОЕКЦИЯ занимается удалением или выбором столбцов, а ВЫБОР занимается удалением или выбором строк.

Харимохан Пандей
источник
6

Проекция: все, что когда-либо вводилось в предложении выбора, например, «список столбцов», «*» или «выражения», которое становится под проекцией.

* выбор: * какие условия мы применяем к этим столбцам, т. е. получаем записи, которые попадают под выбор.

Например:

  SELECT empno,ename,dno,job from Emp 
     WHERE job='CLERK'; 

в приведенном выше запросе столбцы «empno, ename, dno, job» попадают под проекцию, «где job = 'clerk'» выбирается

AlluriReddy
источник
5

Проекции и выборки - это две унарные операции в реляционной алгебре, которые имеют практическое применение в РСУБД (системах управления реляционными базами данных).

В практическом смысле да. Проекция означает выбор определенных столбцов (атрибутов) из таблицы, а Выбор означает фильтрацию строк (кортежей). Кроме того, для обычной таблицы «Проецирование и выделение» можно назвать вертикальным и горизонтальным нарезанием или фильтрацией.

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

Арнаб
источник