Co to jest projekcja i selekcja?

93

Jaka jest różnica między projekcją a wyborem? Czy to jest:

  • Projekcja -> do wybierania kolumn tabeli; i
  • Wybór ---> aby zaznaczyć wiersze tabeli?

Czy zatem rzutowanie i zaznaczanie są odpowiednio przekrojami pionowymi i poziomymi?

dreftymac
źródło

Odpowiedzi:

180

Dokładnie.

Projekcja oznacza wybór kolumn (lub wyrażeń), które ma zwrócić zapytanie.

Wybór oznacza, które wiersze mają zostać zwrócone.

jeśli zapytanie to

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

wtedy „a, b, c” to część rzutowania, „gdzie x = 3” to część zaznaczenia.

Erich Kitzmueller
źródło
3
Rzeczywiście, jasne wyjaśnienie, ale uważam ten aspekt SQL za mylący / wprowadzający w błąd: SELECTklauzula faktycznie wykonuje projekcję (nie selekcję) i to WHEREklauzula faktycznie dokonuje wyboru .
flow2k
4
@ flow2k Dobrze obserwowane, ale nie obwiniaj mnie ;-)
Erich Kitzmueller
2
@ErichKitzmueller Ha - zapewniam, że nie miałem takiego zamiaru; czasami stwierdzam, że pogodzenie się / zaakceptowanie tych subtelnych punktów definicji lub składni sprawia, że ​​lepiej to pamiętam.
flow2k
13

Simply PROJECTION zajmuje się eliminacją lub selekcją kolumn, podczas gdy SELECTION zajmuje się eliminacją lub selekcją wierszy.

Harimohan Pandey
źródło
6

Projekcja: wszystko, co kiedykolwiek zostało wpisane w klauzuli select, tj. „Lista kolumn”, „*” lub „wyrażenia”, co stanie się pod odwzorowaniem.

* selekcja: * jakiego typu warunki stosujemy w tych kolumnach, tj. pobieranie rekordów, które są objęte selekcją.

Na przykład:

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

w powyższym zapytaniu kolumny „empno, ename, dno, job” są objęte projekcją, „gdzie job = 'clerk'” znajduje się w selekcji

AlluriReddy
źródło
5

Projekcje i selekcje to dwie jednoargumentowe operacje w algebrze relacyjnej i mają praktyczne zastosowania w RDBMS (systemy zarządzania relacyjnymi bazami danych).

W praktyce tak Projekcja oznacza wybieranie określonych kolumn (atrybutów) z tabeli, a Selekcja oznacza filtrowanie wierszy (krotek). Ponadto w przypadku konwencjonalnej tabeli rzutowanie i zaznaczanie można określić jako pionowe i poziome cięcie lub filtrowanie.

Wikipedia podaje bardziej formalne definicje z przykładami i mogą być przydatne do dalszego czytania algebry relacyjnej:

Arnab
źródło