2011-03-25 7 views
22

Me refiero aquí a los operadores de álgebra relacional básica.
Según lo veo, todo lo que se puede hacer con el proyecto se puede hacer con select.¿Cuál es la diferencia entre Seleccionar y Operaciones de proyecto

No sé si hay una diferencia o un cierto matiz que me he perdido.

Qué hacer amigos @ por lo que pensar

+4

La respuesta de Herbalessence es totalmente correcta, pero la idea básica es: con el operador de selección se especifican las filas que desea, con el operador de proyección se especifican las columnas que desea. –

+0

+1 para el comentario de SaT –

+0

Tenga en cuenta que esta pregunta es sobre operadores de álgebra relacional en comparación con la instrucción SELECT de SQL. Lea la respuesta de @ EmergeStronger para una explicación más clara de las diferencias. – shrmn

Respuesta

37

Seleccionar operación: Esta operación se utiliza para seleccionar filas de una tabla (relación) que especifica una lógica determinada, que se llama como un predicate. El predicado es una condición definida por el usuario para seleccionar filas de elección del usuario.

de Proyecto: Si el usuario está interesado en la selección de los valores de algunos atributos, en lugar de la selección todos los atributos de la tabla (Relación), entonces uno debe ir para PROJECT operación.

Ver más: Relational Algebra and its operations

28

PROYECTO elimina columnas mientras SELECT elimina filas.

12

En álgebra relacional 'Selección' y 'Proyección' son operaciones diferentes, pero el SQL SELECT combina estas operaciones en una sola instrucción.

Seleccionar recupera las tuplas (filas) en una relación (tabla) para la cual la condición en la sección 'predicado' (cláusula WHERE) es verdadera.

Project recupera los atributos (columnas) especificados.

La siguiente consulta SQL SELECT:

select field1,field2 from table1 where field1 = 'Value'; 

es una combinación de las dos operaciones de proyección y de selección del álgebra relacional.

1

opertion de selección se utiliza para seleccionar un subconjunto de tupla de la relación que satisface la condición de selección Filtra las tuplas que satisfacen la condición. Operación de selección se puede visualizar como partición horizontal en dos conjuntos de tuplas: esas tuplas cumplen la condición se seleccionan y esas tuplas no seleccionan la condición se descartan sigma (R) operación de proyección se usa para seleccionar un atributo de la relación que satisface la condición de selección. Filtra solo aquellas tuplas que satisfacen la condición. La operación de proyección se puede visualizar como una partición vertical en dos partes -son aquéllas satisfechas la condición que se han seleccionado. Π (R) lista de atributos es un número del atributo

6

El proyecto no es una afirmación. Es la capacidad de la declaración de selección. La instrucción Select tiene tres capacidades. Son selección, proyección, unión. Selección: recupera las filas que satisface la consulta determinada. Proyección: elige las columnas que satisface la consulta determinada. Join-it se une a las dos o más tablas

+1

Mejore su ortografía, de lo contrario, cambia por completo el significado de la oración –

1

Project afectará a las columnas en la tabla, mientras que Select afecta a las filas.Por otro lado, Project se usa para seleccionar las columnas con propiedades specefic en lugar de Seleccionar todos los datos de columnas

0

Seleccionar filas de extracción de la relación con alguna condición y Extraer un número particular de atributo/columna de la relación con o sin algunas condición.

0

La diferencia entre el operador de proyecto (π) en álgebra relacional y la palabra clave SELECT en SQL es que si la tabla/conjunto resultante tiene más de una ocurrencia de la misma tupla, π devolverá solo una de ellas, mientras SQL SELECT devolverá todo.

0

seleccionar simplemente cambia la cardinalidad de la tabla de resultados pero el proyecto cambia tanto el grado de relación como la cardinalidad.

0

La diferencia está en el álgebra relacional donde el proyecto afecta a las columnas y selecciona las filas afectadas. Sin embargo, en la sintaxis de consulta, seleccione es la palabra. No hay tal consulta como proyecto. Suponiendo que hay una tabla llamada usuarios con cientos de miles de registros (filas) y la tabla tiene 6 campos (userID, Fname, Lname, age, pword, salarial). Digamos que queremos restringir el acceso a datos confidenciales (ID de usuario, palabra clave y salario) y también restringimos la cantidad de datos a los que se accede. En mysql maria DB creamos una vista de la siguiente manera (Create view user1 como select Fname, Lname, age from users limit 100;) de nuestra vista que emitimos (seleccione Fname de users1;). Esta consulta es tanto una selección como un proyecto

+0

Ya existe una solución realmente agradable. –

Cuestiones relacionadas