lang:sql
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
lang:sql [2016/11/12 14:28] – Création avec "Requête SELECT" root | lang:sql [2020/04/27 10:26] (Version actuelle) – maff -> html root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Soit la base de donnée | + | =====Administration===== |
+ | Ajout un nouvel utilisateur '' | ||
+ | <code sql> | ||
+ | GRANT ALL PRIVILEGES ON datab.* TO user@localhost IDENTIFIED BY ' | ||
+ | </ | ||
+ | =====Requête SELECT===== | ||
+ | Soit la base de donnée : | ||
* Film (__id__, titre, annee, // | * Film (__id__, titre, annee, // | ||
* Artiste (__id__, nom, prenom) | * Artiste (__id__, nom, prenom) | ||
* Pays (__code__, nom, langue) | * Pays (__code__, nom, langue) | ||
* Role (__id_film__, | * Role (__id_film__, | ||
- | |||
- | =====Requête SELECT===== | ||
====Base==== | ====Base==== | ||
Renvoie les colonnes d'un. table. | Renvoie les colonnes d'un. table. | ||
Ligne 17: | Ligne 21: | ||
<code sql> | <code sql> | ||
SELECT p.* FROM Pays p; | SELECT p.* FROM Pays p; | ||
+ | </ | ||
+ | |||
+ | En triant les résultats | ||
+ | <code sql> | ||
+ | SELECT titre, annee FROM Film ORDER BY annee DESC; | ||
</ | </ | ||
====Conditions restrictives==== | ====Conditions restrictives==== | ||
+ | ===Simple=== | ||
Une seule condition. | Une seule condition. | ||
<code sql> | <code sql> | ||
Ligne 32: | Ligne 42: | ||
SELECT titre FROM Film WHERE annee BETWEEN 1960 AND 1970; | SELECT titre FROM Film WHERE annee BETWEEN 1960 AND 1970; | ||
</ | </ | ||
- | Condition d'une valeur '' | + | Condition d'une valeur '' |
<code sql> | <code sql> | ||
SELECT nom FROM Artiste WHERE annee_naissance IS NULL; | SELECT nom FROM Artiste WHERE annee_naissance IS NULL; | ||
Ligne 50: | Ligne 60: | ||
</ | </ | ||
+ | ===Avec sous-requête=== | ||
+ | Uniquement la ligne avec la valeur maximale | ||
+ | <code sql> | ||
+ | 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' | ||
+ | <code sql> | ||
+ | SELECT titre FROM Film WHERE id_realisateur IN ( | ||
+ | SELECT id FROM Artiste WHERE nom = ' | ||
+ | </ | ||
+ | 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 '' | ||
+ | <code sql> | ||
+ | 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 ' | ||
+ | </ | ||
+ | |||
+ | =====Modifier une table existante===== | ||
+ | ====Changer une colonne faisant office de clé étranger sur une autre table==== | ||
+ | Intérêt : ajouter l' | ||
+ | |||
+ | Bien mettre le même type de donnée (ici '' | ||
+ | <code sql> | ||
+ | LOCK TABLES Artiste WRITE, Film WRITE, Role WRITE; | ||
+ | |||
+ | ALTER TABLE Film DROP FOREIGN KEY Film_ibfk_1; | ||
+ | ALTER TABLE Role DROP FOREIGN KEY Role_ibfk_2; | ||
+ | |||
+ | ALTER TABLE Artiste MODIFY id INT(11) AUTO_INCREMENT; | ||
+ | |||
+ | ALTER TABLE Film ADD CONSTRAINT Film_ibfk_1 FOREIGN KEY (id_realisateur) REFERENCES Artiste(id) ON DELETE RESTRICT ON UPDATE RESTRICT; | ||
+ | ALTER TABLE Role ADD CONSTRAINT Role_ibfk_2 FOREIGN KEY (id_acteur) REFERENCES Artiste(id) ON DELETE RESTRICT ON UPDATE RESTRICT; | ||
+ | |||
+ | UNLOCK TABLES;</ | ||
+ | |||
+ | [[http:// |
lang/sql.1478957284.txt.gz · Dernière modification : 2016/11/12 14:28 de root