Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Merise
  3. SQL (Structured Query Language)
Extrait - Merise Guide pratique (4e édition) - (modélisation des données et des traitements, manipulations avec le langage SQL, conception d’une application mobile Android ou iOS)
Extraits du livre
Merise Guide pratique (4e édition) - (modélisation des données et des traitements, manipulations avec le langage SQL, conception d’une application mobile Android ou iOS) Revenir à la page d'achat du livre

SQL (Structured Query Language)

Présentation du langage SQL

Au chapitre Le modèle physique des données de ce livre, nous avons vu que le modèle physique des données permet d’établir l’ensemble des relations (ou fichiers) constituant la base de données. Si Merise nous aide à la conception et à l’élaboration de la base de données, le langage SQL nous aide, quant à lui, à manipuler les données ou la structure de la base de données.

1. Historique

SQL est élaboré dans les années 1970 d’après les théories de l’informaticien britannique E.F. Codd.

Codd est considéré comme l’inventeur du modèle relationnel. Il travaille à l’époque au laboratoire de recherche d’IBM à San José en Californie. IBM met du temps à croire en la théorie d’un langage d’interrogation des données structuré et ce sont des entreprises concurrentes telles qu’Oracle qui, les premières, misent sur le langage SQL.

De par sa nature simple et presque « naturelle », SQL ne tarde pas à devenir un standard de fait dans la manipulation des données.

Il est rapidement normalisé, ce qui garantit son indépendance vis-à-vis des systèmes de gestion de bases de données relationnelles (SGBDR). Ainsi...

Le langage de manipulation des données

Commençons par examiner les ordres du langage de manipulation de données.

Pour les exemples, nous utiliserons les trois fichiers tirés de ces modèles relationnels :

Clients(NumCli, Nom, Prénom, Adresse, Cp, Ville, Téléphone)

Achats(#NumCli, #NumArt, Date, Qté)

Articles(NumArt, Désignation, Catégorie, Prix)

Voici un extrait du contenu des fichiers :

Clients

NumCli

Nom

Prénom

Adresse

Cp

Ville

Téléphone

 

1

Auguy

Jean

1 rue droite

30000

Nîmes

0485957575

 

2

Baptiste

Jean-Luc

7 rue courbe

12000

Rodez

0565428775

 

3

Baptiste

Amandine

Avenue Foch

12000

Rodez

 

 

4

Collard

Marie-Claire

Rue d’Espagne

66000

Perpignan

 

 

5

Durand

Raymond

Rue des oliviers

30000

Nîmes

0475145425

 

Achats

NumCli

NumArt

Date

Qté

 

1

1

30/01/2024

1

 

1

5

30/01/2024

4

 

4

3

29/01/2024

1

 

4

2

30/01/2024

2

 

5

2

01/02/2024

2

 

Articles

NumArt

Désignation

Catégorie

Prix

 

1

Charlie Winston

CD

12

 

2

Caméra Café

DVD

19

 

3

WebCam

Informatique

24

 

4

Graveur

Informatique

38

 

5

Clé USB 16G

Informatique

18

1. Sélection des données

La commande SELECT permet de réaliser une lecture d’informations selon certains critères. Elle retourne les résultats dans un tableau. Elle permet de sélectionner une ou plusieurs colonnes d’une ou de plusieurs tables.

Syntaxe

SELECT [ALL / DISTINCT] nom_attribut1 [, nom_attribut2, ...] 
FROM nom_table1 [, nom_table2, ...] 
WHERE <condition de recherche>; 

L’option ALL (l’option par défaut) permet de sélectionner l’ensemble des lignes satisfaisant à la condition de recherche.

L’option DISTINCT permet de ne conserver que des lignes distinctes, en éliminant les doublons.

La liste des attributs (nom_attribut1, nom_attribut2…) indique la liste des colonnes sélectionnées, séparées par des virgules. Pour sélectionner l’ensemble des colonnes d’une table, il est possible d’utiliser l’option *.

La liste des tables (nom_table1, nom_table2…) indique l’ensemble des tables, séparées par des virgules, sur lesquelles portent les opérations.

La condition de recherche...

Le langage de définition des données

SQL fournit les instructions suivantes permettant respectivement de créer, de supprimer, de modifier, de renommer des fichiers.

  • CREATE

  • DROP

  • ALTER

  • RENAME

1. La création de tables

La création d’une table se réalise avec l’ordre CREATE.

Syntaxe

CREATE TABLE "nom de table" 
("colonne 1" "type de données pour la colonne 1", 
"colonne 2" "type de données pour la colonne 2", 
... ); 

Créer la table Articles :

CREATE TABLE Articles 
    (NumArt INTEGER NOT NULL, 
    Désignation CHAR(60) NOT NULL, 
    Catégorie CHAR(30), 
    Prix INTEGER); 

a. Définition de la clé primaire

Dans la table Articles, la clé primaire est NumArt. Voici comment une clé primaire est définie avec SQL :

CREATE TABLE Articles 
    (NumArt INTEGER NOT NULL, 
    Désignation CHAR(60) NOT NULL, 
    Catégorie CHAR(30), 
    Prix INTEGER 
    CONSTRAINT C1 PRIMARY KEY (NumArt)); 

b. Définition des clés étrangères

La table Achats contient deux clés étrangères :

  • NumCli

  • NumArt

Créer la table Achats :

CREATE TABLE Achats 
    (NumArt INTEGER NOT NULL, ...

Le langage de contrôle des données

Le langage de contrôle des données comprend deux ordres :

  • GRANT

  • REVOKE

GRANT permet de donner des droits à un utilisateur sur une base de données, REVOKE supprime des droits acquis.

1. L’ordre GRANT

Cet ordre utilise différentes options pour définir au mieux les droits.

Option

Explication

ALTER

Donne le droit de modifier la structure d’une table.

DELETE

Donne le droit de supprimer des enregistrements.

INSERT

Donne le droit d’insérer des enregistrements dans une table.

SELECT

Donne le droit d’exécuter des requêtes de sélection.

UPDATE

Donne le droit de modifier les données d’une table.

ALL

Donne tous les droits.

Donner le droit à l’utilisateur Jean-Luc de modifier la structure de la table Clients :

GRANT ALTER 
    ON Clients 
    TO Jean-Luc; 

Donner le droit à l’utilisateur Jean-Luc d’afficher le contenu de la table Clients :

GRANT SELECT 
    ON Clients 
    TO Jean-Luc; 

Donner tous les droits à l’utilisateur Jean-Luc sur la table Clients :

GRANT ALL 
    ON Clients 
    TO Jean-Luc; 

Permettre à Jean-Luc de lire, de modifier, d’insérer dans la table Clients :

GRANT SELECT, UPDATE,INSERT 
    ON Clients 
    TO Jean-Luc;...

Mise en pratique avec MySQL

Tous les exemples donnés précédemment peuvent être testés avec un vrai serveur de base de données tel que MySQL ou MariaDB.

MySQL ou MariaDB sont des serveurs réputés pour plusieurs raisons :

  • Ils existent sur de nombreuses plates-formes (Linux, Unix, Windows).

  • Ils supportent une grande montée en charge, et sont capables de gérer des entrepôts de données de plusieurs téraoctets.

  • Ils peuvent répondre aux demandes de performances les plus exigeantes, et traiter un volume de requêtes s’exprimant en milliard de requêtes par jour.

  • Ils offrent des fonctions de sécurité qui garantissent une très forte protection des données.

  • Ils sont open source et gratuits en licence « développement », payants en exploitation. Le coût de possession est très inférieur à ce que propose la concurrence.

Le site officiel français de MySQL est : https://www.mysql.com/fr/

Le site officiel français de MariaDB est : https://mariadb.org

Il existe des packs logiciels installant une suite logicielle permettant d’installer un serveur MySQL sans effort. Voici certains de ces packs :

Ces différents packs intègrent le serveur web Apache, le langage PHP et MySQL ou MariaDB. Ils offrent aussi des outils de configuration et de gestion.

1. Installation du serveur de base de données

Le pack utilisé dans...