Comment utiliser connecteurs logiques avec sql

Souvent appliquant une condition dans une requête ne suffit pas de renvoyer les lignes que vous voulez à partir d'une table SQL. Dans certains cas, les lignes doivent satisfaire à deux conditions ou plus. Dans d'autres cas, si une ligne satisfait à l'un des deux ou plusieurs conditions, il se qualifie pour la récupération.

Sommaire

Sur encore d'autres occasions, vous souhaitez récupérer uniquement les lignes qui ne satisfont pas une condition spécifiée. Pour répondre à ces besoins, SQL offre les connecteurs logiques ET, OU, et PAS.

ET

Si plusieurs conditions doivent être vrai avant que vous pouvez récupérer une ligne, utilisez le ET conjonctif logique. Prenons l'exemple suivant:

InvoiceNo SELECT, SaleDate, vendeur, TotalSaleFROM SALESWHERE SaleDate> = '2012-12-14'AND SaleDatelt; =' 20/12/2012 »-

La clause doit répondre aux deux conditions suivantes:

  • Date de vente doit être supérieure ou égale à 14 Décembre, 2 012.




  • Date de vente doit être inférieure ou égale à 20 Décembre, 2 012.

Seules les lignes que les ventes de disques lieu durant la semaine du 14 Décembre réunissent les deux conditions. La requête renvoie seulement ces lignes.

Notez que le ET conjonctif est strictement logique. Cette restriction peut parfois être source de confusion parce que les gens utilisent souvent le mot et avec un sens plus lâche. Supposons, par exemple, que votre patron vous dit, “. Je tiens à récupérer les données de ventes pour Ferguson et Ford ” Il a dit, “ Ferguson et Ford, ” de sorte que vous pouvez écrire la requête SQL suivante:

* SELECT FROM SALESWHERE Salesperson = 'Ferguson'AND Salesperson =' Ford'-

Eh bien, ne prenez pas la réponse à votre patron. La requête suivante est plus comme ce que le Big Kahuna avait à l'esprit:

* SELECT FROM SALESWHERE Salesperson («Ferguson», «Ford») -

La première requête ne renvoie rien, car aucun des ventes dans le tableau des ventes ont été réalisées par les deux Ferguson et Ford. La deuxième requête renverra les informations sur toutes les ventes faites par non plus Ferguson ou Ford, qui est probablement ce que le patron voulait.

OU

Si l'un des deux ou plusieurs conditions doivent être remplies pour qualifier une rangée pour la récupération, utilisez le OU logique conjonctif, comme dans l'exemple suivant:

InvoiceNo SELECT, SaleDate, vendeur, TotalSaleFROM SALESWHERE Salesperson = 'Ford'OR TotalSale> 200 -

Cette requête récupère toutes les ventes de Ford, quel que soit grande, ainsi que toutes les ventes de plus de 200 $, peu importe qui fait la vente.

PAS

La PAS conjonctif annule une condition. Si la condition renvoie normalement une valeur Vrai, ajoutant PAS provoque la même condition pour retourner une valeur False. Si une condition retourne normalement une valeur False, ajoutant PAS provoque la condition pour retourner une valeur True. Prenons l'exemple suivant:

SELECT InvoiceNo, SaleDate, vendeur, TotalSaleFROM SALESWHERE PAS (Salesperson = 'Ford') -

Cette requête renvoie des lignes pour toutes les transactions commerciales effectuées par les vendeurs autres que Ford.

Lorsque vous utilisez ET, OU, ou PAS, la portée de la conjonctif est parfois pas clair. Pour être sûr, utiliser des parenthèses pour faire en sorte que SQL applique la conjonctif au prédicat que vous voulez. Dans l'exemple précédent, la PAS conjonctif applique à l'ensemble du prédicat (Salesperson = 'Ford').


» » » » Comment utiliser connecteurs logiques avec sql