Les requêtes sql

Contenu du snippet

Les requêtes SQL permettent d'interroger directement la base de donnée.
Elles sont bien plus efficaces que tout ce qu'on peut faire avec ADO pour interroger une BDD

Note: Sachez qu'en SQL les majuscules et minuscules importes peu
2eNote: SQL est TRES proche de l'anglais donc vous comprendrez vite SQL...

Source / Exemple :


<%
'I] Les requêtes SQL
'-------------------

'Faire appel à une colonne 3 méthode:
'NomColonne
'NomTable.NomColonne
'NomBase.NomTable.NomColonne

'1.1 Ma première requête (SELECT * FROM)

'La requête la plus simple qui existe en SQL à la synthaxe suivante:
SELECT * FROM [NomTable]
'Elle permet d'afficher tous les enregistrements de cette table
'Mais on peut interroger plusieurs tables en même temps:
SELECT * FROM [NomTable1],[NomTable2],[NomTable3],[...]

'Si une BDD contient une table "Table1" et qu'il y a
'plusieurs colonnes et que vous voulez que tous
'les enregistrement soit renvoyer mais pas le
'contenu de touts les colonnes tapez ceci:
SELECT [Colonne1],[Colonne2],[...] FROM Table1

'1.2 Ma première requête avec une condition

'Mais ces requêtes ne suffisent plus si vous ne
'voulez afficher que les enregistrement qui
'contiennent un certain mot("vbtom") ou valeur dans 
'un des champs
SELECT * FROM [NomTable] WHERE [NomColonne]='vbtom'
'Vous pouvez toujours interroger que certaines colonnes
'et plusieurs tables comme vue précédement

'1.3 Les requêtes avec conditions(Suite...)

'Pour bien expliquer on va faire avec un exemple concret:
'Une BDD contient une table nommée Sources, cette table
'contient les colonnes NameAuteur,MailAuteur, ID, Source
'Si vous voulez rechercher touts les enregistrement qui
'contiennent le mot "SQl" dans le champ Source, il faudra
'faire comme ça:
SELECT * FROM Sources WHERE Source LIKE "%SQL%"

'Ce type de requête est très puissante

'% remplace un nombre de caractère iconnue qui peut très
'bien être 1025 caractères ou 0...
'Ainsi %SQL renvoie tous les champs qui se terminent
'par SQL 
'EX: 'Jaime SQL' sera renvoyé, 'J'aime SQL." ne sera pas renvoyé
'Vous recherchez tous les champs qui commencent par j'aime:
' J'aime%

'Si vous souhaitez trouver les champs qui commencent par A à C
'[A-C] ainsi "A" sera renvoyé, "B" aussi alors que "Bétrave" ne sera pas renvoyé!
'Bien sur vous pouvez le combiné avec %:
'Si vous souhaiter que bétrave soit renvoyé: [A-C]%

'Si vous voulez revoyer les champs qui commencent par A ou C
'[AC]%

'Pour exclure des valeurs
'Pour renvoyer tous les champs qui ne commencent pas par "B"
'[^U]

'Pour remplacer un caractère inconnu employez le caractère _

'ATTENTION: Si vous devez rechercher un caratère comme [,%,_ ou ^ 
'vous devez les encadrés par des crochets

'1.4 Requêtes SQL avec PLUSIEURS conditions

'SI vous devez rechercher des enregistrements qui ont le 
'champ MailAuteur qui contient "Nix" et le champ ID qui
'est supérieur à 50 vous emploierez le mot clé AND:
SELECT * FROM Sources WHERE Sources.ID LIKE "%Nix%" AND Sources.ID > 50

'Mais si au contraire vous vous renvoyez les enregistrement
'qui ont le champ MailAuteur qui contient "Nix OU le champ
'ID qui est supérieur à 50 vous emploierez OR:
SELECT * FROM Sources WHERE Sources.ID LIKE "%Nix%" OR Sources.ID > 50

'Renvoyer les enregistrements dont le champ ID est compris
'entre 30 et 50
SELECT * FROM Srouces WHERE ID > 30 AND ID < 50
'Mais vous pouvez l'ecrire avec le mot clé BETWEEN
SELECT * FROM Srouces WHERE ID BETWEEN 30 AND 50
'Vous pouvez au contraire exclure les enregistrements
'Dont le champ ID est compris entre 30 et 50 avec
'NOT BETWEEn
SELECT * FROM Srouces WHERE ID NOT BETWEEN 30 AND 50

'1.5 Renvoyer le nombre de champ avec Count

'1er emploie de COUNT:
SELECT COUNT(*) FROM Sources
'Renvoie le nombre d'enregistrements de la table Sources
'Note: Vous pouvez là aussi utliser les conditions

'1.6 Distinct

'Certaines fois ils arrivent que d'un enregistrement sur
'l'autre un champ soit identique au précédent donc pour
'éviter d'avoir deux fois la même valeur
SELECT DISTINCT [NomColonne] FROM [Table] 

%>

Conclusion :


Glossaire
---------
BDD: Abrev de Base De Donnée
SQL: Structured Query Language
ADO: Active Data Object

Tout SQL n'as pas été décrit ici mais le principal(je pense)(si vous pensez que c trop important pour être passer a cote je completerais ce tutorial)

@++
vbtom.

PS: Si g commis des grosses(ou petites) bourdes faires le moi savoir au plus vite...Merci!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.