diff --git a/sql.dql.md b/sql.dql.md index a14d0fe..024ac07 100644 --- a/sql.dql.md +++ b/sql.dql.md @@ -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. diff --git a/tp2.md b/tp2.md index 46cea5d..510789b 100644 --- a/tp2.md +++ b/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 l’album (Album.Title) associé. -- Listez tous les clients (FirstName, LastName) avec le pays (Country) et l’employé commercial (SupportRepId) qui leur est assigné. +- 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). @@ -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