Ressources informatiques

Ressources informatiques

Ressources informatiques

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

Diagramme de classes Base meubleFournisseur
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

Liste des requêtes
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
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   |
+--------+-----------+-----------+

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 |
+--------+-----------------+----------+-----------+

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
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 |
+--------+-----------------+----------+
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 |
+--------+----------+-----------+
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 |
+-----------+---------------+