Como usar conectivos lógicos com SQL
Muitas vezes, a aplicação de uma condição em uma consulta não é suficiente para retornar as linhas que você quer de uma tabela SQL. Em alguns casos, as linhas deve satisfazer duas ou mais condições. Em outros casos, se uma linha satisfaz qualquer uma das duas ou mais condições, qualifica-se para a recuperação.
Em ainda outras ocasiões, você quer recuperar apenas as linhas que não satisfazem uma condição especificada. Para atender a essas necessidades, SQL oferece os conectivos lógicos E, OU, e NÃO.
E
Se várias condições devem ser verdadeiras antes de poder recuperar uma linha, use o E conectivo lógico. Considere o seguinte exemplo:
InvoiceNo SELECT, SaleDate, Vendedor, TotalSaleFROM SALESWHERE SaleDate> = '2012-12-14'AND SaleDatelt; =' 2012/12/20 '-
o ONDE cláusula deve atender às seguintes condições:
Data de venda deve ser maior do que ou igual a 14 de Dezembro de 2012.
Data de venda deve ser inferior ou igual a 20 de Dezembro de 2012.
Somente as linhas que as vendas de discos que ocorrem durante a semana de 14 de Dezembro satisfazer ambas as condições. A consulta retorna somente essas linhas.
Note-se que o E conjuntivo é estritamente lógico. Esta restrição às vezes pode ser confuso porque as pessoas normalmente usam a palavra e com um significado mais solto. Suponha, por exemplo, que seu chefe lhe diz: # 147 eu gostaria de recuperar os dados de vendas para Ferguson e Ford. # 148- Ele disse: # 147-Ferguson e Ford, # 148- assim que você pode escrever a seguinte consulta SQL:
* SELECT FROM SALESWHERE vendedor = 'Ferguson'AND vendedor =' Ford'-
Bem, não tome essa resposta de volta para o seu chefe. A consulta a seguir é mais parecido com o que o grande kahuna tinha em mente:
* SELECT FROM SALESWHERE vendedor IN ( 'Ferguson', 'Ford') -
A primeira consulta não retornará nada, porque nenhuma das vendas na tabela de vendas foram feitas por ambos Ferguson e Ford. A segunda consulta retornará as informações sobre todas as vendas feitas por ou Ferguson ou Ford, que é provavelmente o que o chefe queria.
OU
Se qualquer um dos dois ou mais condições devem ser verdadeiras para qualificar uma linha para a recuperação, use o OU conjuntivo lógico, como no exemplo a seguir:
InvoiceNo SELECT, SaleDate, Vendedor, TotalSaleFROM SALESWHERE vendedor = 'Ford'OR TotalSale> 200 -
Esta consulta recupera todas as vendas da Ford, independentemente de quão grande, assim como todas as vendas de mais de US $ 200, independentemente de quem fez as vendas.
NÃO
o NÃO conjuntivo nega uma condição. Se a condição normalmente retorna um valor True, acrescentando NÃO faz com que a mesma condição para retornar um valor falso. Se uma condição normalmente devolve um valor falso, acrescentando NÃO faz com que a condição para retornar um valor True. Considere o seguinte exemplo:
SELECIONE InvoiceNo, SaleDate, Vendedor, TotalSaleFROM SALESWHERE NOT (vendedor = 'Ford') -
Esta consulta retorna linhas para todas as operações de venda concluídas por outros do que Ford vendedores.
Quando você usa E, OU, ou NÃO, por vezes, o âmbito do conectivo não é clara. Para ser seguro, use parênteses para se certificar de que o SQL aplica o conjuntivo ao predicado que deseja. No exemplo anterior, o NÃO conjuntivo se aplica a todo o predicado (Vendedor = 'Ford').