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 ## 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; 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 ```sql
select firstName || ' ' || lastName as nomComplet, City from customers; 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 ## Tri
@@ -39,7 +41,6 @@ select Name from tracks
where Milliseconds > 300000 -- 5 * 60 * 1000 where Milliseconds > 300000 -- 5 * 60 * 1000
``` ```
- Filtrer les clients dont l'age est inférieur à 25 ans - Filtrer les clients dont l'age est inférieur à 25 ans
```sql ```sql
@@ -56,6 +57,9 @@ select firstName || ' ' || lastName as nomComplet
where Country = 'Brazil' 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 - Filtrer les clients dont l'age est inférerieur à 25 ans et qui vivent aux USA
```sql ```sql
@@ -64,6 +68,9 @@ select firstName || ' ' || lastName as nomComplet
where Age < 25 and Country = 'USA' 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 - Filter les albums qui sont sortis entre 1984 et 1989
@@ -107,6 +114,29 @@ where InvoiceDate >= '2010-01-01'
and InvoiceDate <= '2010-12-31' 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 ### strftime
voir le détail de la fonction [strftime](https://sqlite.org/lang_datefunc.html) voir le détail de la fonction [strftime](https://sqlite.org/lang_datefunc.html)