snt:donnee:activite5
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| snt:donnee:activite5 [2019/09/12 10:34] – ancienne révision (2019/09/12 10:18) restaurée techer.charles_0870019y.campus.lyceeconnecte.fr | snt:donnee:activite5 [2019/09/12 14:05] (Version actuelle) – supprimée techer.charles_0870019y.campus.lyceeconnecte.fr | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Activité les données structurées des bases de données ====== | ||
| - | Quand nous avons une** grande quantité d' | ||
| - | Actuellement la grande majorité des SGBD utilise le** modèle relationnel** qui consiste : | ||
| - | * à mettre ensemble des **données de même nature** en les rangeant dans des **tables** de données ; | ||
| - | * à définir des **relations** pour relier et croiser les données **entre elles**. | ||
| - | * à utiliser le **langage SQL** ((Structured Query Language) pour **interroger, | ||
| - | |||
| - | Dans cette activité je vais **interroger** les données sur les villes française du site web http:// | ||
| - | |||
| - | <WRAP center round info> | ||
| - | Il existe plusieurs logiciels de gestion de base de données. **MySQL** (racheté par la société Oracle), continue à être une **base de données OpenSource** sous le nom de projet **MariaDB**. | ||
| - | </ | ||
| - | |||
| - | ===== Les requêtes SQL ===== | ||
| - | ==== La projection ==== | ||
| - | La projection consiste à choisir les informations, | ||
| - | * Exemple : | ||
| - | <code sql> | ||
| - | select * | ||
| - | from ville ; | ||
| - | </ | ||
| - | {{ : | ||
| - | <WRAP center round info> | ||
| - | Après la clause **select**, j' | ||
| - | * les **colonnes** à afficher **séparées par des virgules** , | ||
| - | * ou bien je mets le caractère ***** pour visualiser le contenu de **toutes les colonnes**. | ||
| - | Puis j' | ||
| - | </ | ||
| - | <WRAP center round todo> | ||
| - | **Question 1 :** Ecrire la requête SQL pour avoir le **nom**, le **code postal** et le **numéro de département** (dans cet ordre) des villes. | ||
| - | |||
| - | Résultat à obtenir : | ||
| - | ^nom ^cp ^dep^ | ||
| - | |Ozan |1190 |1| | ||
| - | |Cormoranche-sur-Saône |1290|1| | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | * je peux renommer une colonne en définissant un alias avec le mot clé **as** et aussi faire des calculs ou utiliser des fonctions : | ||
| - | <code sql> | ||
| - | select concat(nom, ' ', cp) as adresse | ||
| - | from villes ; | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | ^adresse^ | ||
| - | |Ozan 1190| | ||
| - | |Cormoranche-sur-Saône 1290| | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 2 :** Ecrire la requête SQL qui indique pour chaque ville **l' | ||
| - | **Résultat à obtenir :** | ||
| - | ^ville ^augmentation^ | ||
| - | |Ozan |-118| | ||
| - | |Cormoranche-sur-Saône |-58| | ||
| - | |Plagne |-29| | ||
| - | |Tossiat |-6| | ||
| - | |Pouillat |12| | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | ==== Eviter des résultats en double ==== | ||
| - | Des requêtes peuvent renvoyer des **résultats identiques** et il est parfois utile d' | ||
| - | * Exemple connaître la liste des départements sans utiliser **distinct** : | ||
| - | <code sql> | ||
| - | select dep as Département | ||
| - | from villes ; | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | ^Département^ | ||
| - | |1| | ||
| - | |1| | ||
| - | |1| | ||
| - | ... | ||
| - | soit **36 700 lignes**. | ||
| - | * Connaître la liste des départements en utilisant **distinct** qui doit être placé une **seule fois** juste après le mot clé **select** : | ||
| - | <code sql> | ||
| - | select distinct dep as Département | ||
| - | from villes ; | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | ^Département^ | ||
| - | |1| | ||
| - | |2| | ||
| - | |3| | ||
| - | ... | ||
| - | soit **102 lignes**. | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 3 :** Ecrire la requête SQL qui donne la liste des codes postaux. La requête SQL doit renvoyer uniquement **6 082 lignes**. | ||
| - | </ | ||
| - | |||
| - | ==== Trier les résultats obtenus ==== | ||
| - | Les requêtes SQL renvoient en général les données dans **l' | ||
| - | * Exemple connaître la liste villes par ordre alphabétique : | ||
| - | <code sql> | ||
| - | select nom as Ville | ||
| - | from villes | ||
| - | order by nom asc ; | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | ^Ville^ | ||
| - | |Aast| | ||
| - | |Abainville| | ||
| - | |Abancourt| | ||
| - | ... | ||
| - | soit **36 700 lignes**. | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 4 :** Ecrire la requête SQL qui donne la liste des villes **selon le nom d' | ||
| - | </ | ||
| - | |||
| - | ==== La sélection ==== | ||
| - | J' | ||
| - | * Exemple : avoir toutes les information de la ville de Panazol | ||
| - | <code sql> | ||
| - | select * | ||
| - | from villes | ||
| - | where nom = ' | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | 1 ville(s) trouvée(s) ! | ||
| - | ^dep ^nom ^cp ^nb_hab_2010 ^nb_hab_1999 ^nb_hab_2012 ^dens ^surf ^longitude ^latitude ^alt_min ^alt_max^ | ||
| - | |87 |Panazol |87350 |10392 |9727 |10100 |518 |20 |1.3 |45.8333 |215 |351| | ||
| - | |||
| - | Voici les opérateurs utilisables : | ||
| - | === Les opérateurs de comparaison et logiques === | ||
| - | ^Opérateur de comparaison^Description^Opérateurs logiques^Description^ | ||
| - | ^=|égal à^and|les deux conditions doivent être vérifiées simultanément| | ||
| - | ^< | ||
| - | ^> | ||
| - | ^< | ||
| - | ^> | ||
| - | ^<> | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 5 :** Ecrire la requête SQL qui donne la liste des villes qui ont **plus de 5000 habitants** en **2012**. La requête SQL doit renvoyer uniquement **2 007 lignes**. | ||
| - | </ | ||
| - | |||
| - | === Les opérateur d’appartenance (ou non) d’un élément à un intervalle === | ||
| - | ^BETWEEN^appartenance| | ||
| - | ^NOT BETWEEN^non appartenance| | ||
| - | |||
| - | * Exemple : connaître les villes dont l' | ||
| - | <code sql> | ||
| - | select nom as ville, alt_max | ||
| - | from villes | ||
| - | where alt_max | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | ^ville ^alt_max^ | ||
| - | |Ozan |205| | ||
| - | |Cormoranche-sur-Saône |211| | ||
| - | |Replonges |207| | ||
| - | ... | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 6 :** Ecrire la requête SQL qui donne la liste des villes dont la superficie est comprise entre 100 et 300 kilomètres carré. La requête SQL doit renvoyer uniquement **142 lignes**. | ||
| - | </ | ||
| - | |||
| - | === Les opérateur de comparaison de chaînes de caracatères === | ||
| - | ^LIKE^comparaison de chaînes (identiques)| | ||
| - | ^NOT LIKE^chaîne différente| | ||
| - | |||
| - | % permet de remplacer n caractères | ||
| - | _ | ||
| - | |||
| - | * Exemple : connaître les villes dont le nom commence par Limoges : | ||
| - | <code sql> | ||
| - | select nom as ville | ||
| - | from villes | ||
| - | where nom like ' | ||
| - | </ | ||
| - | **Résultat :** | ||
| - | |||
| - | ^ville^ | ||
| - | |Limoges-Fourches| | ||
| - | |Limoges| | ||
| - | |||
| - | <WRAP center round todo> | ||
| - | **Question 7 :** Ecrire la requête SQL qui donne la liste des villes dont le nom contient les caractères **paris**. La requête SQL doit renvoyer uniquement **10 lignes**. | ||
| - | </ | ||
| - | |||
| - | ===== Activité à faire à la maison ===== | ||
| - | {{youtube> | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Je continue ... ==== | ||
| - | <WRAP center round info > | ||
| - | Je reviens à l' | ||
| - | </ | ||
snt/donnee/activite5.1568277265.txt.gz · Dernière modification : 2019/09/12 10:34 de techer.charles_0870019y.campus.lyceeconnecte.fr
