Home » , » Apprendre SQL utilisant phpMyAdmin

Apprendre SQL utilisant phpMyAdmin

Written By planetweb on vendredi 21 juin 2013 | 14:00

Apprendre SQL utilisant phpMyAdmin 

Qu'est-ce que SQL?

Structured Query Language est un langage non procédural utilisé pour définir, manipuler et récupérer des données. Il a été développé par IBM (projet System / R) en 1974-1979. L'American National Standards Institute (ANSI) a publié en 1986 le premier standard officiel de la langue (révisé en 1989, 1992 et 1999), et depuis lors, l'industrie a largement adopté SQL comme langage de base de données relationnelle.Pratiquement tous les systèmes de base de données est aujourd'hui interfacé via SQL.
L'architecture de données spécifique adressée par SQL est appelé l'architecture relationnelle. Les différents éléments de données (colonnes) sont regroupés dans les tableaux figurant dans les bases de données, et nous récupérer les données en utilisant les relations exprimées entre les tables.
Dans cet article, nous allons utiliser MySQL, une implémentation open-source populaire de SQL qui est déployé par la plupart des fournisseurs d'hébergement Web.

Toolkit pour ce guide

Pour être capable de faire les exercices de ce guide, vous aurez besoin d'un accès à un serveur MySQL. Votre interface de MySQL sera phpMyAdmin, une application PHP fonctionnant sur ​​un serveur Web PHP-enabled. Le livre « Mastering phpMyAdmin MySQL pour la gestion efficace "est recommandé pour une couverture complète de l'outil de phpMyAdmin.
Ce guide va vous montrer la syntaxe SQL, parfois en vous demandant de saisir des instructions, et parfois en vous permettant de voir comment phpMyAdmin génère des instructions SQL en fonction de vos actions à l'aide de l'interface.

Création Exemples de tableaux

Nous allons utiliser un système d'information géographique comme un exemple. Nous décidons que nous avons besoin d'informations sur les villes et les pays, de sorte que nous concevons deux tableaux, qui feront partie d'une base de données appelée GeoDB (bien que le nom de base de données ferait). Pour créer les tables, nous pouvons utiliser la structure de phpMyAdmin sous-page en mode de base de données, ou nous pouvons utiliser la boîte de requête SQL pour entrer dans la déclaration appropriée:

La création de la table est accompli avec l'instruction CREATE TABLE, dans laquelle nous donnons le nom de la nouvelle table. La déclaration commence par créer la table, suivi par le nom de la table. Puis, entre crochets, nous mettons la liste des colonnes et des informations sur les touches. Chaque colonne est attribué un nom, type de données, la valeur NULL ou NOT NULL attribut (ici, NOT NULL signifie la colonne ne peut pas avoir une valeur NULL) et une valeur par défaut, le cas échéant.
CREATE TABLE villes (
id int (11) NOT NULL AUTO_INCREMENT,
city_name varchar (50) NOT NULL default'',
latitude varchar (15) NOT NULL default'',
longitude varchar (15) NOT NULL default'',
int de la population (11) NOT NULL default '0 ',
country_code char (2) NOT NULL default'',
PRIMARY KEY (id)
) TYPE = MyISAM AUTO_INCREMENT = 1;
La colonne id est notre clé primaire, une colonne qui identifie de manière unique chaque ville. Son type de données est INT (un nombre entier), et MySQL va attribuer des numéros uniques à elle, grâce à l'attribut AUTO_INCREMENT. Notez que nous ne pouvons pas utiliser le nom de la ville comme une clé primaire, car certains noms de ville ne sont pas uniques dans le monde. Nous utilisons également un entier pour la population.
Les autres colonnes utilisent caractère (CHAR) ou le caractère variable (VARCHAR) des types de données. Quand on sait la durée exacte de données, il est préférable d'utiliser CHAR, spécifiant la longueur de la colonne comme dans CHAR (2). Sinon, nous utilisons un type de données de caractère variable, ce qui ne prendra que l'espace requis par chaque élément de données, et nous spécifier la longueur maximale, comme dans VARCHAR (15).
Après la liste des colonnes, nous avons quelques informations de table spécifique, comme son type, et la première valeur de la colonne à incrémentation automatique. SQL terminer par un point-virgule.
Après avoir créé notre table villes, nous faisons la même opération, cette fois pour le tableau des pays.
CREATE TABLE pays (
country_code char (2) NOT NULL default'',
country_name varchar (100) NOT NULL par défaut''
) TYPE = MyISAM;
Nous remarquons que la colonne de country_code est présente dans les deux tableaux. Cela montre le principe relationnel: le country_code dansles villes se réfère à la même colonne dans les pays. De cette façon, nous économiser de l'espace, avec le nom de chaque pays qu'une seule fois dans notre base de données.
Un autre article (Migration vers InnoDB) vous expliquera plus en détail cette technique relationnelle.
Nous sommes maintenant prêts à entrer des données dans nos tables.

Modification de données

Dans cette section, nous allons apprendre la syntaxe de base pour l'instruction INSERT, UPDATE, DELETE et SELECT.

Ajout de données avec INSERT

Examinons d'abord l'instruction INSERT, en regardant le code phpMyAdmin génère quand nous faisons une opération d'insertion. Nous apportons la sous-page Insertion, dans la vue de table pour la table des pays, et nous entrer des données sur un pays:

Lorsque nous cliquons aller, les données sont insérées et phpMyAdmin nous montre l'instruction INSERT utilisée:
INSERT INTO `pays` (`country_code`, `country_name`) 
VALUES ('ca', 'Canada');
Après l'instruction INSERT INTO part, nous avons le nom de la table. Dans MySQL, nous pouvons Placez les noms de table et les noms de colonnes dans les apostrophes, dans le cas où il ya des caractères spéciaux en eux, comme des mots réservés ou des caractères accentués.Puis nous ouvrons une première série de crochets, listant les colonnes dans lequel nous voulons insérer, séparées par des virgules. Le motvaleurs réservées suit, puis la dernière série de crochets entourant les valeurs, dans le même ordre que la liste des colonnes. Si les valeurs ont un type de données de caractères, nous devons les inclure entre guillemets.
Nous pouvons maintenant insérer une ville.
INSERT INTO `villes` (`id`, `city_name`, `latitude`, `longitude`, `population`, `country_code`) 
VALUES ('', 'Sherbrooke', '45 23 59.00 ',' -71 46 11.00 ', 125000,' ca ');
Ici, nous mettons une valeur vide pour id, parce que l'attribut d'auto-incrémentation de cette colonne fournir une valeur. Nous voyons aussi que la valeur de la population, étant numérique, n'a pas besoin d'être entouré de guillemets.
Finissons cette section en insérant des données d'un autre pays et la ville, dont nous aurons besoin plus tard.
INSERT INTO `pays` (`country_code`, `country_name`) 
VALUES ('zh »,« Chine »);
INSERT INTO `villes` (`id`, `city_name`, `latitude`, `longitude`, `population`, `country_code`) 
VALUES ('', 'Shanghai', '31 13 58.00 ', '121 26 59.99', 11000000, «zh ');

Mise à jour des données avec UPDATE

Nous cliquons d'abord sur Parcourir pour les villes de table, affiché notre seule rangée de données.
En cliquant sur ​​la petite icône en forme de crayon (ou Modifier le lien), nous allons au panneau d'édition pour cette ligne. Nous décidons de changer la valeur de la population de 130000. Après un clic sur Enregistrer, phpMyAdmin montre la déclaration suivante:
Les villes UPDATE `SET` population `= '130000 'WHERE` id `= '1' LIMIT 1;
Ici, nous avons le mot clé UPDATE, suivie du nom de la table. Le mot-clé SET présente la liste des modifications (ici seulement de la population), qui suit la colonne de format = nouvelle valeur.
Nous voyons maintenant la condition WHERE `id` = '1 ', qui utilise les informations de clé primaire afin de limiter le changement à cette seule ligne, c'est à dire que cette ville.
La limite de 1 partie est une protection supplémentaire par phpMyAdmin, dans le cas où il n'y aurait pas de clé primaire définie, pour éviter de faire le changement à plus d'une ligne.
Plus d'une colonne peut être modifié dans une opération UPDATE unique:
Les villes UPDATE `SET` city_name `= 'Sherbrooke, Québec» 
`` = '130001 Population 'WHERE `id` = '1' LIMIT 1;

Suppression de données avec SUPPRIMER

En mode sur les villes de table Parcourir, en cliquant sur ​​le petit rouge trash-icône de (ou supprimer le lien) fait apparaître une boîte de dialogue pour confirmer l'exécution de la déclaration suivante:
DELETE FROM `villes` WHERE `id` = '1 'LIMIT 1;
La syntaxe est simple, impliquant seulement le nom de la table, et la condition de demander la suppression.
Omettant la condition WHERE dans une instruction UPDATE ou DELETE est opération parfaitement légale en SQL, mais l'opération a lieu sur tous les lignes de la table!

Récupération de données avec SELECT

Récupération des informations de nos tables est probablement l'opération que nous faisons la plupart du temps. C'est la façon d'obtenir des réponses à des questions comme «Quelles sont les villes ayant une population de plus d'un certain nombre?".
En fait, nous avons déjà fait un SELECT lorsque nous avons cliqué sur le lien Parcourir les villes de table. Cela a engendré une forme simple de l'instruction SELECT:
SELECT * FROM `villes LIMIT 0,30;
Ici, l'astérisque signifie "toutes les colonnes". Nous ajoutons FROM et le nom de la table qui nous voulons interroger. La limite 0,30 signifie commencer à nombre rangée 0 (le premier), et sélectionner un maximum de 30 lignes.
Essayons une recherche pour voir plus d'options pour le SELECT. Nous allons à la sous-page Recherche de villes de table, et nous choisissons seulement certaines colonnes dont nous avons besoin:
Puis au bas de la page, nous choisissons d'afficher par la suite par la population dans l'ordre décroissant:

L'exécution de la recherche génère la requête suivante:
SELECT `city_name`, `population` 
FROM `villes` 
OÙ 1 
ORDER BY `population` DESC LIMIT 0,30
Nous voyons que l'astérisque a été remplacée par une liste séparée par des virgules de colonnes. Une condition WHERE 1 a été ajoutée par phpMyAdmin, c'est une condition qui est toujours vrai et sélectionne toutes les lignes. Nous verrons dans un instant que nous pouvons le remplacer par un autre état. En outre, la clause ORDER BY apparaît, suivie de la colonne sur laquelle on veut trier les résultats et le mot-clé DESCpour l'ordre (on peut aussi utiliser ASC pour ascendant) décroissant.

Conditions

Pour ajouter facilement une condition, sur la page des résultats, nous pouvons cliquer sur requête SQL: Edition, qui apporte la fenêtre de requête contextuel. Nous ajoutons une condition sur le pays:
SELECT `city_name`, `population`
FROM `villes`
OÙ country_code = 'zh'
ORDER BY `population` DESC
qui affiche toutes les villes situées en Chine (ok, nous étions un peu paresseux avec la saisie de données, mais vous obtenez l'image).
Les conditions peuvent être exprimées en utilisant un riche éventail d'opérateurs et de fonctions. Voici deux exemples:
Trouver les villes canadiennes ayant une population de plus de 100000:
Où la population> 100000 ET country_code = 'ca'
Trouver les villes dont le nom commence par "A":
OÙ city_name comme 'A%'

Les fonctions d'agrégation

Résumé des informations peut être généré par le regroupement sur ​​une colonne spécifique. Ici, nous demandons à la population de la ville moyenne par pays:
SELECT country_code, AVG (la population)
Des villes
GROUP BY country_code
D'autres fonctions d'agrégation sont possibles MIN (), MAX (), SUM () et COUNT (), qui calcule respectivement la valeur minimale, la valeur maximale, la somme des valeurs, et le nombre de valeurs. Par exemple, nous pourrions obtenir le nombre de villes par pays avec:
SELECT country_code, count (city_name)
Des villes
GROUP BY country_code

Joins

Normalement, une base de données relationnelle implique de nombreux tableaux, reliés sur les touches communs. Nous devrons peut-être parfois d'exécuter des requêtes sur plusieurs tables. Lier, ou de se joindre, les tables peuvent être effectuées en utilisant des techniques différentes, nous allons nous concentrer sur une méthode simple impliquant une comparaison clé.
Dans la requête suivante, la clause FROM contient une liste séparée par des virgules des tables. Dans la liste des colonnes, nous utilisons le nom de la table et un point comme un préfixe avant chaque nom de colonne (pas strictement nécessaire si chaque nom de colonne n'est présente que dans un tableau).
SELECT VILLES.Nom, cities.population, countries.country_name 
Des villes, des pays 
OÙ cities.country_code = countries.country_code LIMIT 0,30

Conclusion

Le langage SQL a beaucoup plus à ce que les déclarations de base que nous avons abordés ici. Toutefois, cet article a couvert les bases de SQL et comment utiliser l'outil de phpMyAdmin pour faire progresser votre connaissance de SQL.

À propos de l'auteur

Marc Delisle a commencé à contribuer à phpMyAdmin en Décembre 1998, quand il a fait la première version multi-langue. Il a participé activement depuis mai 2001, en ​​tant que développeur et administrateur du projet.
Il a travaillé depuis 1980 au Collège de Sherbrooke, Québec, Canada, en tant que programmeur de l'application et le gestionnaire de réseau. Il a également été mise en réseau de l'enseignement, la sécurité, les serveurs Linux, et le développement d'applications PHP / MySQL.

0 commentaires:

Enregistrer un commentaire