IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

besoin d'aide sql


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut besoin d'aide sql
    * Bonjour, *

    J'ai besoin d'aide pour cette exercice , toute réponse sera appréciée.

    Merci d'avance.

    L’exercice est lié à la base de données cassette.

    carolina
    Images attachées Images attachées

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Et avec ça, un p'tit café et des galettes de Pont-Aven

    Plus sérieusement, qu'avez vous commencé à faire ?

    Nous pouvons vous aiguiller mais en aucune façon faire vos devoirs à votre place !

    Cordialement,

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 168
    Points : 7 421
    Points
    7 421
    Billets dans le blog
    1
    Par défaut
    J'aime bien le "Travail à faire individuellement" en entête des exercices...

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 82
    Points : 140
    Points
    140
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Bonjour,

    Et avec ça, un p'tit café et des galettes de Pont-Aven

    Plus sérieusement, qu'avez vous commencez à faire ?

    Nous pouvons vous aiguiller mais en aucune façon faire vos devoir à votre place !

    Cordialement,

    Bonjour Carolina,

    Je vois que tu as un devoir mais tu as un an de retard. C'est à rendre en 2011. Plus sérieusement maintenant, tu as déjà commencé à faire quelque chose? Tu bloques quelque part?

    Je n'ai pas de SQL Server sous la main, mais je vais essayer de rester proche de la syntaxe SQL 'standard'.

    La première chose que tu dois faire, c'est de modéliser tes tables. Dans ton fichier cassettes.pdf, tu as un beau modèle de données. Je vais te faire une version Oracle de ton exercice:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    CREATE TABLE membre
    (
      no_membre      VARCHAR2(10) NOT NULL, 
      prenom_membre  VARCHAR2(30) NOT NULL, 
      nom_membre     VARCHAR2(30) NOT NULL, 
      addresse       VARCHAR2(50) NOT NULL, 
      telephone      VARCHAR2(14) NOT NULL, 
      date_nais      DATE, 
     
      CONSTRAINT PK_membre PRIMARY KEY(no_membre)
    );
     
    CREATE TABLE location
    (
      no_location VARCHAR2(10) NOT NULL, 
      date_location DATE NOT NULL, 
      montant_location NUMBER(15, 5) NOT NULL, 
      date_retour DATE, 
      heure_retour VARCHAR2(5), 
      montant_retard NUMBER(15, 5), 
      no_membre VARCHAR2(10), 
     
      CONSTRAINT PK_location PRIMARY KEY(no_location), 
      CONSTRAINT FK_location_membre FOREIGN KEY(no_membre) REFERENCES membre(no_membre), 
     
      -- La colonne heure_retour est de type VARCHAR à cinq positions, où la 
      -- troisième position est le caractère deux points (ex : ‘09:26’).
      CONSTRAINT CK_heure_retour CHECK (REGEXP_LIKE(heure_retour, '(^([01])?[0-9]|2[0-3]):[0-5][0-9]')) 
    );
     
    CREATE TABLE film
    (
      code_film VARCHAR2(10) NOT NULL, 
      titre_film VARCHAR2(50) NOT NULL, 
      annee_prod VARCHAR2(4) NOT NULL, 
      genre VARCHAR2(2) NOT NULL,
     
      CONSTRAINT PK_film PRIMARY KEY(code_film), 
      CONSTRAINT CK_annee_prod CHECK(REGEXP_LIKE(annee_prod, '^[[:digit:]]{4}$'))
    );
     
    -- je laisse les autres tables...

    1- On voudrait pouvoir conserver de façon facultative le no de cellulaire des membres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE membre 
      ADD no_cellulaire VARCHAR2(50);
    2- Pour des raisons légales, il est nécessaire de conserver la date de naissance des nouveaux membres. Il faudra éventuellement obtenir la date de naissance des membres existants. Rendez cette date obligatoire et inscrivez la date artificielle du 1er janvier 1900 pour tous les membres
    actuels en attendant d’obtenir leur vraie date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    -- pour les membres existant, je mets une valeur artificielle.
    UPDATE membre 
       SET date_nais = DATE '1900-01-01' 
     WHERE date_nais IS NULL;  
     
    -- pour les futurs membres, je mets une valeur par défaut
    ALTER TABLE membre 
      MODIFY date_nais DEFAULT DATE '1900-01-01' NOT NULL ;
    3- Il serait utile d’enregistrer l’identité du réalisateur avec les films. Ajouter une table pour gérer les réalisateurs et chaque film doit obligatoirement être associé avec un réalisateur, quitte à ajouter le réalisateur « Inconnu ».

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    -- Pour info, je n'ai pas voulu mettre des contraintes de type NOVALIDATE!
    CREATE TABLE realisateur 
    (
      no_realisateur VARCHAR2(10), 
      nom_realisateur VARCHAR2(50),
     
      CONSTRAINT PK_realisateur PRIMARY KEY (no_realisateur)
    );
    INSERT INTO realisateur(no_realisateur, nom_realisateur) VALUES('0', 'Inconnu');
     
    ALTER TABLE film 
      ADD no_realisateur VARCHAR2(10);
     
    UPDATE film 
       SET no_realisateur = '0';
     
    ALTER TABLE film MODIFY no_realisateur NOT NULL;
     
    ALTER TABLE film 
      ADD CONSTRAINT FK_film_realisateur 
     FOREIGN KEY (no_realisateur) REFERENCES realisateur;
    4- Ajouter Martin Scorsese et Stanley Kubrick parmi les réalisateurs. Indiquez Martin Scorsese comme le réalisateur de Raging Bull et Taxi Driver; Stanley Kubrick comme le réalisateur de A Clockwork Orange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    INSERT INTO realisateur VALUES('2', 'Martin Scorsese');
    INSERT INTO realisateur VALUES('3', 'Stanley Kubrick');
     
    UPDATE film 
       SET no_realisateur = '2'
     WHERE titre_film IN ('Raging Bull', 'Taxi Driver');
     
    UPDATE film 
       SET no_realisateur = '3'
     WHERE titre_film = 'A Clockwork Orange';
     
    COMMIT;
    5- Ajouter un total dans la location pour contenir la somme du montant de location et du montant de retard. Ce total est obligatoire puisque le montant de location est obligatoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE location 
      ADD montant_total NUMBER(15, 5) GENERATED ALWAYS AS (montant_location + montant_retard) VIRTUAL,;
    Bon, j'avoue que je n'ai testé aucun de ces ordres SQL et la syntaxe SQL Server est surement différente. Mais le but est que tu puisses avoir une idée de ce que tu dois faire. Honnêtement, il ne te faut pas plus d'une heure pour faire ton exercice complètement. Il suffit de te lancer. Et si tu bloques quelque part, fais signe

    A+

Discussions similaires

  1. besoin d'aide sql
    Par gentelmand dans le forum SQL
    Réponses: 13
    Dernier message: 16/03/2010, 14h31
  2. Besoin d'aide SQL
    Par Fiscardo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/07/2008, 21h48
  3. j'ai besoin d'aide [SQL SERVR]
    Par am.adnane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/01/2006, 14h24
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo