Logo de kxs.frCours d'informatique pour le lycée et la prépa

Bilan

Nous verrons ici quelques fonctionalités de MySQL puis un exercice bilan.

ORDER BY

Il nous reste une dernière clause à voir : ORDER BY. Elle permet d'ordonner les lignes suivant une colonne par ordre croissant (ASC) ou décroissant (DESC). Par défaut, l'ordre est croissant. Voici la syntaxe de cette commande :

SELECT champ1, champ2… FROM table ORDER BY champ1 DESC;

Cette commande va trier les résultats par ordre croissant sur le champ 1.

Voici un exemple qui trie les films par année :

SELECT titre, annee FROM films ORDER BY annee ASC;

Bien sur, il est possible de combiner cette clause avec une clause WHERE ou une jointure.

1) Proposez et testez une requête qui affiche les films par ordre alphabétique.

2) Proposez et testez une requête qui affiche les citations avec le titre des films par ordre chronologique.

AUTO_INCREMENT

Si nous regardons la structure de la table citations, on peut remarquer qu'il y a le terme AUTO_INCREMENT pour le champ id_citation :

+-------------+------+------+-----+---------+----------------+
| Field       | Type | Null | Key | Default | Extra          |
+-------------+------+------+-----+---------+----------------+
| id_citation | int  | NO   | PRI | NULL    | auto_increment |
| texte       | text | YES  |     | NULL    |                |
| id_film     | int  | YES  |     | NULL    |                |
+-------------+------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

Cela nous permet de laisser MySQL gérer la clé primaire. Pour cela, il ne faut pas spécifier de valeur pour la clé primaire lorsqu'on ajoute un nouvel enregistrement. Ainsi MySQL va s'occuper de lui affecter le nombre suivant.

Nous n'avons pas encore vu comment spécifier seulement certaines colonnes lors de l'ajout d'un enregistrement :

INSERT INTO table (champ1, champ2, …)
VALUES ('valeur champ 1', 'valeur champ 2', …);

Il faut spécifier les champs puis les valeurs dans le même ordre.

3) Proposez puis testez des requêtes pour ajouter une nouvelle citation que vous choisirez. Il faudra d'abord ajouter le film à la table film (sans spécifier d'id_film) puis la citation à la table citation avec le bon id_film sans spécifier d'id_citation.

Exercice

On se propose d'ajouter une table realisateurs à notre base de données. Cette table contiendra les noms, prénoms et date de naissance des réalisateurs des films déja présents dans la base.

4) Proposez une structure pour la table realisateurs (n'oubliez pas la clé primaire qu'on pourra appeler id_ralisateur ! On appellera naissance le champ de l'année de naissance).

5) Sachant que la commande pour créer la table films était la suivante, proposez une commande pour créer la table realisateurs. Demandez au professeur avant de la tester.

CREATE TABLE films
(
    id_film INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    titre VARCHAR(100),
    annee INT
);

6) Ajoutez les réalisateurs avec leurs informations dans la table realisateurs.

7) Proposez et testez une requête permettant d'afficher les noms, prénoms et date de naissance des réalisateur par ordre d'année de naissance.

8) Que faut-il ajouter à la table films pour la lier avec la table réalisateur ?

9) La commande pour ajouter une colonne est donnée ci-dessous. Proposez une commande pour ajouter le champ nécessaire à la table films.

ALTER TABLE table
ADD champ type;

Le type peut être INT, VARCHAR ou TEXT

10) Proposez ue requête permettant d'afficher les champs suivants : texte, titre, annee, nom et prenom par ordre chronologique de sortie des films.

11) Dessinez le schéma relationnel de la base de données avec les trois tables.