Académique Documents
Professionnel Documents
Culture Documents
com
1/14
04/03/2008
Le langage SQL (Structured Query Language) est un langage informatique normalis dinterrogation des bases de donnes relationnelles (SGBDR). Il est devenu un standard international en 1986. Il est utilis par toutes les bases de donnes (Oracle, dBase, Access...). Cest un langage est proche dun langage naturel.
Sommaire
A - Socit Exemple B Syntaxe des commandes C Etude des commandes
1. Requte slection : SELECT FROM
1.1 Requte simple 1.2 Requte multi-tables : Jointure 1.3 Trier les donnes : ORDER BY 1.4. Affichage avec restriction : WHERE 1.4.1 Slection sur un critre Critre alphabtique ou numrique simple Critre alphabtique labor : LIKE Oprateur : NOT 1.4.2 Slection multi-critres : AND, OR, BETWEEN, NOT Oprateur : AND Oprateur : OR Oprateur : BETWEEN 1.5 Les fonctions arithmtiques : MAX, MIN, AVG, SUM, COUNT 1.6 Regrouper les donnes : GROUP BY 1.6.1 Regroupement simple 1.6.2. Regroupement avec calcul 1.6.3 Regroupement limitation : HAVING
2. Requte ajout : INSERT INTOVALUE 3. Requte suppression : DELETE FROM 4. Requte mise jour : UPDATE SET
cterrier.com
2/14
04/03/2008
Having
SELECT "nom de colonne 1", SUM("nom de colonne 2") FROM "nom de table" GROUP BY "nom de colonne 1" HAVING (condition fonction) Paramtre une condition.
Order By
SELECT "nom de colonne" FROM "nom de table" [WHERE "condition"] ORDER BY "nom de colonne" [ASC, DESC] Paramtre des critres de tri.
Insert Into
INSERT INTO "nom de table" ("colonne 1", "colonne 2", ...) valeurS ("valeur 1", "valeur 2", ...) Ajoute denregistrements.
Where
SELECT "nom de colonne" FROM "nom de table" WHERE "condition" Paramtre une condition de slection.
Delete From
DELETE FROM "nom de table" WHERE {condition} Suppression denregistrements.
Like
SELECT "nom de colonne" FROM "nom de table" WHERE "nom de colonne" LIKE {modle} Avec WHERE. Paramtre dans une condition de slection, un critre sur une partie dun champ.
Update
UPDATE "nom de table" SET "colonne 1" = [nouvelle valeur] WHERE {condition} Modifier un enregistrement.
Distinct
SELECT DISTINCT "nom de colonne" FROM "nom de table" Slectionne dans un champ les donnes diffrentes.
And Or
SELECT "nom de colonne" FROM "nom de table" WHERE "condition simples" {[AND|OR] "condition simples"}+ Avec WHERE. Paramtre plusieurs conditions.
In
SELECT "nom de colonne" FROM "nom de table" WHERE "nom de colonne" IN ('valeur1', 'valeur2', ...) Slectionne des donnes prcises.
Not
SELECT "nom de colonne" FROM "nom de table" WHERE "condition simples" {[NOT] "condition simples"} Avec WHERE. Paramtre exclue une condition.
Creat Table
CREATE TABLE "nom de table" ("colonne 1" "type de donnes colonne 1", "colonne 2" "type de donnes colonne 2", ...) Cre une table.
Between
SELECT "nom de colonne" FROM "nom de table" WHERE "nom de colonne" BETWEEN 'valeur1' AND 'valeur2' Paramtre un intervalle.
Drop Table
DROP TABLE "nom de table" Supprimer une table.
Truncate Table
TRUNCATE TABLE "nom de table" Supprime toute les donnes dune table.
Group By
SELECT "nom de colonne 1", SUM("nom de colonne 2")
cterrier.com
3/14
04/03/2008
B - Socit exemple
Pour illustrer ce cours nous allons travailler partir de la base de donnes suivantes conue sous Access :
Description de la base de donnes : Les salaris de cette socit sont des commerciaux. Ils sont chargs dassurer le suivi commercial des entreprises. Dans ce cadre chaque salari est responsable de plusieurs socits. Inversement, une socit ne peut tre suivie que par un seuil commercial. Chaque socit est visite plusieurs fois par an. La table Visites enregistre les comptes rendus de visites priodiques. Une entreprise fait lobjet de plusieurs visites par an. C haque compte rendu concerne une seul entreprise.
Exemple : Liste des entreprises par vendeur
cterrier.com
4/14
04/03/2008
Exemple :
Entrainement
cterrier.com Entrainement
5/14
04/03/2008
Afficher les champs : matricule et nom de la table salaris aisi que les champs N ese, raison sociale et contact de la table Socits
Afficher les champs : N ese, Raison sociale, contact et fonction de la table socit et les champs N visite, date et rsultat de la table visites.
Il est possible dindiquer plusieurs cls de tri en les sa isissant les un la suite des autres Exemple : Afficher les champs : matricule, nom et tl de la table salaris tris sur le matricule par ordre croissant et sur le nom par ordre decroissant SELECT Salaris.Matricule_sal, Salaris.Nom_sal, Salaris.Tl_perso_sal FROM Salaris ORDER BY Matricule_sal, ASC, Nom_sal DESC
Entrainement
Afficher les champs : Raison sociale, contact et fonction de la table socits tri sur le nom du contact
Afficher tous les champs de la table visites tri sur la date et sur le numro de lentreprise
cterrier.com
6/14
04/03/2008
Conditions : Imbriques
=> Sexe = Homme AND age >20 => Ville = Lyon OR Ville = Grenoble Oprateurs disponibles
Effets gal infrieur suprieur infrieur ou gal suprieur ou gal diffrent de non vide vide contient
Exemples WHERE salaire = 2000 WHERE salaire < 2000 WHERE salaire > 2000 WHERE salaire <= 2000 WHERE salaire >= 2000 WHERE salaire <> 2000 WHERE salaire = NULL WHERE salaire = PAS NULL WHERE Prnom LIKE Luc
Entrainement
Afficher les champs : numro dentreprise, rue, code postal et ville de la table socits pour les entreprises de Paris
Afficher les champs : matricule, rue, code postal et ville, date de naissance de la table salaris pour les salaris de Lyon tris sur la date de naissance
cterrier.com
7/14
04/03/2008
La commande LIKE peut tre associe au symbole % qui remplace une chane de caractre. Dans ce cas elle affiche uniquement les enregistrements qui contiennent le texte situ avant, aprs ou entre les signe % (chaine de caractres) Exemple 1 : Afficher les villes qui commencent par la lettre : L Exemple 2 : Afficher les villes dont le nom se termine par : ian Exemple 3 : Afficher les villes dont le nom contient les lettres : Du Entrainement => WHERE Ville_sal LIKE L% => WHERE Ville_sal LIKE '%ian => WHERE Ville_sal LIKE '%Du%' (Base de donnes ci-dessus)
Afficher les champs : RS, rue, code postal et ville de la table socits pour les entreprises dont le nom commence par BO
Afficher les champs : civilit, nom, rue et ville de la table salaris pour les salaris qui habitent sur une place
Entrainement
Afficher les champs : numro dentreprise, rue, code postal et ville de la table socits des entreprises dont le code postal nest pas 75000
cterrier.com
8/14
04/03/2008
Afficher les champs : matricule, rue, code postal et ville, date de naissance de la table salaris pour les salaris qui ne sont pas ns Lyon
Loprateur ET (AND)
Loprateur AND permet dassocier des critres qui sajoutent. (Les deux critres doivent tre remplis). Exemple : Je souhaite afficher les clients qui habitent Lyon et dont le chiffre daffaires est suprieur 10 000 Exemple : Afficher le matricule, le nom et le salaire des salaris masculin dont le salaire est suprieur 2000 SELECT Salaris.Matricule_sal, Salaris.Nom_sal, Salari.Civilit_sal Salaris.Salaire_sal FROM Salaris WHERE Civilit_sal = Homme AND Salaire_sal > 2000 (Base de donnes ci-dessus)
Entrainement
Afficher le numro dentreprise, la rue, le code postal et le ville des entreprises situes Paris suivi par le salari dont le matricule est 123
Afficher le matricule et le nom des salaris de Lyon dont le salaire est suprieur 3 000 .
Loprateur OU (OR)
Loprateur OR permet dassocier des critres qui sliminent. (Un des deux critres doit tre rempli). Exemple : Je souhaite afficher les clients grossistes et les administrations Attention : La formulation de la condition OU est pigeuse car pour afficher les grossistes et les administrations. Il faut utiliser loprateur OU. Lutilisation de loprateur ET revient afficher les clients qui sont la fois des grossistes et des administrations, ce qui est impossible. Lors dune requte lorsque le rsultat est vide, lerreur provient le plus souvent de cette confusion. Exemple : Afficher le matricule, le nom et le salaire des salaris de Lyon et Grenoble SELECT Salaris.Matricule_sal, Salaris.Nom_sal, Salaris.Salaire_sal, Salari.Ville_sal FROM Salaris WHERE Ville_sal = Lyon OR Ville_sal = Grenoble
cterrier.com Entrainement
9/14
04/03/2008
Afficher les champs : numro dentreprise, rue, code postal et ville de la table socits pour les entreprises de Paris ou de Lyon
Afficher les champs : RS, contact et Tl des socits dont le numro de matricule du reprsentant est 123 ou 125
Entrainement Afficher les champs : numro dentreprise, rue, code postal et ville de la table socits pour les entreprises dont le code postal est compris entre 38000 et 39000
Afficher le matricule, la rue, le code postal, la ville et la date de naissance des salaris dont la date_dembauche de la table salaris est comprise entre le 01/01/2000 et le 31/12/2000
cterrier.com
10/14
04/03/2008
Exemple 2 :
Entrainement
11/14
04/03/2008
Paule
La fonction est place devant le nom du champ qui est mis entre parenthse. Exemple : Afficher entreprises regroupes par salaris SELECT Salaris.matricule_sal, Salaris.nom_sal, Socits.Raison_sociale_ese, Socits.Contact_ese, Socits.Fonction_ese, Socits.Tl_ese FROM Socits, Salaris WHERE socits.Matricule_sal = Salaris.matricule_sal GROUPE BY Socits.Matricule_sal
Entrainement
Afficher le numro de lentreprise, la ville et le numro de tlphone regroups par salaris responsable
Paule
cterrier.com Exemple :
12/14
04/03/2008
Calculer le chiffre daffaires total ralis avec chaque client dans le tableau de la page prcdente SELECT Entreprise, SUM(Ventes) FROM Visites GROUPE BY Entreprise Table : Lignes_Commande Champs : N_commande, rfrence, quantit, N_client
Entrainement
Exemple :
Calculer le chiffre daffaires total pour chaque client et afficher ceux dont le total est suprieur 30 SELECT Entreprise, SUM(Ventes) FROM Visites GROUPE BY Entreprise HAVING SUM(Ventes) > 3000 Table : Lignes_Commande Champs : N_commande, rfrence, quantit, N_client
Entrainement
Calculer les quantits totales commandes par type de rfrence et afficher uniquement ceux dont la quantit moyenne est suprieur 50 articles
Calculer le nombre de commandes passes par client et afficher uniquement ceux dont le nombre de commandes est suprieur 12 articles
cterrier.com
13/14
04/03/2008
Exemple :
Ajouter la table visites lenregistrement suivant : Date 15/04/2008 ; Entreprise : Paule ; Vente 600
INSERT INTO "Visites" ("Date", "Entreprise","Ventes") VALUES ("15/04/2008", "Paule", 600,)
Entrainement
Ajouter lenregistrement suivant la table Socits : N ese : 23, Socit : BongrainSA, Contact :
GoudardLuc, Fonction : PDG, Adresse : 2 rue du Mont, 33000, BORDEAUX, 03 45 12 32 65, 02
Table Visites Affichage sans regroupement Date 15/01/2008 17/01/2008 20/02/2008 Entreprise Bernard Paule Bernard Ventes 1000 800 600
Entrainement
Supprimer de la table visites les enregistrements qui concernent la socit dont le matricule est 025
cterrier.com
14/14
04/03/2008
Exemple : 19/01/2008:
la date du 17/01/2008 est fausse il fallait saisir UPDATE Visites SET Date = 19/01/2008 WHERE Date = "17/01/2008"
20/02/2008
Entrainement
Le salari Dupont (matricule 033) est mut, dornavant les socits quil grait seront suivies par le salari Grmont Paul dont le matricule est 028. Mettre jour la table socits.
Le salari Dupont (matricule 033) a chang de N de tlphone. Ancien numro : 04 78 23 56 89 ; Nouveau numro : 04 78 43 33 28