Ceci est une ancienne révision du document !
Table des matières
Administration
Ajout un nouvel utilisateur user
ayant toutes les autorisations sur toutes les tables de la base de donnée datab
avec le mot de passe password
.
GRANT ALL PRIVILEGES ON datab.* TO USER@localhost IDENTIFIED BY 'password'
Requête SELECT
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)
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'));