Debutant : SQL : EXISTS et NOT EXISTS qqun peut m'expliké ?!! - SQL/NoSQL - Programmation
Marsh Posté le 13-04-2002 à 16:16:41
CREATE TABLE IF NOT EXISTS news (
date DATE NOT NULL,
news TEXT NOT NULL,
INDEX (date)
);
--> Créé la table seulement si elle n'existe pas, sinon ne fait rien !
Marsh Posté le 13-04-2002 à 17:03:27
spouloungani a écrit a écrit : Bè tout est dans le titre je débute en SQL et je comprends pas les clauses EXISTS et NOT EXISTS, si qqun peut m'expliquer avec des mots po trop kompliké !! Merci d'avance... |
select nomx
from TABLEX
where nomx (not) exists (select nomy
from tabley
where attributs=z;
-->à priori sélectionne tous les noms de la table X qui existent (ou non) dans le "sous-select"(=noms de la table Y avec vomme condition attribut=z)
-->Dans un where, c'est l'équivalent du IN ou NOT IN
Marsh Posté le 13-04-2002 à 21:17:38
Ok, merci pour les exemples !!
Puisque j'y suis, si vous pouvez m'expliquer comment on rajoute une clé primaire dans une table qui n'en contient pas (pas au moment ou on crée la table quoi).
Marsh Posté le 15-04-2002 à 10:01:24
Exemple d'une clé primaire composée de 2 champs COL1 et COL2
ALTER TABLE NOM_DE_LA_TABLE ADD( PRIMARY KEY (COL1, COL2));
[jfdsdjhfuetppo]--Message édité par irulan--[/jfdsdjhfuetppo]
Marsh Posté le 15-04-2002 à 10:06:29
Ca permet également d'exprimer des divisions en SQL, avec le double NOT EXISTS du genre :
Sélection de tous des spectateurs ayant vu tous les films (gd classique du SQL)
SELECT * from Spectateur S1
WHERE NOT EXISTS ( SELECT * from Film F
WHERE NOT EXISTS ( SELECT * from Spectateur S2
WHERE F.film_id = S2.film_id AND S1.spec_id = S2.spec_id))
[jfdsdjhfuetppo]--Message édité par robbystar--[/jfdsdjhfuetppo]
Marsh Posté le 15-04-2002 à 15:17:36
Merci bcp !! J'avoue que pour la division j'ai du mal avec le double NOT EXISTS mais bon, on peut faire autrement...
Marsh Posté le 12-04-2002 à 23:25:27
Bè tout est dans le titre je débute en SQL et je comprends pas les clauses EXISTS et NOT EXISTS, si qqun peut m'expliquer avec des mots po trop kompliké !!
Merci d'avance...
---------------
| Nicolas à Lima |