¿Qué son proyección y selección?

93

¿Cuál es la diferencia entre proyección y selección? Lo es:

  • Proyección -> para seleccionar las columnas de la tabla; y
  • Selección ---> para seleccionar las filas de la tabla?

Entonces, ¿la proyección y la selección son cortes verticales y horizontales respectivamente?

dreftymac
fuente

Respuestas:

180

Exactamente.

Proyección significa elegir qué columnas (o expresiones) devolverá la consulta.

Selección significa qué filas se devolverán.

si la consulta es

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

entonces "a, b, c" es la parte de proyección, "donde x = 3" es la parte de selección.

Erich Kitzmueller
fuente
3
De hecho, una explicación clara, pero encuentro este aspecto de SQL confuso / engañoso: la SELECTcláusula en realidad realiza una proyección (no una selección), y es la WHEREcláusula la que realmente realiza una selección .
flow2k
4
@ flow2k Bien observado, pero no me culpes a mí ;-)
Erich Kitzmueller
2
@ErichKitzmueller Ha - tenga la seguridad de que no tenía tal intención; a veces encuentro que llegar a un acuerdo / aceptar estos puntos sutiles de una definición, o sintaxis, me hace recordarlo mejor.
flow2k
13

Simply PROJECTION se ocupa de la eliminación o selección de columnas, mientras que SELECTION se ocupa de la eliminación o selección de filas.

Harimohan Pandey
fuente
6

Proyección: lo que se haya escrito en la cláusula select, es decir, 'lista de columnas' o '*' o 'expresiones' que se convierte en proyección.

* selección: * qué tipo de condiciones estamos aplicando en esas columnas, es decir, obteniendo los registros que vienen bajo selección.

Por ejemplo:

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

en la consulta anterior, las columnas "empno, ename, dno, job" aparecen en proyección, "donde job = 'clerk'" se selecciona

AlluriReddy
fuente
5

Las proyecciones y las selecciones son dos operaciones unarias en álgebra relacional y tienen aplicaciones prácticas en RDBMS (sistemas de administración de bases de datos relacionales).

En sentido práctico, sí. Proyección significa seleccionar columnas específicas (atributos) de una tabla y Selección significa filtrar filas (tuplas). Además, para una mesa convencional, la proyección y la selección se pueden denominar corte o filtrado vertical y horizontal.

Wikipedia proporciona definiciones más formales de estos con ejemplos y pueden ser útiles para leer más sobre álgebra relacional:

Arnab
fuente