Créée le, 19/06/2015

 Mise à jour le, 19/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet


Travailler avec votre base de données MySQL (3ème partie) :



Récupérer les données dans un ordre particulier :


Si vous souhaitez afficher les lignes renvoyées par une requête dans un ordre particulier, vous pouvez vous servir de la clause ORDER BY de l'instruction SELECT. Cela permet de présenter la sortie obtenue dans un format plus lisible.

La clause ORDER BY est utilisée pour trier les lignes en fonction de plusieurs colonnes, listées dans la clause SELECT. Par exemple :

    SELECT nom, adresse

    FROM les_clients

    ORDER BY nom ;

Cette requête renvoie les noms et les adresses des clients, en les triant par ordre alphabétique (sur les noms), comme ceci :


Noms_Tries_par_Ordre_Alphabetique.png

Vous remarquerez que, dans ce cas, comme les noms sont au format Prénom, Nom de famille, ils sont triés en fait d'après le Prénom. Si vous souhaitez les trier d'après le nom de famille, il faut séparer les prénoms et les noms de famille, et les mettre dans deux champs différents.

Par défaut, l'ordre de tri est croissant. Vous pouvez le spécifier explicitement à l'aide du mot clé ASC :

    SELECT nom, adresse

    FROM les_clients

    ORDER BY nom ASC ;

Mais il est également possible de trier par ordre décroissant, en spécifiant le mot clé DESC :

    SELECT nom, adresse

    FROM les_clients

    ORDER BY nom DESC ;

Vous pouvez aussi trier sur plusieurs colonnes, ou vous servir des alias des colonnes, ou même de leur position dans le tableau, (par exemple 3 correspond à la troisième colonne du tableau) au lieu de leur nom.

Par exemple cette requête ci-après :

    SELECT * FROM les_clients WHERE client_id = 3 ;

Groupement et agrégation des données :

Il faut souvent déterminer le nombre de lignes qui appartiennent à un ensemble particulier, ou la valeur moyenne d'une colonne (par exemple, le montant moyen des commandes). MySQL possède plusieurs fonctions d'agrégation qui se révèlent très utiles pour répondre à ce type de requêtes.

Ces fonctions d'agrégation peuvent être appliquées à un tableau pris comme un ensemble, ou à un groupe de données dans un tableau.

Les fonctions d'agrégation le plus utilisées sont présentées dans le Tableau 3.


Tableau 3. - Les fonctions d'agrégation de MySQL :
Nom Description
AVG (column) Moyenne des valeurs dans la colonne spécifiée.
COUNT (items) Si vous spécifiez une colonne, cette fonction renvoie le nombre de valeurs NON NULL dans cette colonne. Si vous ajoutez le mot DISTINCT devant le nom de la colonne, vous obtiendrez le nombre de valeurs distinctes dans cette colonne uniquement. Si vous spécifiez COUNT (*), vous obtiendrez un compte global, indépendamment des valeurs NULL.
MIN (column) Minimum des valeurs dans la colonne spécifiée.
MAX (column) Maximum des valeurs dans la colonne spécifiée.
STD (column) Écart type des valeurs dans la colonne spécifiée.
STDDEV Comme STD (column).
SUM (column) Somme des valeurs dans la colonne spécifiée.

Voyons maintenant quelques exemples, en commençant par celui que nous avons mentionné plus haut. Nous pouvons calculer la moyenne des commandes comme ceci :

    SELECT AVG (montant)

    FROM les_commandes ;

Ce qui fournit la sortie suivante :


La_Valeur_Moyenne_des_Commandes.png


Pour obtenir des informations plus détaillées, nous pouvons nous servir de la clause GROUP BY. Cela nous permet d'afficher la moyenne des commandes pour différents groupes (par exemple, en fonction du numéro de client). Grâce à ce mécanisme, nous pouvons connaître le client qui a dépensé le plus d'argent :

    SELECT client_id, AVG (montant)

    FROM les_commandes

    GROUP BY client_id ;

Lorsque vous utilisez la clause GROUP BY avec une fonction d'agrégation, elle modifie le comportement de la fonction. Au lieu de fournir la moyenne des montants des commandes dans l'intégralité du tableau, cette requête fournit la moyenne des montants des commandes pour chaque client (ou, plus précisément, pour chaque client_id, ce qui donne un aperçu comme ci-après :


La Valeur Moyenne des Montants des Commandes de chaque Client.png

Un commentaire sur l'utilisation du groupement et des fonctions d'agrégation : en SQL AINSI, si vous utilisez une fonction d'agrégation ou une clause GROUP BY, les seules choses qui peuvent apparaître dans votre clause SELECT sont les fonctions d'agrégation et les colonnes spécifiées dans la clause GROUP BY. De plus, si vous voulez utiliser une colonne dans une clause GROUP BY, elle doit être spécifiée dans la clause SELECT.

MySQL est en fait un peu plus souple. Il supporte une syntaxe étendue, qui permet de ne pas spécifier des éléments dans la clause SELECT si vous ne souhaitez pas les mettre dans ce dernier.

En plus, de regrouper et d'agréger des données, nous pouvons tester le résultat d'une agrégation à l'aide d'une clause HAVING. Elle doit être spécifiée aussitôt après la clause GROUP BY, et elle fonctionne comme une clause WHERE qui ne s'appliquerait qu'aux groupes et aux agrégats.

Pour poursuivre notre exemple précédent, si nous voulons connaître les clients dont la moyenne des commandes est supérieure à 50 euros, nous pouvons nous servir de la requête suivante :

    SELECT client_id, AVG (montant)

    FROM les_commandes

    GROUP BY client_id

    HAVING AVG (montant) > 50 ;

La clause HAVING s'applique aux groupes. Cette requête renvoie le résultat suivant :


Montant superieur a 50 euros.png

Choisir les lignes à renvoyer :

Une clause de l'instruction SELECT qui peut être particulièrement utile dans les applications Web et la clause LIMIT. Elle est utilisée pour spécifier les lignes du résultat qui doivent être renvoyées. Elle accepte deux paramètres : le numéro de ligne de départ et le nombre de ligne à renvoyer.

La requête suivante met en œuvre la clause LIMIT :

    SELECT nom

    FROM les_clients

    LIMIT 2, 3 ;

Ce qui donne ceci :


LIMIT_Nombre_de_Clients.png

Cette requête peut être interprétée ainsi : "Sélectionne les noms des clients, et renvoie 3 lignes à partir de la deuxième ligne de la sortie." Vous remarquerez que les lignes sont numérotées à partir de 0, c'est-à-dire que la première ligne de la sortie est la ligne 0.

Cela est très utile pour les applications Web, pour permettre aux clients qui parcourent le catalogue des produits d'afficher uniquement 10 articles par page.

Mise à jour des enregistrements de la base de données :

En plus d'aller chercher des données dans la base de données, il faut souvent les modifier. Par exemple, nous pouvons avoir besoin d'augmenter le prix des livres dans la base de données. Pour cela, il existe l'instruction UPDATE.

Voici le format général d'une instruction UPDATE :

    UPDATE Nom_du_Tableau

    SET column_1 = expression_1, column_2 = expression_2, ...

    [WHERE condition]

    [LIMIT nombre]

Cette instruction met à jour le tabelau appelé Nom_du_Tableau, en modifiant toutes les colonnes spécifiées en fonction des expressions fournies. Vous pouvez restreindre une instruction UPDATE à certaines lignes avec une clause WHERE, et limiter le nombre total de lignes affectées avec une clause LIMIT.

Passons maintenant à quelques exemples.

Si nous souhaitons augmenter tous les prix de 10%, nous pouvons utiliser une instruction UPDATE sans la clause WHERE :

    UPDATE les_livres

    SET prix = prix * 1.1 ;

Si d'un autre côté nous souhaitons modifier une seule ligne (par exemple, pour changer l'adresse d'un client), nous pouvons nous servir de la requête suivante :

    UPDATE les_clients

    SET adresse = '250 rue de Paradis'

    WHERE client_id = 6 ;

Cette requête renvoie le résultat suivant :


Changement_dune_Adresse_ID_6.png

Modification des tableaux après leur création :

En plus de mettre à jour le contenu d'un tableau, nous pouvons modifier sa structure. Pour cela, nous pouvons avoir recours à l'instruction ALTER TABLE. Voici son format général :

    ALTER TABLE Nom_du_Tableau alteration [, alteration ...]

Notez que, en SQL ANSI, il n'est possible d'apporter qu'une seule modification par instruction ALTER TABLE, mais avec MySQL, vous pouvez en faire autant que vous le souhaitez. Chaque clause de modification peut être utilisée pour modifier différents aspects du tableau.

Les différents types de modification que vous pouvez apporter avec cette instruction sont présentés dans le Tableau 4.


Tableau 4. - Les modifications possibles avec l'instruction ALTER TABLE :
Syntaxe Description
ADD [COLUMN] column_description [ FIRST | AFTER column ] Ajoute une nouvelle colonne à l'emplacement spécifié (s'il n'est pas spécifié, la colonne est ajoutée à la fin). Notez que column_descriptions nécessite un nom et un type, tout comme une instruction CREATE.
ADD [COLUMN] (column_description, column_description, ...) Ajoute une ou plusieurs colonnes à la fin du tableau.
ADD INDEX [index] (column, ...) Ajoute un index dans le tableau, sur les colonnes spécifiées.
ADD PRIMARY KEY (column, ...) Transforme les colonnes spécifiées en clé primaire du tableau.
ADD UNIQUE [index] (column, ...) Ajoute un index unique dans le tableau, sur les colonnes spécifiées.
ALTER  [COLUMN] column {SET DEFAULT VALUE | DROP DEFAULT} Ajoute ou supprime une valeur par défaut pour une colonne particulière.
CHANGE [COLUMN] column new_column_description Modifie la colonne spécifiée, en lui affectant la nouvelle description. Vous pouvez vous en servir pour modifier le nom d'une colonne, puisque la description d'une colonne contient son nom.
MODIFY [COLUMN] column_description Comme CHANGE. Peut être utilisé pour modifier le type d'une colonne, et non son nom.
DROP [COLUMN] column Supprime la colonne spécifiée.
DROP PRIMARY KEY Supprime l'index principal (mais pas la colonne).
DROP INDEX index Supprime l'index spécifié.
RENAME [AS] new_table_name Renomme un tableau.

Voyons maintenant quelques utilisations courantes de ALTER TABLE.

Il arrive assez souvent que l'on se rende compte qu'une colonne n'est pas assez grande pour les données qu'elle contient. Par exemple, dans notre tableau les_clients, nous avons choisi des noms de 30 caractères au maximum. Après avoir ajouté quelques données, il se peut que nous nous rendions compte que certains noms font plus de 30 caractères, et qu'ils sont tronqués. Pour corriger ce problème, il suffit de modifier le type de la colonne et de choisir une largeur de 45 caractères :

    ALTER TABLE les_clients

    MODIFY nom CHAR(45) NOT NULL ;

Il arrive aussi que l'on ait besoin d'ajouter une colonne. Imaginons par exemple qu'une taxe sur les livres soit ajoutée, et que chez Jean-Pierre ait besoin d'ajouter le montant de cette taxe au total des commandes. Nous pouvons ajouter une colonne taxe dans le tableau les_commandes, comme ceci :

    ALTER TABLE les_commandes

    ADD taxe FLOAT (6,2) AFTER montant ;

Ce qui donne un aperçu ci-après :


Taxe Ajoutee Alter Table_les_Commandes.png

Il se peut aussi que vous ayez besoin de supprimer une colonne. Pour cela, servez-vous de la requête suivante :

    ALTER TABLE les_commandes

    DROP taxe ;

Supprimer des enregistrements dans la base de données :

La suppression des lignes est très simple. Vous pouvez vous servir de l'instruction DELETE, qui ressemble généralement à ceci :

     DELETE FROM table

    [WHERE condition] [LIMIT nombre]

Si vous écrivez uniquement : (Soyez prudent !)

    DELETE FROM table

Toutes les lignes du tableau seront supprimées ! En général, on préfère supprimer certaines lignes, que vous pouvez spécifier dans la clause WHERE. Par exemple, il faut supprimer une ligne si un livre n'est plus disponible, ou si un client n'a passé aucune commande depuis un certain temps, auquel cas, il doit être supprimé de la base de données :

    DELETE FROM les_commandes

    WHERE les_commandes_id = 6 ;

La clause LIMIT peut être utilisée pour limiter le nombre maximal de lignes à supprimer.

Supprimer des tableaux :

Il peut aussi arriver que vous souhaitiez supprimer un tableau de votre base de données. Vous pouvez le faire à l'aide de l'instruction DROP TABLE. Cette instruction est très simple, et elle ressemble à ceci :

    DROP TABLE table ;

Elle supprime toutes les lignes du tableau, et le tableau lui-même. Il convient donc de faire attention lorsque vous l'utilisez.

Supprimer une base de données entière :

Vous pouvez même supprimer l'intégralité d'une base de données avec l'instruction DROP DATABASE, dont la syntaxe ressemble à ceci :

    DROP DATABASE database ;

Elle supprime toutes les lignes, tous les tableaux, tous les index, et la base de données elle-même. Il va donc sans dire qu'elle doit être utilisée avec précaution !


Dans ces trois premiers chapitres de cette leçon, nous avons présenté les opérations les plus courantes de SQL, que vous utiliserez pour interagir avec une base de données MySQL. Dans les deux prochaines leçons, nous verrons comment connecter MySQL et le PHP, pour que vous puissiez accéder à votre base de données à partir du Web. Nous explorerons également quelques techniques avancées de MySQL.

Si vous souhaitez vous documenter plus précisément sur SQL, vous pouvez vous reporter au standard SQL ANSI, en anglais, disponible sur le site fort bien utile également, en cliquant ici.

Nous terminons ainsi cette neuvième leçon et nous verrons dans la prochaine, Comment rendre la base de données de chez Jean-Pierre disponible sur le Web.



  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet.   Haut de page
  Page précédente   Page suivante







Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.