Debutant : SQL : EXISTS et NOT EXISTS qqun peut m'expliké ?!!

Debutant : SQL : EXISTS et NOT EXISTS qqun peut m'expliké ?!! - SQL/NoSQL - Programmation

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 |
Reply

Marsh Posté le 12-04-2002 à 23:25:27   

Reply

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 !

Reply

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

Reply

Marsh Posté le 13-04-2002 à 21:17:38    

Ok, merci pour les exemples !!  :jap:  
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).


---------------
| Nicolas à Lima |
Reply

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]

Reply

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]


---------------
Yoko, our beloved Meuh - R.I.P ( 27/06/2004 )
Reply

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...


---------------
| Nicolas à Lima |
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed