[Requêtes SQL] Requêtes suivantes correctes?

Requêtes suivantes correctes? [Requêtes SQL] - SQL/NoSQL - Programmation

Marsh Posté le 01-03-2008 à 15:21:45    

Soit le MPD suivant (dsl pour la qualité de la photo médiocre) (Extrait de l'examen de BDD de mon école d'il ya 2 ans).
 
http://img230.imageshack.us/img230/3448/dsc0039ro7.th.jpg
 
J'ai essayé de répondre aux questions mais je ne suis pas sur de ttes mes réponses   :sweat:  . J'ai aussi quelques fois des doutes sur une syntaxe ou une autre...
 

Citation :

Quels sont les numéros, noms et villes des adhérents entrés au club entre Avril 2000 et Juin 2000


 
J'ai répondu par

Code :
  1. SELECT NO_ADHERENT, NOM, VILLE FROM ADHERENT WHERE DATE_ENTREE > '%/04/2000' AND DATE_ENTREE < '%/06/2000'


 
Est-ce correct ?? L'utilisation des % pour les dates est possible ?
 
En parcourant le cours de SQLPro (excellent au passage) sur ce même site,
je pense que la syntaxe suivante marche aussi:
 

Code :
  1. SELECT NO_ADHERENT, NOM, VILLE FROM ADHERENT WHERE DATE_ENTREE BETWEEN '%/04/2000' AND '%/06/2000'


 
Possible?
 

Citation :

Liste de tous les films (titre et catégorie) réalisés en 2000


 

Code :
  1. SELECT TITRE, CATEGORIE FROM FILM WHERE REALISATION LIKE '%/%/2000'


 
Correct?
Sur le cours d'SQLPro j'ai vu la possibilité d'utiliser EXTRACT mais comme on tourne avec Oracle apparament ce standard n'est pas présent...
Y'a pas une autre façon d'écrire que la mienne plus "propre" ?
 
Petite dernière :)
 

Citation :

Quels sont les noms des adhérents de l'agence située à l'adresse 'BELLEVUE' ayant une valeur du compte inférieure à 25? utiliser un SELECT imbriqué


 

Code :
  1. SELECT NOM FROM ADHERENT WHERE COMPTE <25 AND CODE_AGENCE=(SELECT CODE_AGENCE FROM AGENCE WHERE ADRESSE_AGENCE='BELLEVUE')


 
C'est correct ?
 
Merci à vous pour vos réponses et conseils  :jap:  :jap:   (Y'aura surement d'autres questions demain  :pt1cable:  )

Message cité 1 fois
Message édité par revohsalf le 01-03-2008 à 15:31:22

---------------
rEvOhSaLf ©
Reply

Marsh Posté le 01-03-2008 à 15:21:45   

Reply

Marsh Posté le 02-03-2008 à 17:03:14    

commence déjà par tester tes requêtes, tu sauras tout de suite si ca marche ou pas...

Reply

Marsh Posté le 03-03-2008 à 10:32:00    

revohsalf a écrit :

Est-ce correct ?? L'utilisation des % pour les dates est possible ?


non et non :o par contre tu as les fonctions "year" et "month" qui devraient répondre à ton besoin

 
revohsalf a écrit :

Code :
  1. SELECT NO_ADHERENT, NOM, VILLE FROM ADHERENT WHERE DATE_ENTREE BETWEEN '%/04/2000' AND '%/06/2000'


Possible?


oui si les conditions sur les dates sont ecrites correctement

 
revohsalf a écrit :

Citation :

Quels sont les noms des adhérents de l'agence située à l'adresse 'BELLEVUE' ayant une valeur du compte inférieure à 25? utiliser un SELECT imbriqué

 
Code :
  1. SELECT NOM FROM ADHERENT WHERE COMPTE <25 AND CODE_AGENCE=(SELECT CODE_AGENCE FROM AGENCE WHERE ADRESSE_AGENCE='BELLEVUE')
 

C'est correct ?


Question pourrie ( tu le diras à ton prof)... Je vois pas de raison de préferer ici une sous requête à une jointure.
Ta requête est "correcte" mais juste pour faire chier le prof j'écrirais:

Code :
  1. SELECT
  2.  nom
  3. FROM
  4.  adherent ad  
  5.  INNER JOIN agence ag ON ad.code_agence = ag.code_agence
  6. WHERE
  7.  ad.compte < 25
  8.  AND ag.adresse_agence='BELLEVUE'
  9.  AND 1 = ( SELECT 1 FROM dual)
 


Message édité par anapajari le 03-03-2008 à 10:32:52

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

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