BDDR - MySQL - Requêtes dans la console
[Mise à jour le 8/3/2024]
- Ressources
- Lectures connexes
- Mots-clés : SGBD, base, table, enregistrement, champ, requêtes, SQL.
1. Introduction
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.
PREALABLE
* MySQL doit être installé sur un serveur tel qu'Apache sous WAMP.Pour tester des requêtes SQL avec l'interface en ligne de commandes sous Windows :
- Entrer le chemin vers mysql.exe dans les variables d'environnement ou se placer dans le répertoire
c:\wamp64\bin\mysql\mysqlx.x.x\bin (sous wamp)
- Se connecter avec la commande : mysql -u root -p (utilisateur root et pas de mot de passe)
Exemple
2. Le langage SQL
2.1 Principales instructions SQL
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 |
2.2 Types couramment utilisés
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 |
2.3 Ecriture de commentaires
- Source : SQL.sh
3. Débuter avec les requêtes SQL
3.1 Extrait de la table "jeux_video" de la base "test" utilisée dans les exemples
Vérification de la version de mySQL
- *.sql
-- Entrer la commande à la suite du prompt mysql> mysql> SELECT --version();
3.2 Création, connexion et destruction
- Création et destruction d'une base de données
Syntaxe
- *.sql
CREATE DATABASE nom_base ; -- Création DROP DATABASE nom_base; -- Destruction
Exemple
- ex1.sql
CREATE DATABASE test;
- Connexion à une base de données
Syntaxe
- *.sql
USE nom_base ;
Exemple
- ex.sql
USE test;
- Création et destruction d'une table
Syntaxe
- *.sql
CREATE TABLE nom_table(nom_champ1 type_champ1, nom_champ2 type_champ2, …); -- Création DROP TABLE nom_table; -- Destruction
Exemple
- ex1.sql
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);
3.3 Manipulation des données
- Mots-clés : INSERT INTO , VALUES, DELETE, FROM, WHERE, UPDATE, SET
- Insertion d'une entrée dans une table
Syntaxe
- *.sql
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
- ex.sql
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
- Suppression d'une entrée dans une table
Syntaxe
- *.sql
DELETE FROM nom_table WHERE nom_champ = valeur ;
- ex.sql
DELETE FROM jeux_video WHERE nom='Battlefield 1942';
Résultat dans la console : Query OK, 1 row affected (0.00 sec)
- Modification d'une ou plusieurs entrées dans une table
Syntaxe
- *.sql
UPDATE nom_table SET champ1=val_champ1, champ2=val_champ2, …,champn=val_champn) WHERE condition ;
Exemple
- ex.sql
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
3.4 Interrogation des données
- Mots-clés : SELECT, FROM, WHERE, ORDER BY (DSC), LIMIT
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
FROM table(s)
[WHERE conditions]
- Lecture de l'ensemble des champs et de l'ensemble des enregistrements d'une table
Syntaxe
- *.sql
SELECT * FROM <nom_table>; -- * extrait toutes les colonnes de la table
Exemple
- ex.sql
SELECT * FROM jeux_video;
Résultat partiel dans la console
- Lecture d’un sous-ensemble des champs et de l’ensemble des enregistrements d'une table
Syntaxe
- *.sql
SELECT champ1, champ2,...,champn FROM <nom_table>;
Exemple
- *.sql
SELECT nom, commentaires FROM jeux_video;
Résultat partiel dans la console
- Lecture d’un sous-ensemble des champs d’une sélection des enregistrements, sélection selon une condition
Syntaxe
- *.sql
SELECT champ1, champ2,...,champn FROM nom_table WHERE condition;
Exemple
- *.sql
SELECT nom,commentaires,prix FROM jeux_video WHERE prix<30;
Résultat partiel dans la console
- Lecture d’un sous-ensemble ordonné des champs d’une sélection des enregistrements, sélection selon une condition
Syntaxe
- *.sql
SELECT champ1, champ2,...,champn FROM <nom_table> WHERE nom_champ = condition ORDER BY champ(s);
Exemple
- *.sql
SELECT SELECT nom,commentaires,prix FROM jeux_video WHERE possesseur='Florent' ORDER BY prix;
Résultat partiel dans la console
- Lecture d’un sous-ensemble ordonné et limité des champs d’une sélection des enregistrements, sélection selon une condition
Syntaxe
- *.sql
SELECT champ1, champ2,...,champn FROM <nom_table> WHERE nom_champ = condition ORDER BY champ(s);
Exemple
- ex.sql
SELECT SELECT nom,commentaires,prix FROM jeux_video WHERE possesseur='Florent' ORDER BY prix LIMIT 0,10;
Résultat dans la console
3.5 Créer un utilisateur
Syntaxe
- *.sql
-- 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
- ex.sql
-- 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;
3.6 Contrôle des données
A rédiger
4. phpMyAdmin
Résumé
- Les requêtes SQL commençant par SELECT permettent de récupérer des informations dans une base de données.
- Le langage SQL propose de nombreux outils pour préciser nos requêtes, à l'aide notamment des mots-clés WHERE(filtre), ORDER BY(tri) et LIMIT(limitation du nombre de résultats).