C’est quoi une clé primaire ? Qu’est ce qu’il faut comprendre ?
Elle permet de distinguer tous les n-uplets (par exemple dans la table avec des notes et des noms d’élèves bah les élèves ni les notes peuvent distinguer des n-uplets (plusieurs élèves peuvent avoir la même note ou le même nom))
Elle traduit une association 1-1 (un emprunteur pourra réaliser plusieurs emprunts mais un emprunt n’est réalisé que par un seul emprunteur)
C’est quoi une clé étrangère ? Qu’est ce qu’il faut bien comprendre ?
En gros elle permet le lien entre une table et une autre. On lie généralement une clé étrangère (elle même primaire) à une clé primaire
Elle traduit une association 1-* (n emprunteur pourra réaliser plusieurs emprunts mais un emprunt peut être par un seul candidat)
Comment tu sélectionnes toutes les colonnes d’une table ?
SÉLECT * FROM table
Comment tu sélectionnes seulement certains attributs ?
SELECT attribut1, attribut2 FROM table
A quoi ça sert SELECT DISTINCT ?
Ça supprime les doublons (genre si pour attribut1, on a FRANCE qui apparaît deux fois et bah SELECT DISTINCT country FROM table rend une seule fois FRANCE)
⇒ on peut faire SELECT DISTINCT attribut1, attribut2
T’as une table avec les noms de producteurs, les films et les notes. Liste les titres et leur notes ramenées sur 100 en les nommant pourcentage
SELECT titre, note*10 AS pourcentage FROM film
Trouve toutes les années où il y a eu un film enregistré (on a une liste avec des films et les dates de sorties)
SELECT DISTINCT annee FROM film
Tu veux restreindre un SELECT aux notes qui valent 10, qu’elle synthaxe t’utilises ?
SELECT … FROM table WHERE notes = 10
pas de double egal
On veut restreindre un SELECT aux films qui commence avec “la guerre”
SELECT film FROM table WHERE titre LIKE ‘la guerre%’
⇒ pas oublier les guillemets
⇒ % c’est HP, ça permet de dire “commence par” si c’est avant
Liste les titres des films sortis dans les années 1980
SELECT titre FROM table WHERE annee >= 1980 AND annee <= 1989
Donne l’identifiant et le film de l’acteur dont le nom est “Woody”
SELECT id, film FROM table WHERE nom = ‘Woody’
Tu veux ordonner les résultats d’une requête selon un critère donné (comment tu tries en croissant / décroissant ?)
SELECT … FROM … ORDER BY attribut (croissant)
SELECT … FROM … ORDER BY attribut DESC (décroissant)
⇒ c’est ordre de chiffres ET de lettres
Tu veux garder les n premiers résultats d’un tri mais en éliminant les p premiers
ORDER BY attribut LIMIT n OFFSET p
Ça fait quoi ORDER BY note DESC LIMIT 10 ?
Ça trie une liste de note en gardant les 10 premiers
Sélectionne le titre du film qui a eu la 10ème meilleure note
ORDER BY note DESC LIMIT 1 OFFSET 9
Imagine tu veux la liste des titres des films sortis la même annee que Pulp Fiction
il faut faire un double sélect
SELECT titre FROM film WHERE annee = (SELECT annee FROM film WHERE titre = ‘Pulp Fiction’)
On met = car la commande renvoie une valeur unique
Que renvoie la requête SELECT titre FROM film WHERE annee in (SELECT annee FROM film WHERE id_real = 444)
Sélectionne les titres des (années des films du réalisateur d’id 444)
Comment t’obtiens la liste des titres de films dont la note est strictement supérieure à celle de Pulp Fiction ?
SELECT titre FROM film WHERE note > (SELECT note FROM film WHERE titre = ‘Pulp Fiction’)