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 :

[Débutant] Conception requêtes SQL


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut [Débutant] Conception requêtes SQL
    Bonjour à tous,

    J'ai commencé cet année les bases de données et je dois dire que j'ai un peu de mal :-/

    J'aimerais savoir s'il y a une méthode pour trouver la bonne requête à faire pour résoudre un problème. Je tombe sur certain exercice et j'ai un peu du mal à trouver la requête (qui va bien).

    Avez-vous une méthode pour résoudre vos problèmes ? Si oui laquelle ?
    J'essaie de vérifier mes requêtes avec l'algèbre relationnel mais rien n'y fait. J'arrive jamais au même résultat.

    Je vous remerci pour votre aide bonne journée.

  2. #2
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Pitié aider moi, je galère vraiment pour trouver les requêtes qui me retourne le résultat attendu. Il y a bien un manière mathématique pour faire cela non ?

    Exemple : Quels sont les cours pui ont lieu en salle F312 et qui on 10 inscrit ou plus ?

    pour cela j'ai 4 table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Etudiant (enum, enom, discipline, niveau, age)
    Inscription (enum, cnom)
    Professeur (Pid, pnom, ufrid)
    Cours (nom, date, salle, pid)
    Je sais que pour cela, je devrais en tout cas avoir le nom des cours dans ma réponse, mais le reste ...

    Je m'arrête à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT C.nom
    FROM Cours C, Inscription I
    WHERE C.nom = I.cnom AND C.salle = "F312"
    Pour le reste j'invoque les esprit mais évidemment ça marche pas...

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut
    il te reste juste la partie 10 inscrit ou plus à traduire.

    Je ne sais pas ce que tu veux?
    une méthode pour savoir faire des requêtes sql?

  4. #4
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT C.nom, Count(*) As Nombre
      FROM Cours C INNER JOIN Inscription I
                   ON I.Cnom = C.nom
     WHERE C.salle = 'F312'
     GROUP BY C.cnom
    HAVING Count(*) >= 10
    [Édite par Xo] : alias corrigé dans le Group By, parenthèses inutiles enlevées [/Edit]

  5. #5
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Merci pour vos réponse ,

    Citation Envoyé par claralavraie
    une méthode pour savoir faire des requêtes sql?
    C'est exactement ça Car le but c'est que je puisse le faire moi même.
    Merci

  6. #6
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Merci de jeter un oeil sur les Conseils à lire avant de poster, et de préciser en particulier le SGBD utilisé.

    En ce qui concerne la manipulation du langage SQL et l'écriture de requête, pas de secret, c'est comme pour toutes les disciplines, il faut avant tout pratiquer, ça ne tombe pas tout cuit du ciel ...

    Pour débuter, je te conseille 2 liens, qui abordent la construction de requête progressivement et en détail :
    - Le simple (?) SELECT
    - Les jointures, ou comment interroger plusieurs tables

  7. #7
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Pardon Xo j'aurais du préciser mon SGBD.

    Alors mon SGBD est une feuille de papier A4 et un crayon gris et j'utilise SQL2.

    Malheureusement nous ne travaillons pas sur machine, c'est pour cela que j'ai autant de mal avec mes requêtes, et s'est aussi pour ça que je cherche une méthode pour écrire mes requêtes selon une question posé.

    Voilà merci pour vos commentaire et votre patience

    PS: J'oubliais évidemment que j'avais déjà consulté les liens que tu proposes Xo c'est la première chose que j'ai faite

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par LhIaScZkTer
    Alors mon SGBD est une feuille de papier A4 et un crayon gris et j'utilise SQL2.

    Malheureusement nous ne travaillons pas sur machine, c'est pour cela que j'ai autant de mal avec mes requêtes, et s'est aussi pour ça que je cherche une méthode pour écrire mes requêtes selon une question posé.
    Je reconnais que c'est ennuyeux pour tester la validité de ses requêtes, surtout quand on débute ...

    Si tu as la chance d'avoir un PC, je te conseille de télécharger un SGBD gratuit : MySQL est le plus courant et relativement léger à administrer.

    un petit comparatif ici au cas où : http://fadace.developpez.com/sgbdcmp/
    (manque OOBase, le petit nouveau gratuit inclus à OpenOffice 2.0, une sorte d'access-like).

  9. #9
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Voilà je suis entrain de faire de faire un exercice (sur papier), dont l'énnoncé est le suivant :

    Quels est le nom des étudiants inscrit dans deux cours différents qui ont lieu au même moment.

    Ma réponse est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT E.enom
    FROM Etudiant E, Inscription I, Cours C
    WHERE E.enum = I.enum AND I.cnom = C.nom AND
    C.date = (SELECT C1.date
    FROM Cours C1, Inscription I1, Etudiant E1
    WHERE E1.enum = I1.enum AND I1.cnom <> C1.nom)
    Ma requêtes est-elle bonne par apport à mon énnoncé?

    Merci pour votre aide.

  10. #10
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Ce serait sympa de nous fournir un jeu d'essais détaillé, ça augmenterait tes chances de réponses

    Je commence :
    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
    CREATE TABLE Etudiant (
    Enum NUMBER (10),
    Enom VARCHAR2 (32),
    Discipline VARCHAR (32),
    Niveau NUMBER (10),
    Age NUMBER (10));
     
    CREATE TABLE Inscription (
    Enum NUMBER (10),
    Cnom VARCHAR2 (32));
     
    CREATE TABLE Professeur (
    Pid NUMBER (10),
    Pnom VARCHAR2 (32),
    UfrId NUMBER (10));
     
    CREATE TABLE Cours(
    Nom VARCHAR2 (32),
    Cdate DATE,           -- Attention, ne pas utiliser DATE comme nom de champ !!!
    Salle VARCHAR2 (32),
    Pid NUMBER (10));
    Fournis-nous les instructions INSERT pour le jeu de tests, et je pourrais alors tester tes requêtes

  11. #11
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    Merci beaucoup pour ton aide Xo.

    Par jeux d'essaie tu veux dire une base de données que j'aurais créé pour tester mes requêtes ?

    Le problème c'est que j'en ai pas, d'ailleurs en cours comme on ne travail que sur papier...
    C'est bien ça mon problème j'ai mon exam dans moin d'un mois et j'en suis toujours au même point. Il n'y a qu'un élève dans ma classe qui arrive à faire des requêtes à peu près correct. On se demande tous comment il fait car personne d'entre nous travail sur machine. Il faut dire que c'est celui qui à le plus d'expérience, puisqu'il à déjà commencé à attaqué son Master.

    Je crois que le mieux c'est que je prenne contact avec mon prof, seul lui pourra me dire se qu'il attend réellement de nous.

    Je mettrais quelques élément de ça réponse pour la méthodologie à adopter.

    Merci encore pour ton aide Xo

  12. #12
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Par jeu d'essai, ou test case, j'entend qqchose comme ça :
    http://www.developpez.net/forums/vie...439542&start=5

    En gros, un script SQL contenant :
    1) les création de table (je l'ai déjà fait ci-dessus) : ça permet juste de tester si la syntaxe de la requête est correcte, c'est déjà un premier point. J'ai d'ailleurs pu vérifir (et corriger) la requête fournie par inoussa plus haut.
    2) toutes les instructions INSERT permettant de créer les données qui permettront de vérifier la validité de la requête, çàd si cela renvoie bien les résultats attendus.

    Donc j'attends juste que tu nous tapes les instructions INSERT avec les données que tu souhaites insérer

  13. #13
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    Salut.
    essait ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT E.enum, E.enom, C.dateC, Count(*)
      FROM Etudiant E
      INNER JOIN Inscription I
        ON ( I.enum = E.enum )
      INNER JOIN Cours C
        ON ( C.nom = I.cnom ) 
      GROUP BY E.enum, E.enom, C.dateC
      HAVING ( Count(*) > 1 )
    PS : Pour le formatage( parentheses et autres...), je préfère le mien pour plus de lisibilité... question de gout ... ca ne se discute pas...

  14. #14
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Bon ça va être une bonne base de données, car il faut que pour chaque question que j'ai elle me retourne une réponse. Alors voici mon jeu d'essai.
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    -- phpMyAdmin SQL Dump
    -- version 2.6.1
    -- http://www.phpmyadmin.net
    -- 
    -- Serveur: localhost
    -- Généré le : Mardi 10 Janvier 2006 à 20:42
    -- Version du serveur: 4.1.9
    -- Version de PHP: 4.3.10
    -- 
    -- Base de données: `ecole`
    -- 
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `cours`
    -- 
     
    CREATE TABLE `cours` (
      `nom` varchar(50) NOT NULL default '',
      `date` time NOT NULL default '00:00:00',
      `salle` varchar(20) NOT NULL default '',
      `pid` int(20) NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- 
    -- Contenu de la table `cours`
    -- 
     
    INSERT INTO `cours` VALUES ('Analyse Factorielle', '00:00:00', 'F312', 90873519);
    INSERT INTO `cours` VALUES ('Archéologie', '00:00:00', 'F315', 248965255);
    INSERT INTO `cours` VALUES ('Bases de données', '00:00:00', 'F309', 142519864);
    INSERT INTO `cours` VALUES ('Chimie organique', '00:00:00', 'F314', 489221823);
    INSERT INTO `cours` VALUES ('Droit', '00:00:00', 'F315', 90873519);
    INSERT INTO `cours` VALUES ('Electronique', '00:00:00', 'F312', 254099823);
    INSERT INTO `cours` VALUES ('Fiscalité', '00:00:00', 'C362', 89221823);
    INSERT INTO `cours` VALUES ('Histoire de Lart', '00:00:00', 'F312', 489221823);
    INSERT INTO `cours` VALUES ('Industrie laitière', '00:00:00', 'F315', 356187925);
    INSERT INTO `cours` VALUES ('Intelligence artificielle', '00:00:00', 'F306', 0);
    INSERT INTO `cours` VALUES ('Latin', '00:00:00', 'F314', 248965255);
    INSERT INTO `cours` VALUES ('Marketing', '00:00:00', 'F309', 489221823);
    INSERT INTO `cours` VALUES ('Mathématiques', '00:00:00', 'F315', 489221823);
    INSERT INTO `cours` VALUES ('Mécanique', '00:00:00', 'F309', 11564812);
    INSERT INTO `cours` VALUES ('Organisation politique', '00:00:00', 'G204', 619023588);
    INSERT INTO `cours` VALUES ('Psychologie', '00:00:00', '', 619023588);
    INSERT INTO `cours` VALUES ('Qualité de lair', '00:00:00', 'F312', 11564812);
    INSERT INTO `cours` VALUES ('Réseaux de communication', '00:00:00', 'G204', 141582651);
    INSERT INTO `cours` VALUES ('Risque aéronautique', '00:00:00', 'C362', 11564812);
    INSERT INTO `cours` VALUES ('Sociologie', '00:00:00', 'F312', 159542516);
    INSERT INTO `cours` VALUES ('Structures de données', '00:00:00', 'F315', 489456522);
    INSERT INTO `cours` VALUES ('Systèmes informatiques', '00:00:00', 'G204', 489456522);
    INSERT INTO `cours` VALUES ('Urbanisme', '00:00:00', 'G204', 489221823);
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `etudiant`
    -- 
     
    CREATE TABLE `etudiant` (
      `enum` int(100) NOT NULL default '0',
      `enom` varchar(100) NOT NULL default '',
      `discipline` varchar(50) NOT NULL default '',
      `niveau` varchar(10) NOT NULL default '',
      `age` int(20) NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- 
    -- Contenu de la table `etudiant`
    -- 
     
    INSERT INTO `etudiant` VALUES (51135593, 'Maria White', 'Anglais', 'M1', 21);
    INSERT INTO `etudiant` VALUES (60839453, 'Charles Harris', 'Architecture', 'M1', 22);
    INSERT INTO `etudiant` VALUES (99354543, 'Susan Martin', 'Droit', 'L3', 20);
    INSERT INTO `etudiant` VALUES (112348546, 'Joseph Thompson', 'Informatique', 'L1', 19);
    INSERT INTO `etudiant` VALUES (115987938, 'Christopher Garcia', 'Informatique', 'L3', 20);
    INSERT INTO `etudiant` VALUES (132977562, 'Angela Martinez', 'Histoire', 'M1', 20);
    INSERT INTO `etudiant` VALUES (269734834, 'Thomas Robinson', 'Psychologie', 'L2', 18);
    INSERT INTO `etudiant` VALUES (280158572, 'Margaret Clark', 'Biologie animale', 'L2', 18);
    INSERT INTO `etudiant` VALUES (301221823, 'Juan Rodriguez', 'Psychologie', 'L3', 20);
    INSERT INTO `etudiant` VALUES (318548912, 'Dorthy Lewis', 'Finance', 'L2', 18);
    INSERT INTO `etudiant` VALUES (320874981, 'Daniel Lee', 'Génie électrique', 'L2', 17);
    INSERT INTO `etudiant` VALUES (322654189, 'Lisa Walker', 'Informatique', 'L1', 17);
    INSERT INTO `etudiant` VALUES (348121549, 'Paul Hall', 'Informatique', 'L3', 18);
    INSERT INTO `etudiant` VALUES (351565322, 'Nancy Allen', 'Comptabilité', 'L3', 19);
    INSERT INTO `etudiant` VALUES (451519864, 'Mark Young', 'Finance', 'L2', 18);
    INSERT INTO `etudiant` VALUES (455798411, 'Luis Hernandez', 'Génie électrique', 'L2', 17);
    INSERT INTO `etudiant` VALUES (462156489, 'Donald King', 'Mécanique', 'L1', 19);
    INSERT INTO `etudiant` VALUES (550156548, 'George Wright', 'Education', 'M1', 21);
    INSERT INTO `etudiant` VALUES (552455318, 'Ana Lopez', 'Informatique', 'M1', 19);
    INSERT INTO `etudiant` VALUES (556784565, 'Kenneth Hill', 'Histoire', 'M1', 21);
    INSERT INTO `etudiant` VALUES (567354612, 'Karen Scott', 'Informatique', 'L2', 18);
    INSERT INTO `etudiant` VALUES (573284895, 'Steven Green', 'Kinésithérapie', 'L1', 19);
    INSERT INTO `etudiant` VALUES (574489456, 'Betty Adams', 'Economie', 'L3', 20);
    INSERT INTO `etudiant` VALUES (578875478, 'Edward Baker', 'Histoire', 'M1', 21);
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `inscription`
    -- 
     
    CREATE TABLE `inscription` (
      `enum` int(100) NOT NULL default '0',
      `cnom` varchar(50) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- 
    -- Contenu de la table `inscription`
    -- 
     
    INSERT INTO `inscription` VALUES (51135593, 'Risque aéronautique');
    INSERT INTO `inscription` VALUES (60839453, 'Mécanique');
    INSERT INTO `inscription` VALUES (99354543, 'Droit');
    INSERT INTO `inscription` VALUES (112348546, 'Bases de données');
    INSERT INTO `inscription` VALUES (112348546, 'Systèmes informatique');
    INSERT INTO `inscription` VALUES (115987938, 'Bases de données');
    INSERT INTO `inscription` VALUES (115987938, 'Systèmes informatique');
    INSERT INTO `inscription` VALUES (132977562, 'Risque aéronautique');
    INSERT INTO `inscription` VALUES (301221823, 'Fiscalité');
    INSERT INTO `inscription` VALUES (301221823, 'Sociologie');
    INSERT INTO `inscription` VALUES (322654189, 'Bases de données');
    INSERT INTO `inscription` VALUES (322654189, 'Chimie organique');
    INSERT INTO `inscription` VALUES (455798411, 'Electronique');
    INSERT INTO `inscription` VALUES (455798411, 'Systèmes informatiques');
    INSERT INTO `inscription` VALUES (550156548, 'Mécanique');
    INSERT INTO `inscription` VALUES (552455318, 'Réseaux de communication');
    INSERT INTO `inscription` VALUES (552455318, 'Systèmes informatique');
    INSERT INTO `inscription` VALUES (556784565, 'Qualité de l''air');
    INSERT INTO `inscription` VALUES (567354612, 'Structure de données');
    INSERT INTO `inscription` VALUES (567354612, 'Systèmes informatiques');
    INSERT INTO `inscription` VALUES (574489456, 'Urbanisme');
    INSERT INTO `inscription` VALUES (578875478, 'Qualité de l''air');
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `professeur`
    -- 
     
    CREATE TABLE `professeur` (
      `pid` int(20) NOT NULL default '0',
      `pnom` varchar(50) NOT NULL default '',
      `ufrid` int(20) NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- 
    -- Contenu de la table `professeur`
    -- 
     
    INSERT INTO `professeur` VALUES (11564812, 'Jean Seigne', 68);
    INSERT INTO `professeur` VALUES (90873519, 'Gilles Hey', 11);
    INSERT INTO `professeur` VALUES (141582651, 'Marie Time', 20);
    INSERT INTO `professeur` VALUES (142519864, 'Heidi de Nantes', 20);
    INSERT INTO `professeur` VALUES (159542516, 'Edith Aurial', 33);
    INSERT INTO `professeur` VALUES (242518965, 'Aimé Défi', 68);
    INSERT INTO `professeur` VALUES (248965255, 'Jules Yenne', 12);
    INSERT INTO `professeur` VALUES (254099823, 'Bernard Lermite', 68);
    INSERT INTO `professeur` VALUES (287321212, 'Angèle Leau', 12);
    INSERT INTO `professeur` VALUES (356187925, 'Constant Tine', 12);
    INSERT INTO `professeur` VALUES (486512566, 'Jean Aymar', 20);
    INSERT INTO `professeur` VALUES (489221823, 'Flora Lie', 33);
    INSERT INTO `professeur` VALUES (489456522, 'Amand Modit', 20);
    INSERT INTO `professeur` VALUES (548977562, 'Léon Teuz', 20);
    INSERT INTO `professeur` VALUES (619023588, 'Tim Hide', 11);
    si possible remplacer MyISAM par InnoDB pour gérer les contrainte d'intégrité.

    J'ai juste un petit problème dans ma table cours avec le champ date (time) . J'ai une date au format Ma 2-3:15 ou encore Ve 1-2:50 mais ça ne la prend pas en charge, pourquoi ? Cela à été repris d'une base Access.

  15. #15
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Tip top Inoussa ça me retourne un résultat. Bon je ne sais pas si le résultat est celui que je cherchais, mais en tout cas c'est un bon début

    j'ai une correction de la part de mon prof pour cet exercice.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT E.enom
    FROM Etudiant E, Inscription I1, Cours C1, Inscription I2, Cours C2
    WHERE E.enum = I1.enum
    AND I1.cnom = C1.nom
    AND E.enum = I2.enum
    AND I2.cnom = C2.nom
    AND C1.nom <> C2.nom
    AND C1.date = C2.date
    C'est quoi la différence entre ta requête et celle ci ?


    [/b]

  16. #16
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par LhIaScZkTer
    C'est quoi la différence entre ta requête et celle ci ?
    La manière de faire les jointures. Les 2 fonctionnent, mais Inoussa a proposé une requête compatible avec la norme SQL2, et pas ton prof ...

    cf http://sql.developpez.com/sqlaz/jointures/#L2
    Les jointures normalisées s'expriment à l'aide du mot clef JOIN dans la clause FROM. Suivant la nature de la jointure, on devra préciser sur quels critères se base la jointure.

Discussions similaires

  1. Conception / Requête SQL
    Par archonte dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/02/2012, 01h15
  2. [débutant] Help requète sql
    Par eric8787 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2007, 23h12
  3. [Débutant] Paramétrage d'une requête SQL
    Par sunchai dans le forum Oracle
    Réponses: 2
    Dernier message: 31/07/2006, 11h48
  4. [débutant] Différence de requête SQL
    Par mchicoix dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/03/2006, 17h39
  5. [débutante] Requête SQL
    Par a_nana dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/11/2005, 21h51

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