Effectuer des requêtes SQL
Documentation : MariaDB Documentation : SQL Statements
Pour installer et utiliser un serveur MariaDB
(connexion, gestion des utilisateurs, droits d'accès), consultez l'article : Installer et utiliser un serveur MariaDB
Diagramme de classes et MR de la Base de Données (BD) servant de support aux requêtes
fournisseur (fou_id:int, fou_nom:string, fou_ville:string) meuble (meu_id:int, meu_designation:string, meu_prix:float, meu_fouId=>fournisseur.fou_id)
Requêtes SQL
Créer une BD | Supprimer une BD | Utiliser une BD |
Créer une table | Supprimer une table | Ajouter des données |
Supprimer des données | Modifier des données | Afficher (extraire) des données |
Créer une BD
Exemple
CREATE DATABASE meubleFournisseur;
Supprimer une BD
Exemple
DROP DATABASE IF EXISTS meubleFournisseur;
Utiliser une BD
Exemple
USE meubleFournisseur;
Créer une table
Exemples
Une table possédant un clé étrangère DOIT ETRE CREE APRES la table possédant la clé primaire à laquelle cette clé étrangère fait référence. Ces deux clés doivent être exactement du même type.
CREATE TABLE fournisseur ( fou_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, fou_nom VARCHAR(20) UNIQUE NOT NULL, fou_ville VARCHAR(60) NOT NULL ) ENGINE = INNODB;
CREATE TABLE meuble ( meu_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, meu_designation VARCHAR(80) NOT NULL, meu_prix DECIMAL(6,2) NOT NULL DEFAULT '9999.99', meu_fouId SMALLINT UNSIGNED NOT NULL, FOREIGN KEY (meu_fouId) REFERENCES fournisseur(fou_id) ) ENGINE = INNODB;
Supprimer une table
Exemple
Une table possédant un clé étrangère DOIT ETRE SUPPRIMEE AVANT la table possédant la clé primaire à laquelle cette clé étrangère fait référence.
DROP TABLE IF EXISTS meuble;
Ajouter de données
Exemples
- Table fournisseur
INSERT INTO fournisseur (fou_nom, fou_ville) VALUES ('G Meubles','Arpajon'), ('B Meubles','Etampes'), ('H Meubles','Dourdan');
Résultat :
SELECT * FROM fournisseur; +--------+-----------+-----------+ | fou_id | fou_nom | fou_ville | +--------+-----------+-----------+ | 1 | G Meubles | Arpajon | | 2 | B Meubles | Etampes | | 3 | H Meubles | Dourdan | +--------+-----------+-----------+
- Table meuble
- L'identifiant du fournisseur est connu
Pour pouvoir ajouter un meuble dans la table meuble son fournisseur doit déjà avoir été créé.
INSERT INTO meuble (meu_id, meu_designation, meu_prix, meu_fouId) VALUES ('123','chaise verte', '40.10', '1'), ('456','chaise bleue', '40.90', '1'), ('4401','chaise rouge',' 50.10', '2'), ('5003','table verte', '500', '3');
Résultat :
SELECT * FROM meuble; +--------+-----------------+----------+-----------+ | meu_id | meu_designation | meu_prix | meu_fouId | +--------+-----------------+----------+-----------+ | 123 | chaise verte | 40.10 | 1 | | 456 | chaise bleue | 40.90 | 1 | | 4401 | chaise rouge | 50.10 | 2 | | 5003 | table verte | 500.00 | 3 | +--------+-----------------+----------+-----------+
- Seul le nom du fournisseur est connu
Pour comprendre la syntaxe, il peut être utile de consulter au préalable : Afficher (extraire) des données
INSERT INTO meuble (meu_id, meu_designation, meu_prix, meu_fouId) SELECT '210','table bleue', '400.10', fou_id FROM fournisseur WHERE fou_nom='G Meubles';
Résultat :
SELECT * FROM meuble; +--------+-----------------+----------+-----------+ | meu_id | meu_designation | meu_prix | meu_fouId | +--------+-----------------+----------+-----------+ | 123 | chaise verte | 40.10 | 1 | | 210 | table bleue | 400.10 | 1 | | 456 | chaise bleue | 40.90 | 1 | | 4401 | chaise rouge | 50.10 | 2 | | 5003 | table verte | 500.00 | 3 | +--------+-----------------+----------+-----------+
Supprimer des données
Exemple
DELETE FROM meuble WHERE meu_id = 210;
Résultat : la table bleue a été supprimée.
SELECT * FROM meuble; +--------+-----------------+----------+-----------+ | meu_id | meu_designation | meu_prix | meu_fouId | +--------+-----------------+----------+-----------+ | 123 | chaise verte | 40.10 | 1 | | 456 | chaise bleue | 40.90 | 1 | | 4401 | chaise rouge | 50.10 | 2 | | 5003 | table verte | 500.00 | 3 | +--------+-----------------+----------+-----------+
Modifier des données
Exemple
UPDATE meuble SET meu_prix = 51.10 WHERE meu_id = 4401;
Résultat : le prix de la chaise rouge a augmenté.
SELECT * FROM meuble WHERE meu_id = 4401; +--------+-----------------+----------+-----------+ | meu_id | meu_designation | meu_prix | meu_fouId | +--------+-----------------+----------+-----------+ | 4401 | chaise rouge | 51.10 | 2 | +--------+-----------------+----------+-----------+
Afficher (extraire) des données
Exemples
- Identifiant, désignation et prix de chaque meuble
SELECT meu_id, meu_designation, meu_prix FROM meuble; +--------+-----------------+----------+ | meu_id | meu_designation | meu_prix | +--------+-----------------+----------+ | 123 | chaise verte | 40.10 | | 456 | chaise bleue | 40.90 | | 4401 | chaise rouge | 51.10 | | 5003 | table verte | 500.00 | +--------+-----------------+----------+
- Jointure entre 2 tables : identifiant, prix et fournisseurs des meubles dont le prix est inférieur à 50 € classés par ordre croissant des prix
SELECT meu_id, meu_prix, fou_nom FROM meuble INNER JOIN fournisseur ON (meu_fouId = fou_id) WHERE meu_prix <'50' ORDER BY meu_prix; +--------+----------+-----------+ | meu_id | meu_prix | fou_nom | +--------+----------+-----------+ | 123 | 40.10 | G Meubles | | 456 | 40.90 | G Meubles | +--------+----------+-----------+
- Jointure entre 2 tables : nombre de meubles par fournisseur classés par ordre alphabétique
SELECT fou_nom, COUNT(meu_id) FROM meuble INNER JOIN fournisseur ON (meu_fouId = fou_id) GROUP BY fou_nom ORDER BY fou_nom ASC; +-----------+---------------+ | fou_nom | COUNT(meu_id) | +-----------+---------------+ | B Meubles | 1 | | G Meubles | 2 | | H Meubles | 1 | +-----------+---------------+