diff --git a/tp2.md b/tp2.md index 3cd4f7c..0628220 100644 --- a/tp2.md +++ b/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 une seule colonne 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)