Outils pour utilisateurs

Outils du site


lang:sql

Ceci est une ancienne révision du document !


Soit la base de donnée :

  • Film (id, titre, annee, id_realisateur, code_pays)
  • Artiste (id, nom, prenom)
  • Pays (code, nom, langue)
  • Role (id_film, id_acteur, nom_role)

Requête SELECT

Base

Renvoie les colonnes d'un. table.

SELECT titre FROM Film;
SELECT * FROM Artiste;

Avec un alias

SELECT p.* FROM Pays p;

En triant les résultats

SELECT titre, annee FROM Film ORDER BY annee DESC;

Conditions restrictives

Simple

Une seule condition.

SELECT titre FROM Film WHERE annee = 1958;

Deux conditions.

SELECT titre FROM Film WHERE 1950 <= annee AND annee < 1960;

Condition avec BETWEEN. Inclus les bornes inférieure et supérieure.

SELECT titre FROM Film WHERE annee BETWEEN 1960 AND 1970;

Condition d'une valeur NULL. Un champ contenant NULL ne peut pas être sélectionné par une comparaison autre que IS NULL.

SELECT nom FROM Artiste WHERE annee_naissance IS NULL;

Condition sur un champ texte avec le caractère joker %. Pour les chaînes de caractères, utilisez plutôt l'apostrophe.

SELECT nom FROM Artiste WHERE nom LIKE 'A%';

Condition dans une liste de valeurs. Dans l'opérateur IN, le caractère joker % n'est pas utilisable.

SELECT nom FROM Artiste WHERE nom IN ('Dunst', 'Hitchcock');

Condition de négation. <>ALL est spécifique à Oracle. Les deux commandes ci-dessous sont équivalentes.

SELECT nom FROM Artiste WHERE nom NOT IN ('Dunst', 'Hitchcock');
SELECT nom FROM Artiste WHERE nom <>ALL ('Dunst', 'Hitchcock');

Avec sous-requête

Uniquement la ligne avec la valeur maximale

SELECT * FROM Film WHERE annee >=ALL (SELECT annee FROM Film);

Les films ayant pour réalisateur Hitckcock. Les étapes :

  • on commence par récupérer l'id de Hitchcock,
  • puis on récupère les films dont l'id correspond à celui d'Hitchcock.
SELECT titre FROM Film WHERE id_realisateur IN (
  SELECT id FROM Artiste WHERE nom = 'Hitchcock');

Les films parus avant 2000, avec Clint Eastwood comme acteur. Les étapes :

  • on commence par récupérer l'id de Clint Eastwood,
  • on récupère les id des films dans lesquels Clint Eastwood à jouer,
  • puis on affiche les films dont l'id est dans celui des films dans lesquels Clint Eastwood à jouer. On rajoute une condition annee < 2000 pour ne garder que les films d'avant l'an 2000.
SELECT titre FROM Film WHERE annee < 2000 AND id IN (
  SELECT id_film FROM ROLE WHERE id_acteur IN (
    SELECT id FROM Artiste WHERE nom LIKE 'Eastwood' AND prenom LIKE 'Clint'));
lang/sql.1478984744.txt.gz · Dernière modification : 2016/11/12 22:05 de root