Skip to content

Introduction à SQL

Cette documentation a été écrite il y a bien longtemps et n'est plus mise à jour. Comprenez que les informations que vous y trouverez peuvent avoir changé de manière conséquente !

Généralités :

Base de données et SGBD

Une base de données est un espace de stockage dans lequel les données sont rangées de manière structurées et non redondantes.

Un système de gestion de bases de données (SGBD) est un logiciel permettant de manipuler les bases de données. Les SGBD les plus connus sont Oracle, MySQL et SQL Server pour les entreprises, et Access, LibreOffice Base pour l'utilisation personnelle.

Les diverses applications de l'entreprise interrogent le SGBD de cette manière :

+------+       +-------+        +----+
|Client|<----->|Serveur|<------>|SGBD|
+------+       +-------+        +----+

Un SGBD contient une ou plusieurs bases de données. Les bases de données contiennent des tables (tableaux) avec des colonnes et des lignes.

Types de données :

Les types de données les plus simples sont :

Les données texte, les nombres entiers, les nombres à virgule, les dates, les booléens (oui ou non).

Cas étudiants :

Le contexte :

Vous travaillez pour une école qui souhaite créer une base de données pour stocker les étudiants, les matières auxquelles ils sont inscrits et leurs notes à chaque épreuve.

Structure de la base :

Etudiant (numetu, nom, prenom, datenaiss, rue, cp, ville)

Matiere (codemat, libelle, coef)

Epreuve (numepreuve, dateepreuve, lieu, codemat#)

Notation (numetu#, numepreuve#, note)

+---------------+                            +------------------+
|Etudiant       |                            |Epreuve           |
+---------------+                            +------------------+
|numetu : int   |                            |numepreuve : int  |
|nom : char     |0..*                    0..*|dateepreuve : date|
|prenom : char  |----------------+-----------|lieu : char       |
|datenais : date|                |           +------------------+
|rue : char     |           +-----------+         1..*|
|cp : char      |           |Notation   |             |
|ville : char   |           +-----------+             |
+---------------+           |Note: float|    +---------------+
                            +-----------+    |Matiere        |
                                             +---------------+
                                             |codemat : char |
                                             |libelle : char |
                                             |coef : float   |
                                             +---------------+

Requêtes SQL

Pour que tout le monde fasse les mêmes requêtes, prenez la base de données sur ce site : http://cours.adminrezo.fr/BTS2/SQL/etudiants.odb

Select :

Les requêtes SQL permettent de trouver ou de manipuler des informations dans une base de données.

D'une manière générale, une requête est composée comme ceci :

select *colonne* from *table*

On peut aussi demander plusieurs colonnes depuis plusieurs tables :

select *colonne1, colonne2, colonne3* from *table1, table2, tableN*

Exercices :

  1. Liste de tous les étudiants
  2. Nom et prénom de chaque étudiant
  3. Liste de tous les étudiants classée par ordre alphabétique du nom de famille
  4. Liste de toutes les matières et des coefficients associés.
  5. Liste des matières
  6. Liste des épreuves par matière
  7. Libellé et coefficient (exprimé en pourcentage) de chaque matière
  8. Nom et prénom des étudiants habitant Lyon
  9. Liste des notes supérieures ou égales à 10
  10. Moyenne générale de toutes les notes
  11. Moyenne générale des notes de l'année 2012
  12. Liste des épreuves entre juillet 2011 et juillet 2012
  13. Nom, prénom et ville des étudiants dont le prénom commence par «Du...»
  14. Nom, prénom, adresse, cp et ville des étudiants habitant dans les villes contenant « ll »
  15. Nombre d'étudiants inscrits
  16. Nombre total d'épreuves
  17. Nombre de 0 pour les épreuves de 2012
  18. Nom et prénom de chaque étudiant avec leur moyenne en 2011 / 2012
  19. Liste des notes par étudiant et par matière
  20. Nom et prénom des étudiants qui ont au moins un 20
  21. Liste des matières où aucun étudiant n'a eu plus de 15
  22. Moyenne des notes de chaque étudiant classée dans l'ordre décroissant
  23. Moyenne des notes où au moins 6 étudiants ont eu plus que 0.

Cas cinéma :

Le contexte :

Vous travaillez pour une régie publicitaire à destination des cinémas. Votre entreprise doit créer puis manipuler une base de données stockant toute votre activité (cinémas, salles, films, ...).

Structure de la base :

Dans un premier temps vous devrez créer la base de données « cinéma » sur LibreOffice Base et l'enregistrer sur votre bureau.

Dans un deuxième temps, vous devrez créer les tables à partir des informations suivantes :

CLIENT : Chaque client (cinéma) de votre entreprise doit-être ajouté à la base avec : un identifiant client (numéro unique), un nom, une adresse postale, un numéro de téléphone, une adresse mail, une personne à contacter.

SALLE : Un client possède au moins une salle de cinéma. La salle doit contenir ces informations : un identifiant de salle (numéro unique), un numéro de salle, un nombre de places, il doit être indiqué si elle gère le son Dolby, il doit être indiqué si elle gère l'image 3D.

FILM : Les films doivent être ajoutés à la base : un identifiant de film (numéro unique), un titre, un réalisateur, une date de sortie, une durée, un synopsis.

SEANCE : Les salles projettent des films à certains horaires : un film (numéro unique), une salle (numéro unique), une date, une heure.

ACTEUR : Les films sont joués par des acteurs : un identifiant d'acteur (numéro unique), un nom, un prénom, une date de naissance, une nationalité.

Exercice :

  • Créer le MCD correspondant au cas Cinéma.
  • Créer le MLD correspondant au cas Cinéma.
  • Créez la base dans LibreOffice Base
  • Insérez des données dans la base.