• Aucun résultat trouvé

Bases de données Le langage SQL

N/A
N/A
Protected

Academic year: 2022

Partager "Bases de données Le langage SQL"

Copied!
6
0
0

Texte intégral

(1)

Activité Terminale NSI – Le langage SQL 1/7

Objectifs pédagogiques :

 Connaître les principales syntaxes du langage SQL

 Construire, en SQL, une requête d’insertion, d’interrogation et de suppression d’enregistrements d’une base de données

 Savoir utiliser les requêtes avec jointure

 Identifier les composantes d’une requête en langage SQL

PostgreSQL est un système de gestion de base de données relationnelle inventé en 1996 (même si le principe datait de 1985). PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises. Il est un des systèmes gratuits le plus répandu dans le monde.

Activité 1 – Principe du langage SQL

1. Regarder la capsule vidéo sur le langage SQL #1 sur le site nsi4noobs.fr

2. Résumer sous forme de tableau les syntaxes de gestion des tables de la base de données : a. Pour créer une table

b. Pour détruire une table

c. Pour insérer des éléments dans une table

3. Expliquer en quoi la déclaration d’une clé étrangère permet de maintenir l’intégrité d’une base de données.

Vous citerez deux exemples différents pour justifier votre réponse.

4. Quel est l’intérêt de préciser lors de la création d’un attribut « NOT NULL » ?

Bases de données

Le langage SQL

(2)

Activité Terminale NSI – Le langage SQL 2/7

Activité 2 – Création et alimentation des tables

1. À l’aide des requêtes fournies :

 TableRealisateur.sql

 DonneesRealisateurs.sql

 TableFilm.sql

 DonneesFilms.sql

Créer les tables nécessaires à la suite de votre travail.

2. Pourquoi faut-il nécessairement créer la table réalisateur avant la table film ?

3. Donner la syntaxe permettant de créer en langage SQL une table genre composée de deux attributs :

 id_genre, entier, servant de clé primaire

 nom_genre contenant une chaine de caractères de 64 éléments maximum

4. Donner la syntaxe permettant d’ajouter les enregistrements suivants à la table précédemment créée : Policier, Science-fiction, Aventure, Drame, Thriller, Comédie dramatique, Western

5. Que faudrait-il faire à la table film pour prendre en compte cette nouvelle table genre et ne plus avoir de redondance de texte avec l’attribut genre_film ? Vous préciserez la syntaxe SQL à utiliser pour y parvenir.

Attention à bien tenir compte des attributs servant de clé primaire ou de clé étrangère dans la déclaration de vos relations.

(3)

Activité Terminale NSI – Le langage SQL 3/7

Activité 3 – Requêtes d’affichage en langage SQL

1. Regarder la capsule vidéo sur le langage SQL #2 sur le site nsi4noobs.fr

2. Quels sont les éléments essentiels permettant d’effectuer une requête d’interrogation de la base de données.

3. Comment peut-on trier le résultat d’une requête d’interrogation de base de données par ordre croissant ? par ordre décroissant.

4. Dans le cas où le nombre de lignes retournées par une requête d’affichage est important, quel élément permet de limiter le nombre de lignes affichées ?

5. Écrire une requête d’interrogation permettant de lister tous les genres présents dans la table genre, classés par ordre alphabétique.

6. Adapter votre requête pour l’avoir que les noms des genres possédant un « c » dans le nom.

7. Écrire une requête d’interrogation sur la table film, permettant de lister les films sortis entre 1980 et 2000 de genre Science-fiction

8. Écrire une requête d’interrogation sur la table film, permettant de lister les films de genre Science-fiction, Aventure ou Super héros qui ne sont pas originaires des États-Unis.

9. Écrire une requête d’interrogation sur la table film, permettant de lister les films dont le nom contient un « c » ou dont le nom contient un « C ».

10. Écrire une requête d’affichage permettant d’afficher dans un seul champ le prénom, un espace, le nom du réalisateur, tout en classant l’affichage par ordre alphabétique du nom

(4)

Activité Terminale NSI – Le langage SQL 4/7

Activité 4 – Requêtes de mise à jour en langage SQL

1. Regarder la capsule vidéo sur le langage SQL #3 sur le site nsi4noobs.fr

2. Quels sont les éléments essentiels permettant d’effectuer une requête de mise à jour de la base de données.

3. En s’aidant de la capsule vidéo, créer une table genre contenant deux attributs :

 Id_genre

 Nom_genre

4. Compléter par requête la table genre à partir de tous les genres différents contenus dans la table film.

5. Ajouter par requête un champ id_genre_film à la table film

6. En s’aidant de la capsule vidéo mettre à jour le contenu du champ id_genre_film à partir de la table genre et de ta table film. Détailler les étapes.

(5)

Activité Terminale NSI – Le langage SQL 5/7

Activité 5 – Requêtes avec jointure en langage SQL

1. Regarder la capsule vidéo sur le langage SQL #4 sur le site nsi4noobs.fr

2. Quels sont les éléments essentiels permettant d’effectuer une requête SQL d’affichage de données avec plusieurs tables en « jointure ».

3. Écrire la requête SQL permettant d’afficher la liste des films (titre, année de sortie), avec leur genre dont l’année de sortie est comprise entre 1980 et 2000, les bornes étant incluses, en triant par genre puis par année de sortie du film.

4. Écrire la requête SQL permettant d’afficher la liste des films (titre, année de sortie) avec le nom/prénom du réalisateur dont la nationalité n’est pas « États-Unis », liste triée par titre de film.

5. Écrire une requête affichant les films dont le nom du réalisateur commence par un B et l’année de sortie n’est pas comprise entre 2000 et 2010 (bornes incluses). Trier la liste par année de sortie et titre du film.

(6)

Activité Terminale NSI – Le langage SQL 6/7

Activité 6 – Utilisation de Python pour accéder à une base de données

1. Regarder la capsule vidéo sur le langage SQL #5 sur le site nsi4noobs.fr

2. Quelle bibliothèque Python permet d’accéder puis de gérer une base de données SQLite ? 3. Quels sont les éléments essentiels permettant de réaliser des requêtes SQL avec Python.

4. Réaliser un script Python permettant de créer une « fiche réalisateur » alimentant la table realisateur.

5. Réaliser un script Python permettant de créer une « fiche film » alimentant la table film à partir des données saisies par l’utilisateur et des données des tables genre, nationalite et realisateur

6. À partir des exemples présentés dans la capsule vidéo, réaliser un script permettant de créer les tables entourées en rouge sur le schéma relationnel suivant :

7. Écrire un script Python permettant à un utilisateur de compléter une « fiche acteur » correspondant

8. Écrire un script Python permettant à un utilisateur de relier un acteur à un film dans les tables correspondantes.

9. Regrouper les différents scripts des question 4, 5, 7, 8 via une mini interface gérée par un menu. Vous ajouterez au menu la visualisation d’une fiche film comme présentée lors de la capsule vidéo.

10. On souhaite pouvoir ajouter un attribut à la table XActeurFilm : le nom du personnage. Écrire la requête SQL permettant d’ajouter ce champ personnage_xaf chaine de 64 caractères. Écrire le script Python utilisant la bibliothèque sqlite3 permettant de créer ce champ. Écrire un script Python permettant de compléter le nom du personnage pour un acteur donné dans un film donné.

11. Même question si l’on souhaite ajouter le champ acteur.id_nationalite_acteur clé étrangère de la table acteur, relative à la clé primaire de la table nationalite

12. Pour les plus avancés : réaliser une classe de gestion BaseFilm permettant de créer des objets film, réalisateur, acteur ainsi que les différentes méthodes permettant l’ajout, la visualisation et la suppression de données dans les tables correspondantes.

acteur

 id_acteur

 nom_acteur

 prenom_acteur xacteurfilm

 id_xaf

 id_acteur_xaf

 id_film_xaf

Références

Documents relatifs

Dangers pour la santé, Dangers pour l'environnement: La classification du mélange est fondée sur les composants de ceux-ci (formule d'additivité). Clause

ADR Accord européen relatif au transport international des marchandises dangereuses par route CLP Règlement (CE) no 1272/2008 relatif à la classification, à l'étiquetage et

ALTER TABLE employee ADD CONSTRAINT nom CHECK (lname <> ’’ AND fname <> ’’);. -- ALTER TABLE DROP CONSTRAINT

– si un même type d’entité intervient plusieurs fois dans un même type d’association, on doit explicitement indiquer le rôle de chaque entité – si on a

NumEtud Nom Prenom Adresse DateNais Sexe NumCours NomCours NomProf NbHC NbHTD NbHTP NumEtud NumCours Note. E1

Système de Gestion de Bases de Données SGBD Rappel sur les niveaux d’abstraction MySQL Principaux types de données disponibles Créer une BD phpMyAdmin Pour finir... Système de

L'agrégation consiste à regrouper tous les tuples d'une table ayant même valeur pour un ou plusieurs attributs. Dans le résultat n'apparaîtra alors que le dernier de ces tuples, il

On peut les supprimer : SELECT DISTINCT nom , prenom FROM PERSONNE , JOUE WHERE id = idacteur ;.