INFOS-AREA
  Créer une base de données MySQL
 

Les bases de données

Après avoir appris à récupérer les données saisies par l'utilisateur, on a cherché un moyen de les stocker dans le but de s'en servir plus tard. Certes, on a trouvé le moyen de le stocker : les écrire dans des fichiers. Toutefois les stocker dans les bases de données nous permet de faire tout un tas de manipulations que l'on ne pourra que difficilement faire avec les fichiers.

Déjà, dans une base de données, les données sont plus organisées et structurées de façon ordonnée. Ce qui les rend facilement accessibles. Mais qu'est ce donc une base de données ?

Une base de données est un tout simplement un ensemble de données stockées dans des mémoires de masse sous une forme structurée. Le but de l'établissement d'une base de données est qu'elle soit accessible par des applications différentes et des utilisateurs différents.

Une base de données est d'abord faite pour être gérée. Le chef d'orchestre pour la gestion d'une base de données est un outil appelé SGBD ou Système de Gestion de Base de Données. Il est composé d'une base de données et d'un réseau de poste de travail consultant ou mettant à jour les données.

La base de données sera alors composée de plusieurs tableaux appelé tables. Chaque libellé du tableau est appelé champ. Et chaque ligne d'une table est un enregistrement. Pour identifier chaque enregistrement d'une table, il y a ce qu'on appelle clé primaire. C'est en générale une sorte de numéro unique qui différencie un enregistrement des autres enregistrements de la table.

Voici un exemple de table :

Table client
idclient nomclient prenomclient mailclient
1 Brown James james@brown.fr
2 Schröder Helmut helmut@yes.com

SGBD

Généralement, on parle plutôt de Système de Gestion de Base de Données Relationnel ou SGBDR qui est SGBD permettant d'introduire le concept de relation entre les différentes tables.

Les principaux buts d'un SGBDR sont donc :

Consultation optimisées des données

On peut avoir différentes options classiques sur la manipulation des données : consultation, insertion, modification et suppression.

Gestion des accès aux données

Des systèmes de privilèges sont intégrés dans un SGBD, ce qui leur permettent de gérer l'autorisation d'accès aux données. Un SGBD possède des mécanismes intégrés permettant de gérer les accès simultanés sans que les utilisateurs n'aient besoin de s'en occuper.

Le maintient de la cohérence des données entre elles et le contrôle d'intégrité

La cohérence des données est basée sur le respect des contraintes d'intégrité qui sont des conditions auxquelles doivent satisfaire les données pour être acceptées dans la base. Les contraintes d'intégrité sont contrôlées par le moteur du SGBD :

Au niveau de chaque champ par exemple, l'âge ne doit pas prendre une valeur négative.

Au niveau de chaque table, deux personnes ne peuvent pas avoir à la fois le même nom et le même prénom

Toutefois, la redondance des données n'est pas forcément entièrement perçue automatiquement par les SGBDR. Il faut des manipulations spécifiques pour trouver les anomalies. Ce qui semble être une grosse lacune parce que les erreurs sont déjà présentes dans la base.

Le langage SQL

Par définition, une base de données est structurée mais cette structuration doit avoir un caractère universel. Autrement dit, il ne faut pas que la structure soit adaptée seulement à une application particulière mais qu'elle puisse être utilisable par des applications distinctes.

D'où la conception d'un langage standard pour la manipulation des données. Il s'agit du langage SQL ou Standard Query Language. C'est un langage standard de requêtes qui permet d'interroger les bases de données de manière simple. Le SQL est facilement compréhensible par l'humain et par les différents SGBDR.

D'une manière générale, les instructions pour l'interrogation de la base constituent ce que l'on appelle une requête SQL. Une requête SQL pourrait être alors une modification, une insertion, une suppression, ou une sélection de données, voire même une création de table. On verra tout cela de plus près dans la partie suivante.

Système de base de données MySQL

MySQL est un SGBDR qui enregistre des informations par définition même d'une base de données et PHP constitue le langage intermédiaire entre cette base et l'utilisateur de la base en question.

Dans ce chapitre nous verrons dans le cas pratique la manipulation d'une base de données. Pour cela nous allons l'illustrer à partir de divers exemples. Ces derniers seront traités sur phpmyadmin d'easyPHP.

Création d'une base de données

La première étape de notre traitement sera donc de créer la base de données elle-même. Avant tout n'oubliez pas de voire si easyPHP est bien démarré. Sinon, il faut le faire. Une fois qu'easyPHP est en marche, allez dans l'espace administration et cliquer sur "gestion de base de données" pour aller vers l'interface phpmyadmin.

Dans l'interface phpMyadmin, créer une base de données en spécifiant son nom : base1

Créer une base de données

Création de table : Pour créer une table dans une base de données, il faut lui spécifier son nom.

Créer une table

Spécification des champs

Ajouter des champs dans une base de données

Chaque table d'une base de données comporte des informations relatives à un même sujet et chaque colonne ou champ d'une table contient des faits individuels relatifs au sujet de la table.

En esquissant les champs des tables, il faut garder à l'esprit qu'il doit y avoir une relation directe entre chaque champ et les sujets de la table. Il est fortement recommandé de ne pas inclure des données dérivées ou calculées. C'est à dire des données qui sont les résultats d'une expression. On a toujours intérêt à stocker les informations de la manière la plus basique et la plus logique possible.

Les champs ont chacun un nom unique et ils sont tous associés à un type de données particulier.

Les champs peuvent donc être de type texte, entier, booléen, etc selon la nature des données qu'ils vont contenir.

Quelques exemples de types de données en Mysql

  • VARCHAR : Chaine de caractères
  • BOOL : de type booléen (vrai / faux)
  • DATE : de type date
  • etc.

Dans une table élève par exemple, voici un exemple de ce que pourrait être une liste de champs :

Table élève
Champs type taille/valeur Signification du type Signification du champ
numero INT 5 entier Numéro d'identification de l'élève
nom VARCHAR 30 chaine de caractère Nom de l'élève
prenom VARCHAR 30 chaine de caractère Prénom de l'élève
adresse TEXT   texte Adresse de l'élève

Remarquons que certain type peut avoir une taille / valeur. C'est le cas du type VARCHAR par exemple. Spécifier un type VARCHAR de taille 30 pour le champs nom signifie que le nombre de caractère pour un nom ne peut pas dépasser 30.

Clé primaire d'une base de données

Après avoir créé les champs, il nous faut définir un moyen d'identifier chaque élève. Cette valeur doit être unique. Si on prend les champs nom par exemple, des élèves issu de la même famille peuvent avoir le même nom, donc impossible de les identifier juste par leur nom.

On prendra alors le numéro de l'élève comme clé primaire de la table élève. Pour cela, passer la table en mode structure et cliquer sur primary ou sur la petite clé la version de votre logiciel.

La requête de création de table

Comme l'on a déjà dit dans le chapitre précédent, les requêtes SQL sont des moyens d'interrogation de la base de données. Concrètement, c'est via les requêtes SQL que l'utilisateur passe ses commandes à la base de données en lui disant ce qu'il veut avoir :

Une requête traduite en langage humain serait quelque chose du genre "Donnez-moi s'il vous plait la liste de tous les élèves qui se trouvent dans la table eleve".

Ainsi le SGBDR est là pour nous servir. On peut lui demander de nous remettre une liste de données, d'insérer une liste de données, etc.

Précédemment, on a créé la table manuellement via l'interface phpMyadmin, mais il y a aussi un autre moyen pour créer une table. Nous pouvons nous même dire directement au système de créer la table à l'aide d'une requête SQL.

CREATE TABLE `ecole`.`eleve` (
`numero` INT( 5 ) NOT NULL ,
`nom` VARCHAR( 30 ) NOT NULL ,
`prenom` VARCHAR( 30 ) NOT NULL ,
`datenaissance` DATE NOT NULL ,
`adresse` TINYINT NOT NULL ,
PRIMARY KEY ( `numero` )
)

Dans cet exemple ecole est la base de données et eleve est le nom de la table. Le mot clé à retenir pour la création de table est CREATE TABLE. Il ne faut pas oublier de séparer la définition de chaque champ par une virgule.

Insertion de données dans un table : INSERT INTO

En spécifiant le nom de la table, la commande INSERT INTO permet d'insérer des données sous forme d'enregistrements dans une table. Les valeurs à insérer sont listées dans la clause values et séparées par des virgules.

INSERT INTO `eleve` (
`numero` ,
`nom` ,
`prenom` ,
`adresse`
)
VALUES (
'1', 'Cassidy', 'Hope', 'Appartement 4 21000 Rue de la charité Pays'
);

Sélection de données : SELECT

On peut avoir la liste de tous les élèves de la table élève en utilisant le mot clé SELECT, suivie de la clause FROM, puis du nom de la table.

La requête associée est donc :

SELECT * FROM `eleve` ;

L'utilisation du signe * veut dire que l'on veut avoir tout les enregistrements. Dans le cas où on veut seulement avoir les enregistrements répondant à certains critères, on emploie le mot clé WHERE.

On spécifie une certaine condition dans la clause where :

SELECT * FROM `eleve` WHERE `numero` =1.

Cette requête demande à la base de données de sélectionner l'élève numéro 1, et de nous retourner le résultat.

Il peut y avoir plusieurs conditions :

SELECT *
FROM `eleve`
WHERE `nom` LIKE 'Cassidy'
AND `prenom` LIKE 'Hope'

Traduite en langage humain, cela signifie qu'il faut sélectionner et afficher tout les élèves dont le nom est "Cassidy" et dont le prénom est "Hope"

Modification de données : UPDATE

Le mot clé utilisé pour la modification des données est UPDATE. En l'associant à la clause WHERE, il est possible de rechercher des données ayant certains critères et les modifier.

Pour modifier le prénom de l'élève numéro 1 par exemple on utilisera la syntaxe suivante :

UPDATE `eleve` SET `prenom` = 'Vanessa' WHERE `eleve`.`numero` =1 ;

Il est aussi possible de modifier plusieurs champs d'un seul coup avec cette syntaxe :

UPDATE `eleve` SET `nom` = 'Paradis', `prenom` = 'Vanessa' WHERE `eleve`.`numero` =1 ;

Ici, on modifiera le nom et le prénom à la fois. Il ne faut pas oublier que les champs sont toujours séparés par des virgules, contrairement aux conditions, qui sont séparées par des opérateurs booléens (AND, OR, ...)

Suppression de données : DELETE

On peut procéder de la même façon pour supprimer un (ou plusieurs) enregistrement(s) sauf que cette fois ci on utilisera les mots clé DELETE FROM.

DELETE FROM `eleve` WHERE `numero` =1 ;

La requête signifie qu'il faut supprimer de la table eleve l'élève dont 'numéro' = '1'.


 
  Aujourd'hui sont déjà 5 visiteurs (9 hits) Ici! ;  
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement