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 sabemos 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.

Video: hackear webs con inyecciones SQL para sacar datos de usuarios, paypal etc. + programas

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, considérese la misma idea lógica del segundo ejemplo de una manera ligeramente diferente:

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

El primer ejemplo utiliza el cuantificador universal TODAS en ambos 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 hacer 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 hacia el plato 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 si los resultados de esfuerzo en una victoria.

Supongamos que está manteniendo un registro del número de juegos completos que todos los lanzadores de las Grandes Ligas de tono. En una tabla, una lista de todos los lanzadores de la Liga Americana, y en otra tabla, una lista de 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 está obligado a jugar a la defensiva) para batear en lugar de cualquiera de los nueve jugadores que juegan de defensa. La Liga Nacional no permite bateadores designados, pero sí permite bateadores emergentes.

Cuando el bateador emergente entra en el juego por 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 notoriamente pobres bateadores. 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.

Video: Crear BD MYSQL con Sentencias SQL en PhpMyAdmin usando XAMPP Server

Suponga que tiene una teoría que, en promedio, de la Liga Americana abridores lanzan juegos más completos que hacer abridores de la Liga Nacional. Esta idea se basa en su observación de que los bateadores designados permiten difíciles de lanzamiento, débil de alto impacto, lanzadores de la Liga Americana a seguir lanzando, siempre y cuando son 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 que el 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 gt; ALL (SELECT CompleteGamesFROM NATIONAL_LEAGUER) -

La subconsulta (el interior SELECCIONAR) 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.

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

Considere la siguiente declaración similar:

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

En este caso, se utiliza el cuantificador existencial ALGUNA en lugar del cuantificador universal TODAS. La subconsulta (la, consulta interna anidada) es idéntica a la subconsulta en el ejemplo anterior. Esta sub consulta recupera una lista completa de las estadísticas de juego completas 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 ser prácticamente seguro 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 reemplaza 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 decirse que ALGUNOS lanzador de la Liga Nacional no ha lanzado un juego completo.

Artículos Relacionados