diff --git a/tp2.md b/tp2.md
index 0628220..b8c2b2b 100644
--- a/tp2.md
+++ b/tp2.md
@@ -1,6 +1,6 @@
# Travaux pratiques n°2
-## Sélections de colonnes
+## Sélection de colonnes
- Afficher les titres et identifiants des albums.
@@ -8,16 +8,16 @@
select Title, AlbumId from Albums
```
-Afficher les colonnes prénom, nom et ville de la table clients.
+- Afficher les colonnes prénom, nom et ville de la table clients.
```sql
SELECT FirstName, LastName, City from customers;
```
-- 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.
+- Afficher le nom complet des 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;
+select FirstName || ' ' || LastName as nomComplet, City from customers;
```
L'opérateur `||` est l'opérateur de concaténation de chaine équivalent à + mais pour le texte.
@@ -57,8 +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*.
+
+> [!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
@@ -120,6 +121,9 @@ from invoices
where InvoiceDate between '2010-01-01' and '2010-12-31'
```
+L'opérateur `between` combine supérieur ou égal >= ET inférieur ou égal <= dans une seule commande
+
+
```sql
select InvoiceId, InvoiceDate , Total
from invoices
@@ -163,38 +167,124 @@ select
from invoices
```
-## Filtrage et tri avancés
+## Top
-- Affichez le titre des albums de l’artiste AC/DC.
+Pour afficher un top il suffit de trier par ordre décroissant `DESC` et de limiter le nombre de lignes.
-- Listez les 10 pistes les plus longues (Name, Milliseconds) par durée décroissante.
+- Afficher les 10 pistes les plus longues en durée.
-- Montrez les 5 premières factures triées par montant total (Total) décroissant.
+```sql
+SELECT Name, Milliseconds FROM tracks
+ order by Milliseconds DESC
+ LIMIT 10;
+```
+
+- Afficher les 5 factures les plus importantes par montant total.
+
+```sql
+select Total from invoices
+ order by Total desc
+ limit 5
+```
+
+## Null
+
+> [!WARNING]
+> Null est égal à rien même pas à lui même. Il faut utiliser les opérateurs `IS NULL` ou `IS NOT NULL`
- Listez les employés (FirstName, LastName) qui reportent à un manager (ReportsTo non nul).
+```sql
+-- NE FONCTIONNE PAS !!
+SELECT * FROM employees WHERE ReportsTo <> NULL;
+
+SELECT * FROM employees WHERE ReportsTo IS NOT NULL;
+```
+
+- Le client qui n'a pas de numéro de téléphone
+
+```sql
+SELECT * FROM customers WHERE Phone IS NULL;
+```
+
+
# Jointures simples
+- Affichez le titre des albums de l’artiste AC/DC.
+
+
+```sql
+-- Étape 1. Récupère artistId pour AC/DC
+select ArtistId from artists where Name = 'AC/DC'
+
+-- Étape 2. Sélectionne les albums pour ArtistId = 1
+select Title from albums WHERE ArtistId = 1
+```
+
+Utilisation d'une sous-requête. Une requête utilise le résultat d'une autre.
+
+```sql
+SELECT Title FROM albums WHERE ArtistId = (
+ SELECT artistId FROM artists WHERE Name = 'AC/DC'
+)
+```
+
+Utilisation d'une jointure entre 2 tables
+
+```sql
+SELECT Title
+ FROM albums
+ JOIN artists ON albums.ArtistId = artists.ArtistId
+ WHERE Name = 'AC/DC'
+```
+
- Affichez le nom des pistes (Track.Name) et le nom de l’album (Album.Title) associé.
-- Listez tous les clients (FirstName, LastName) avec le pays (Country) et l’employé commercial (FirstName, LastName) qui leur est assigné.
-- Affichez toutes les pistes (Track.Name) avec leur artiste (Artist.Name).
+```sql
+
+```
+
+
- Listez les factures (InvoiceId, Total) avec le nom du client (Customer.FirstName, Customer.LastName).
+```sql
+
+```
+
+- Listez tous les clients (FirstName, LastName) avec le pays (Country) et l’employé commercial (FirstName, LastName) qui leur est assigné.
+
+
+```sql
+
+```
+
+- Affichez toutes les pistes (Track.Name) avec leur artiste (Artist.Name).
+
+```sql
+
+```
+
+
- Affichez toutes les pistes (Name) avec leur genre (Genre.Name).
-## 1. Nombre de clients
+
+
+
+
+## Compter
+
+- Nombre de clients
```sql
```
-### 2. Nombre d'albums
+- Nombre d'albums
```sql
```
-### 3. Nombre d'artistes
+- Nombre d'artistes
```sql
```