tp2

2025-09-26 19:47:04 +02:00
parent 8e72be7685
commit f6e3328b16
2 changed files with 77 additions and 22 deletions

@@ -3,7 +3,7 @@
> [!NOTE]
> **DQL** pour _Data Query Language_ est le sous-langage responsable de la lecture, ou de l'interrogation, des données d'une base de données.
En SQL, cela correspond principalment à la commande **select** qui permet de sélectionner et d'extraire des données spécifiques à partir d'une ou plusieurs tables.
En SQL, cela correspond principalment à la commande `select` qui permet de sélectionner et d'extraire des données spécifiques à partir d'une ou plusieurs tables.
La dénomination de ce type de commande est _requête_ ou _query_ en anglais
@@ -12,9 +12,11 @@ La dénomination de ce type de commande est _requête_ ou _query_ en anglais
Dans une commande **select** il convient de définir les colonnes que l'on veut obtenir ainsi que la source des données définie par le mot clé `from`
```sql
select FirstName, LastName, City from customers;
select firstName, LastName, City from customers;
```
Sélectionner les colonnes prénom (firstName), nom (lastName) et ville (City) de la table clients (customers).
Pour sélectionner toutes les colonnes il faut utiliser le caractère joker *.
## Filtre
@@ -35,18 +37,18 @@ Marc |Dubois |Lyon
Wyatt |Girard |Bordeaux
Isabelle |Mercier |Dijon
### Opérateurs
## Opérateurs
Opérateur|Description
---|---
=|égal
= |égal
<>|différent
>|supérieur
>=|supérieur ou égal
<|inférieur
\> |supérieur
\>=|supérieur ou égal
< |inférieur
<=|inférieur ou égal
#### between
### entre
Détermine si une valeur se trouve entre deux limites inclusives. `between` peut être précédé du mot clé `not` pour inverser la condition.
@@ -54,17 +56,22 @@ Détermine si une valeur se trouve entre deux limites inclusives. `between` peut
where total between 10.0 and 20.0
```
between [lowerbound] and [upperbound]
quand le total est entre 10 et 20
#### in
### dans
L'opérateur `in' détermine si une valeur est présente dans un ensemble de valeurs.
détermine si une valeur est présente dans un ensemble de valeurs.
```sql
"costs"."unit_cost" in (200, 600, 'a')
select FirstName, LastName, Country
from customers
where Country in ('France', 'Belgium', 'Germany');
```
#### like
Sélectionner les clients de France, Belgique ou Allemagne.
### comme
détermine si une valeur correspond à tout ou partie d'une chaîne. souvent utilisé avec caractères génériques pour indiquer toute correspondance de chaîne de caractères avec zéro ou plusieurs caractères (%) ou une correspondance à caractère unique (_).
@@ -73,11 +80,11 @@ détermine si une valeur correspond à tout ou partie d'une chaîne. souvent uti
```
### Conditions multiples
Les conditions peuvent être combinées avec des opérateurs booléen AND et OR.
Les conditions peuvent être combinées avec des opérateurs booléen `AND` et `OR`.
## Tri
La commande ORDER BY dans une requête SELECT en SQL est utilisée pour trier les résultats retournés par la requête en fonction d'une ou plusieurs colonnes.
La commande `ORDER BY` dans une requête `SELECT` en SQL est utilisée pour trier les résultats retournés par la requête en fonction d'une ou plusieurs colonnes.
```sql
SELECT nom, prenom, age
@@ -85,6 +92,7 @@ FROM utilisateurs
ORDER BY age DESC, nom ASC;
```
## Pagination
Si un nombre limite est donné, pas plus de ce nombre de lignes sera renvoyé (mais peut-être moins, si la requête elle-même génère moins de lignes). LIMIT ALL revient à omettre la clause LIMIT, tout comme LIMIT avec un argument NULL.

61
tp2.md

@@ -4,23 +4,67 @@
- Affichez tous les titres et identifiants des albums.
- Listez le prénom et le nom de tous les clients.
```sql
```
Sélectionner les colonnes prénom (firstName), nom (lastName) et ville (City) de la table clients (customers).
```sql
```
- Listez le nom complet de tous les clients.
```sql
```
- Affichez les noms des artistes triés par ordre alphabétique.
```sql
```
- Montrez toutes les pistes (Name) dont la durée (Milliseconds) est supérieure à 5 minutes.
```sql
```
- Récupérez toutes les factures (InvoiceId, InvoiceDate, Total) émises en 2010.
- Filtrer les clients dont l'age est inférerieur à 25 ans
```sql
```
- Filtrer les clients dont l'age est inférieur à 25 ans
```sql
```
- Filtrer les clients dont l'age est inférerieur à 25 ans et qui vivent aux USA
```sql
```
- Filter les albums qui sont sortis entre 1984 et 1989
- Filtrer les clients de France, Belgique et Allemgne (France, Belgium, Germany)
```sql
```
- Affichez tous les clients vivant au Brésil.
```sql
```
- Filtrer les clients de France, Belgique et Allemagne (France, Belgium, Germany)
```sql
```
- Différent de
```sql
```
### strftime
voir le détail de la fonction [strftime](https://sqlite.org/lang_datefunc.html)
- Lister le total des factures en détaillant dans des colonnes séparées l'année, le mois, le n° de semaine et le n° de jour de la semaine
@@ -30,8 +74,6 @@
- Listez les 10 pistes les plus longues (Name, Milliseconds) par durée décroissante.
- Affichez tous les clients vivant au Brésil.
- Montrez les 5 premières factures triées par montant total (Total) décroissant.
- Listez les employés (FirstName, LastName) qui reportent à un manager (ReportsTo non nul).
@@ -40,7 +82,7 @@
- Affichez le nom des pistes (Track.Name) et le nom de lalbum (Album.Title) associé.
- Listez tous les clients (FirstName, LastName) avec le pays (Country) et lemployé commercial (SupportRepId) qui leur est assigné.
- Listez tous les clients (FirstName, LastName) avec le pays (Country) et lemployé commercial (FirstName, LastName) qui leur est assigné.
- Affichez toutes les pistes (Track.Name) avec leur artiste (Artist.Name).
@@ -62,13 +104,18 @@
```sql
```
### 4. Liste des pays
### 4. Liste des pays des clients
```sql
```
Utilisation de `distinct` pour supprimer les doublons.
### 5. Nombre de pays des clients
```sql
```
### 5. Nombre de clients par pays
```sql