corrections

2025-09-27 10:14:22 +02:00
parent 81fb4e8870
commit 827d318e52

38
tp2.md

@@ -1,4 +1,4 @@
# Travaux dirigés
# Travaux pratiques n°2
## Sélections de colonnes
@@ -14,13 +14,15 @@ Afficher les colonnes prénom, nom et ville de la table clients.
SELECT FirstName, LastName, City from customers;
```
- Listez le nom complet de tous les clients. Le nom complet est la concaténation dans une seule colonne du prénom et du nom. Donner le titre NomComplet à cette colonne.
- Afficher le nom complet de tous les clients. Le nom complet est la concaténation dans <ins>une seule colonne</ins> du prénom et du nom. Donner le titre NomComplet à cette colonne.
```sql
select firstName || ' ' || lastName as nomComplet, City from customers;
```
le mot clé `as` permet de spécifier ou renommer le titre d'une colonne
L'opérateur `||` est l'opérateur de concaténation de chaine équivalent à + mais pour le texte.
Le mot clé `as` permet de spécifier ou renommer le titre d'une colonne
## Tri
@@ -39,7 +41,6 @@ select Name from tracks
where Milliseconds > 300000 -- 5 * 60 * 1000
```
- Filtrer les clients dont l'age est inférieur à 25 ans
```sql
@@ -56,6 +57,9 @@ select firstName || ' ' || lastName as nomComplet
where Country = 'Brazil'
```
[!WARNING]
Le respect des majuscules n'est pas obligatoire pour le nom des tables et colonnes mais cela l'est pour les valeurs *brazil* est différent de *Brazil*.
- Filtrer les clients dont l'age est inférerieur à 25 ans et qui vivent aux USA
```sql
@@ -64,6 +68,9 @@ select firstName || ' ' || lastName as nomComplet
where Age < 25 and Country = 'USA'
```
L'opérateur `and` effectue un ET logique entre 2 conditions.
Ici aussi il faut respecter les majuscules pour la valeur *USA*.
- Filter les albums qui sont sortis entre 1984 et 1989
@@ -107,6 +114,29 @@ where InvoiceDate >= '2010-01-01'
and InvoiceDate <= '2010-12-31'
```
```sql
select InvoiceId, InvoiceDate , Total
from invoices
where InvoiceDate between '2010-01-01' and '2010-12-31'
```
```sql
select InvoiceId, InvoiceDate , Total
from invoices
where STRFTIME('%Y', InvoiceDate) = '2010'
```
strftime *string from time* il faut les ''
```sql
--
select InvoiceId, InvoiceDate , Total
from invoices
where cast(STRFTIME('%Y', InvoiceDate) as INT) = 2010
```
`cast` transforme la chaine en entier (nombre)
### strftime
voir le détail de la fonction [strftime](https://sqlite.org/lang_datefunc.html)