Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LES REQUÊTES SQL


Information sur la source

Catégorie :Tutoriaux Classé sous : requête, sql, base, ado, bdd Niveau : Débutant Date de création : 30/07/2001 Vu : 19 938

Note :
6,44 / 10 - par 9 personnes
6,44 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

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

  • <%
  • '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]
  • %>
<%
'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!
 

Commentaires et avis

signaler à un administrateur
Commentaire de pi0up51 le 29/05/2002 09:55:43

vélà un commentaire lol

signaler à un administrateur
Commentaire de pi0up51 le 29/05/2002 09:56:20

Non tu te fais rattraper au nivo des sources lol ;) tu va passer 3eme ;)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Requête SQL via une DropDownList... [ par brodi ] Salut tt le monde!Bon je v poser une question tres b&#234;te je sais mais je d&#233;bute...Je programme sur ASP.NET. Je me connecte &#224; une base de Problème de connexion avec SQL serveur de Micrsoft [ par ronaldo1 ] Voila j'essai de créé une connexion avec SQL serveur avec une petite requête de test mais cele ne foncionne pas.Voici le fichier ASP:&lt;%@ LANGUAGE = Les résultats de la requête SQL n'aparaissent pas [ par ronaldo1 ] Le résultat de la requête n'affiche qu'une seul fois la valeur de net une infité de: '&n&' alors qu'il doit avoir que 5 résultats à le requête (TOP 5) requete sql de access vers sage [ par speech ] Bonjour, Je ne connais rien en sql ou en access, et mon cher patron me demande de faire une requete sql depuis access vers une bdd de sage pour récupé Comment faire!!!!! [ par fatifleurf ] ,slt &#224; tousbon,j'ai un prb avec c# et sql serveur.je ne sais pas comment je peux me connecter &#224; ma base de donn&#233;es en sql serveur dans comment faire!!! [ par fatifleurf ] slt &#224; tousbon,j'ai un prb avec c# et sql serveur.je ne sais pas comment je peux me connecter &#224; ma base de donn&#233;es en sql serveur dans u Date et BDD [ par Mickylord ] Bonjour !Mon probl&#232;me est le suivant :J'aimerai enregistrer une date dans ma base de donn&#233;e &#224; partire d'une page avec la m&#233;thode D Connexion à une base SQL [ par arkele ] J'utilise une base de donn&#233;es SQl Server.Comme dans mon application j'utilise un grand nombre de reader, j'ai cr&#233;&#233; une fonction SQL_Rea Problème requête SQL [ par systemic_anomaly ] Salut tout le monde, J'ai un probl&#232;me avec une requ&#234;te SQL pour mon application en ASP.NET. Voici la requ&#234;te en question: select e. Utilisation en boucle des résultats d'une requête SQL [ par systemic_anomaly ] Salut c'est encore moi, Histoire d'optimiser une requ&#234;te j'aimerais pouvoir boucler sur les r&#233;sultats. Par exemple, une requ&#234;te qui jo


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,45 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.