[Mise à jour le 8/3/2024]
Une base de données peut être définie comme un moyen de stocker des informations de manière structurée. L’objectif d’une base de données et de permettre à des utilisateurs ou à des programmes de partager des informations. Grâce à un système de gestion de base de données (SGBD1)), il est possible d’ajouter des informations, de gérer plusieurs bases, de consulter les informations contenues … Le SGBD utilisé avec PHP2) est MySQL3). Les informations contenues dans un SGBD sont hiérarchisées et respectent certains formats.
Exemple
Ordres SQL | Aspect du langage |
---|---|
CREATE - ALTER - DROP - RENAME TRUNCATE | Définition des données |
INSERT - UPDATE - DELETE - LOCK TABLE | Manipulation des données |
SELECT | Interrogation des données |
GRANT - REVOKE - COMMIT - ROLLBACK - SAVEPOINT SET TRANSACTION | Contrôle des données |
Type MySQL | Type de donnée | Remarques |
---|---|---|
INT | Entier | |
FLOAT | Réel | |
VARCHAR(M) | Texte court | M : nombre de caractères, min = 1, max = 255 |
TEXT | texte long | |
DATE | Date | format jour, mois, année |
TIME | heure | format HH:MM:SS |
Vérification de la version de mySQL
-- Entrer la commande à la suite du prompt mysql> mysql> SELECT --version();
Syntaxe
CREATE DATABASE nom_base ; -- Création DROP DATABASE nom_base; -- Destruction
Exemple
CREATE DATABASE test;
Syntaxe
USE nom_base ;
Exemple
USE test;
Syntaxe
CREATE TABLE nom_table(nom_champ1 type_champ1, nom_champ2 type_champ2, …); -- Création DROP TABLE nom_table; -- Destruction
Exemple
CREATE TABLE news( -- Ecriture en colonnes pour plus de lisibilité id INT, -- NOT NULL impose la saisie d'une valeur titre VARCHAR(255) NOT NULL, contenu TEXT NOT NULL);
Syntaxe
INSERT INTO nom_table (champ1, champ2,..., champn) VALUES('val_champ1', 'val_champ2', …,val_champn) ; ou INSERT INTO nom_table VALUES('val_champ1', 'val_champ2', …,val_champn) ;
Exemple
INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max, commentaires) VALUES('Battlefield 1942', 'Patrick', 'PC', 45, 50, '2nde guerre mondiale');
Résultat dans la console : Query OK, 1 row affected (0.00 sec)
Résultat dans phpMyAdmin : ajout de l'entrée 52 à la fin de la table
Syntaxe
DELETE FROM nom_table WHERE nom_champ = valeur ;
DELETE FROM jeux_video WHERE nom='Battlefield 1942';
Résultat dans la console : Query OK, 1 row affected (0.00 sec)
Syntaxe
UPDATE nom_table SET champ1=val_champ1, champ2=val_champ2, …,champn=val_champn) WHERE condition ;
Exemple
UPDATE jeux_video SET prix = 10, nbre_joueurs_max = 32 WHERE ID = 51;
Résultat dans la console : Query OK, 1 row affected (0.00 sec)
Résultat dans phpMyAdmin : modification de l'entrée 51
L'une des commandes les plus importantes de SQL utilise le triplet SELECT-FROM-WHERE qui permet de rechercher des informations au sein des tables d'une base de données.
Synthaxe
Syntaxe
SELECT * FROM <nom_table>; -- * extrait toutes les colonnes de la table
Exemple
SELECT * FROM jeux_video;
Résultat partiel dans la console
Syntaxe
SELECT champ1, champ2,...,champn FROM <nom_table>;
Exemple
SELECT nom, commentaires FROM jeux_video;
Résultat partiel dans la console
Syntaxe
SELECT champ1, champ2,...,champn FROM nom_table WHERE condition;
Exemple
SELECT nom,commentaires,prix FROM jeux_video WHERE prix<30;
Résultat partiel dans la console
Syntaxe
SELECT champ1, champ2,...,champn FROM <nom_table> WHERE nom_champ = condition ORDER BY champ(s);
Exemple
SELECT SELECT nom,commentaires,prix FROM jeux_video WHERE possesseur='Florent' ORDER BY prix;
Résultat partiel dans la console
Syntaxe
SELECT champ1, champ2,...,champn FROM <nom_table> WHERE nom_champ = condition ORDER BY champ(s);
Exemple
SELECT SELECT nom,commentaires,prix FROM jeux_video WHERE possesseur='Florent' ORDER BY prix LIMIT 0,10;
Résultat dans la console
Syntaxe
-- Création de l'utilisateur CREATE USER nom_utilisateur@url IDENTIFIED BY 'password'; -- Affectation des droits GRANT SELECT, INSERT, UPDATE,DELETE ON nom_base.* TO nom_utilisateur@url;
Exemple
-- Création de l'utilisateur CREATE USER db_utilisateur@localhost IDENTIFIED BY '12345678'; -- Affectation des droits GRANT SELECT, INSERT, UPDATE,DELETE ON coureurs.* TO db_utilisateur@localhost;
A rédiger