Como usar todos, alguns, e qualquer em instruções sql
Todos, alguns, e qualquer pode ser confuso em instruções SQL. Milhares de anos atrás, o filósofo grego Aristóteles formulou um sistema de lógica que se tornou a base para muito do pensamento ocidental. A essência dessa lógica é começar com um conjunto de premissas que você sabe que para ser verdade, aplicam operações válidas, e, assim, chegar a novas verdades.
Conteúdo
Um exemplo deste procedimento é o seguinte:
Premissa 1: Todos os gregos são humanos.
Video: Aula 4 parte I - Instruções SQL (trabalhando com dados em tabelas)
Premissa 2: Todos os seres humanos são mortais.
Conclusão: Todos os gregos são mortais.
Outro exemplo:
Premissa 1: Alguns gregos são mulheres.
Video: Instruções SQL - Curso de treinamento Online do Software SCADA: Parte 30
Premissa 2: Todas as mulheres são humanos.
Conclusão: Alguns gregos são humanos.
A título de apresentar um terceiro exemplo, considere a mesma idéia lógica do segundo exemplo de uma forma um pouco diferente:
Se nenhum gregos são mulheres e todas as mulheres são humanos, então alguns gregos são humanos.
O primeiro exemplo usa o quantificador universal TODOS em ambos os locais, permitindo-lhe fazer uma dedução de som sobre todos os gregos na conclusão. O segundo exemplo utiliza o quantificador existencial ALGUNS em uma premissa, permitindo-lhe fazer uma dedução sobre alguns gregos na conclusão. O terceiro exemplo usa o quantificador existencial QUALQUER, sinônimo de ALGUNS, para chegar à mesma conclusão chegar no segundo exemplo.
Olhe como ALGUNS, QUALQUER, e TODOS aplicar em SQL.
Considere um exemplo em estatísticas de beisebol. O beisebol é um esporte exigente, especialmente para os jarros. Um jarro deve jogar o beisebol para casa chapa entre 90 e 150 vezes durante um jogo. Este esforço pode ser desgastante, e se o arremessador torna-se ineficaz antes do jogo terminar, um arremessador substitui-lo. Lançando um jogo inteiro é uma conquista notável, independentemente dos resultados do esforço em uma vitória.
Suponha que você está mantendo o controle do número de jogos completos que todos major-league jarros passo. Em uma tabela, você listar todos os arremessadores da Liga Americana, e em outra tabela, você listar todos os arremessadores da Liga Nacional. Ambas as tabelas contêm nomes dos jogadores, sobrenomes, eo número de jogos completos campal.
A Liga Americana permite um rebatedor designado (DH) (que não é necessário para jogar uma posição defensiva) para bater no lugar de qualquer um dos nove jogadores que jogam defesa. Será que a Liga Nacional não permite rebatedor designado, mas permite pinch-rebatedores.
Quando o pinch-hitter vem para o jogo para o jarro, o jarro não pode jogar para o resto do jogo. Normalmente, os morcegos DH para a jarra, porque os jarros são rebatedores notoriamente pobres. Jarros deve gastar tanto tempo e esforço em aperfeiçoar o seu arremesso que eles não têm tanto tempo para praticar rebatidas como os outros jogadores fazem.
Video: Curso SQL Banco de Dados e Modelagem - #36 Create Index
Suponha que você tem uma teoria que, em média, da Liga Americana jarros começando jogar jogos mais completos do que fazer Liga Nacional de jarros de partida. Esta ideia é baseada em sua observação de que rebatedor designado permitir hard-jogando, fraco de bater, American League jarros para manter lançando contanto que eles são eficazes, mesmo em um jogo de perto. Porque um DH já está batendo para estes jarros, seu fraco bater não é um passivo.
Na liga nacional, no entanto, em circunstâncias cotidianas o jarro iria para o bastão. Quando perdia no final dos turnos, a maioria dos gestores chamaria para um rebatedor substituto para o bastão para o jarro, a julgar que a obtenção de uma base de bater nesta situação é mais importante do que manter um jarro eficaz no jogo. Para testar sua teoria, a formular a seguinte consulta:
SELECIONAR FirstName, LastNameFROM AMERICAN_LEAGUERWHERE CompleteGames gt; ALL (SELECT CompleteGamesFROM NATIONAL_LEAGUER) -
A subconsulta (o interno SELECIONAR) Retorna uma lista mostrando, para cada arremessador da Liga Nacional, o número de jogos completos armou. A consulta externa retorna os nomes e sobrenomes de todos os jogadores da liga norte-americanos que acamparam jogos mais completos do que TODOS dos jogadores da liga nacional.
Toda a consulta retorna os nomes dos arremessadores da Liga Americana que lançou jogos mais completo que o lançador que tem jogado os jogos mais completos na liga nacional.
Considere a seguinte declaração semelhante:
SELECIONAR FirstName, LastNameFROM AMERICAN_LEAGUERWHERE CompleteGames gt; QUALQUER (SELECT CompleteGamesFROM NATIONAL_LEAGUER) -
Neste caso, você usa o quantificador existencial QUALQUER em vez do quantificador universal TODOS. A subconsulta (o interior, consulta aninhados) é idêntico ao subconsulta no exemplo anterior. Esta subconsulta recupera uma lista completa das estatísticas de jogo completas para todos os arremessadores da Liga Nacional.
A consulta externa retorna os nomes e sobrenomes de todos os arremessadores da Liga Americana que lançou jogos mais completos do que QUALQUER arremessador da Liga Nacional. Porque você pode ser praticamente certo que pelo menos uma Liga Nacional jarro não armou um jogo completo, o resultado provavelmente inclui todos os arremessadores da Liga Americana que já arrojados pelo menos um jogo completo.
Se você substituir a palavra-chave QUALQUER com a palavra-chave equivalente ALGUNS, O resultado é o mesmo. Se a afirmação de que pelo menos uma Liga Nacional jarro não armou um jogo completo é uma afirmação verdadeira, então você pode dizer que ALGUNS Liga Nacional de jarro não armou um jogo completo.