Cómo utilizar todos, algunos, y cualquier en sentencias SQL

Todos, algunos, y alguna de ellas puede ser confuso en sentencias SQL. Hace miles de años, el filósofo griego Aristóteles formuló un sistema de lógica que se convirtió en la base de gran parte del pensamiento occidental. La esencia de esta lógica es comenzar con un conjunto de premisas que usted sabe que es verdad, se aplican las operaciones válidas y, por lo tanto, llegar a nuevas verdades.

Un ejemplo de este procedimiento es el siguiente:

Premisa 1: Todos los griegos son humanos.

Premisa 2: Todos los humanos son mortales.

Conclusión: Todos los griegos son mortales.

Otro ejemplo:

Premisa 1: Algunos griegos son mujeres.

Premisa 2: Todas las mujeres son humanos.

Conclusión: Algunos griegos son humanos.

A modo de presentar un tercer ejemplo, considere la misma idea lógica del segundo ejemplo de una forma ligeramente diferente:

Si alguna griegos son mujeres y todas las mujeres son humanos, a continuación, algunos griegos son humanos.

El primer ejemplo se utiliza el cuantificador universal TODAS tanto en los locales, lo que le permite hacer una deducción de sonido sobre todos los griegos en la conclusión. El segundo ejemplo se utiliza el cuantificador existencial ALGUNOS en una premisa, lo que le permite realizar una deducción sobre algunos griegos en la conclusión. El tercer ejemplo se utiliza el cuantificador existencial ALGUNA, sinónimo de ALGUNOS, para llegar a la misma conclusión se llega en el segundo ejemplo.

Mira cómo ALGUNOS, ALGUNA, y TODAS aplicar en SQL.

Considere un ejemplo en las estadísticas de béisbol. El béisbol es un deporte exigente, especialmente para los lanzadores. Un lanzador debe lanzar la pelota al plato de casa entre 90 y 150 veces durante un juego. Este esfuerzo puede ser agotador, y si el lanzador se vuelve ineficaz antes de que termine el juego, un lanzador de relevo lo reemplace. Lanzando un juego entero es un logro excepcional, independientemente de que los resultados del esfuerzo en una victoria.

Supongamos que usted está manteniendo un registro de la cantidad de juegos completos que todas las Grandes Ligas lanzadores de tono. En una tabla, una lista de todos los lanzadores de la Liga Americana, y en otra mesa, usted enumera todos los lanzadores de la Liga Nacional. Ambas tablas contienen nombres de los jugadores, apellidos y número de juegos completos lanzadas.

La Liga Americana permite un bateador designado (DH) (que no se requiere para desempeñar una posición defensiva) a batear en lugar de cualquiera de los nueve jugadores que juegan defensa. La Liga Nacional no permite bateadores designados, pero sí permite bateadores emergentes.

Cuando el bateador emergente entra en el juego para el lanzador, el lanzador no puede jugar por el resto del juego. Por lo general, los murciélagos DH para el lanzador, porque los lanzadores son bateadores notoriamente pobres. Los lanzadores deben pasar tanto tiempo y esfuerzo en perfeccionar su pitcheo que no tienen tanto tiempo para practicar bateo como los otros jugadores lo hacen.

Suponga que tiene una teoría que, en promedio, de la Liga Americana abridores lanzan juegos más completos que hacer de la Liga Nacional de abridores. Esta idea se basa en la observación de que los bateadores designados permiten difíciles de lanzamiento, débil bateo, lanzadores de la Liga Americana para mantener pitcheo, siempre y cuando sean eficaces, incluso en un partido cerrado. Debido a que un DH ya está bateando para estos lanzadores, su pobre bateo no es un pasivo.

En la Liga Nacional, sin embargo, en circunstancias cotidianas lanzador iría al bate. Cuando se arrastra en las últimas entradas, la mayoría de los gerentes llamarían por un bateador emergente a batear por el lanzador, juzgando que conseguir un hit en esta situación es más importante que mantener un lanzador efectivo en el juego. Para probar su teoría, a formular la siguiente consulta:

SELECT Nombre, LastNameFROM AMERICAN_LEAGUERWHERE CompleteGames> ALL (SELECT CompleteGamesFROM NATIONAL_LEAGUER) -

La subconsulta (lo interno SELECT) Devuelve una lista que muestra, para cada lanzador de la Liga Nacional, el número de juegos completos que lanzó. La consulta externa devuelve los nombres y apellidos de todos los jugadores de la Liga estadounidense que lanzó los juegos más completos de TODAS de los jugadores de la Liga Nacional.

La consulta toda devuelve los nombres de los lanzadores de la Liga Americana que lanzó juegos más completo que el lanzador que ha lanzado los juegos más completos en la Liga Nacional.

Considere la siguiente declaración similar:

SELECT Nombre, LastNameFROM AMERICAN_LEAGUERWHERE CompleteGames> ANY (SELECT CompleteGamesFROM NATIONAL_LEAGUER) -

En este caso, se utiliza el cuantificador existencial ALGUNA en lugar del cuantificador universal TODAS. La subconsulta (el, consulta anidada interior) es idéntica a la subconsulta en el ejemplo anterior. Esta subconsulta recupera una lista completa de las estadísticas completas de juego para todos los lanzadores de la Liga Nacional.

La consulta externa devuelve los nombres y apellidos de todos los lanzadores de la Liga Americana que lanzó los juegos más completos de ALGUNA Lanzador de la Liga Nacional. Debido a que puede estar prácticamente seguro de que al menos un lanzador de la Liga Nacional no ha lanzado un juego completo, el resultado probablemente incluye todos los lanzadores de la Liga Americana que han lanzado al menos un juego completo.

Si se sustituye la palabra clave ALGUNA con la palabra clave equivalente ALGUNOS, El resultado es el mismo. Si la afirmación de que al menos un lanzador de la Liga Nacional no ha lanzado un juego completo es una declaración verdadera, entonces puede decir que ALGUNOS Liga Nacional lanzador no ha lanzado un juego completo.




» » » » Cómo utilizar todos, algunos, y cualquier en sentencias SQL