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

 MySQL Discussion :

Diverses questions sur la création de tables


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut Diverses questions sur la création de tables
    Salut à tous,


    Je viens d'acheter un livre d'apprentissage du SQL dans lequel il donne le code de création des tables.
    Le problème c'est que justement j'ai acheter un livre pour apprendre à faire tout ca et comme le script ne passe pas sous TOADMySQL j'ai du mal à me créé ma base de travail pour les exercices futur.

    Surtout que j'apprends pas la même occasion MySQL donc pas si évident que ca. Je me sens pas trop d'acheter encore un bouquin spécialement pour apprendre MySQL pour savoir faire ou plutôt corriger le script pour pouvoir apprendre le SQL.
    De plus je cherche à apprendre MySQL sans PHP alors je vous raconte même pas la rareté des infos a ce sujet. Apparemment si on a une base de données MySQL installer sur son poste c'est qu'il faut OBLIGATOIREMENT faire du PHP sinon tes pas un vrai...

    Bon si je vous fourni le code en question (8 créations de table) pourriez-vous y jeter un œil et me dire ce qui ne va pas pour l'intégrer à une base de donnée et un schéma MySQL svp ?

    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
    -- table : T_UTILISATEUR_USR                               
    CREATE TABLE T_UTILISATEUR_USR 
    (  USR_ID               INTEGER              NOT NULL PRIMARY KEY,
       USR_MAIL             VARCHAR(256)         NOT NULL,
       USR_TITRE            CHAR(6)              NULL DEFAULT 'M.'
                            CHECK (VALUE IS NULL OR VALUE IN ('M.', 'Mlle.', 'Mme.')),
       USR_NOM              CHAR(32)             NULL,
       USR_PRENOM           VARCHAR(32)          NULL,
       USR_ORGANISATION     VARCHAR(128)         NULL)
     
    -- table : T_FORUM_FRM
    CREATE TABLE T_FORUM_FRM 
    (  FRM_ID               INTEGER              NOT NULL PRIMARY KEY,
       FRM_NOM              CHAR(64)             NOT NULL,
       FRM_SUJET            VARCHAR(256)         NULL,
       FRM_DATE_CREATION    TIMESTAMP            NOT NULL)
     
     
    -- table : T_FOURNINET_FAI      
    CREATE TABLE T_FOURNINET_FAI
    (  FAI_ID               INTEGER              NOT NULL PRIMARY KEY,
       FAI_NOM              CHAR(64)             NOT NULL)
     
    -- table : TJ_ABONNE_ABN 
    CREATE TABLE TJ_ABONNE_ABN 
    (  USR_ID               INTEGER              NOT NULL,
       FAI_ID               INTEGER              NOT NULL,
       CONSTRAINT PK_ABN PRIMARY KEY  (USR_ID, FAI_ID),
       constraint FK_ABN_FAI foreign key (FAI_ID)
                  references T_FOURNINET_FAI (FAI_ID),
       constraint FK_ABN_USR foreign key (USR_ID)
                  references T_UTILISATEUR_USR (USR_ID))
     
    -- table : TJ_INSCRIT_ISC 
    CREATE TABLE TJ_INSCRIT_ISC 
    (  USR_ID               INTEGER               NOT NULL,
       FRM_ID               INTEGER               NOT NULL,
       ISC_MOMENT           TIMESTAMP             NOT NULL,
       CONSTRAINT PK_ISC PRIMARY KEY  (USR_ID, FRM_ID),
       constraint FK_ISC_FRM foreign key (FRM_ID)
                  references T_FORUM_FRM (FRM_ID),
       constraint FK_ISC_USR foreign key (USR_ID)
                  references T_UTILISATEUR_USR (USR_ID))
     
    -- table : T_SERVEUR_SRV 
    CREATE TABLE T_SERVEUR_SRV 
    (  SRV_ID               INTEGER              NOT NULL PRIMARY KEY,
       FAI_ID               INTEGER              NOT NULL,
       SRV_ADR_IP           VARCHAR(15)          NOT NULL,
       SRV_NOM              VARCHAR(256)         NOT NULL,
       constraint FK_SRV_FAI foreign key (FAI_ID)
                  references T_FOURNINET_FAI (FAI_ID))
     
    -- table : TJ_RECENSE_RCS
    CREATE TABLE TJ_RECENSE_RCS 
    (  SRV_ID               INTEGER              NOT NULL,
       FRM_ID               INTEGER              NOT NULL,
       CONSTRAINT PK_RCS PRIMARY KEY  (SRV_ID, FRM_ID),
       constraint FK_RCS_FRM foreign key (FRM_ID)
                  references T_FORUM_FRM (FRM_ID),
       constraint FK_RCS_SRV foreign key (SRV_ID)
                  references T_SERVEUR_SRV (SRV_ID))
     
    --- table : T_NEWS_NEW
    CREATE TABLE T_NEWS_NEW 
    (  NEW_ID               INTEGER              NOT NULL PRIMARY KEY,
       NEW_ID_PERE          INTEGER              NULL,
       USR_ID               INTEGER              NOT NULL,
       FRM_ID               INTEGER              NOT NULL,
       NEW_MOMENT           TIMESTAMP            NOT NULL,
       NEW_GLOBAL_ID        CHAR(16)             NOT NULL,
       NEW_TITRE            CHAR(256)            NOT NULL,
       NEW_TEXT             CLOB(2 GB)           NULL,
       constraint FK_NEW_FRM foreign key (FRM_ID)
                  references T_FORUM_FRM (FRM_ID),
       constraint FK_NEW_USR foreign key (USR_ID)
                  references T_UTILISATEUR_USR (USR_ID),
       constraint FK_NEW_NEW foreign key (NEW_ID_PERE)
                  references T_NEWS_NEW (NEW_ID))
     
     
    -- table : T_FICHIER_FIC
    CREATE TABLE T_FICHIER_FIC 
    (  FIC_ID               INTEGER              NOT NUL PRIMARY KEY,
       NEW_ID               INTEGER              NOT NULL,
       FIC_NOM              VARCHAR(128)         NOT NULL,
       FIC_TAILLE_O         INTEGER              NOT NULL,
       constraint FK_FIC_NEW foreign key (NEW_ID)
                  references T_NEWS_NEW (NEW_ID))

    Que le dieu MySQL vous protège

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Pour passer ce script, il faut
    1. que le serveur MySQL soit actif (lancé)
    2. que la base de données dans laquelle on crée ces tables existe
    3. qu'on soit connecté à cette base


    est-ce le cas ?

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    bonsoir qi130,

    Étant sous TOADmySQL je me suis donc bien connecté au serveur et il est actif. La base est elle aussi bien créé puisque je les fait en séparé avant de lancer la création des tables.

    Finalement je me suis acheté un livre sur MySQL que je li assez rapidement qui me permettre de trouver la réponse je l'espère.

    Mais dans le script fourni il n'y a rien qui te choque en tant qu'habitué à MySQL ?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    A moins que ça ait changé dans les toutes dernières versions de MySQL, je crois que la contrainte CHECK est acceptée syntaxiquement (encore heureux ! c'est du SQL standard !) mais n'est pas implémentée par MySQL donc non prise en compte.

    Il faudrait préciser le moteur utilisé après la parenthèse fermante de chaque requête CREATE TABLE. Ici, comme il y a des contraintes de clé étrangère, il faut spécifier ENGINE = 'InnoDB'.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Pour compléter les remarques de Phil :

    • Il faut un point-virgule à la fin de chaque requête
    • Au début de T_NEWS_NEW, il y a un commentaire introduit par trois tirets... MySQL exige qu'il y ait un espace après le deuxième tiret
    • Dans la même requête, il faut remplacer CHAR(256) par CHAR(255) ou VARCHAR(256), et CLOB(2 GB) par LONGTEXT
    • Sur T_FICHIER_FIC, il manque un L au premier NOT NULL


    Que ces petites difficultés d'adaptation ne te détournent pas du bouquin de Fred Brouard (SQLPro), il est excellent !

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    Merci à vous pour vos remarques.

    Dans la lecture de mon livre sur MySQL je n'est pas trouvé de possibilités de CHECK. Je n'ai pas encore bien cerné l'utilité des différents moteurs de base de données mais je pense qu'il y a des pistes dans ce sens.

    De plus les contraintes n'ont pas été non plus mentionnées. Je n'est codé que des PRIMARY KEY sans FOREIGN KEY.

    Pour ce qui est de T_NEWS_NEW je l'es viré car apparemment MySQL n'a pas la même conception de la gestion des utilisateurs que ORACLE par exemple. Il n'y a pas de schéma utilisateur, mais uniquement des utilisateurs qui peuvent accéder ou non aux tables communes.

    Mon script a donc été grandement simplifié en espérant que cela ne me gène pas dans l'apprentissage de SQL avec mon livre.

    Il faut que je me renseigne sur cette histoire de la non implémentation de MySQL avec les FOREIGN KEY. Je trouve ca vraiment bizarre pour une BDD de ne pas implémenter cela.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelques questions sur la création d'un logiciel
    Par dedesite dans le forum Langage
    Réponses: 7
    Dernier message: 02/03/2007, 23h07
  2. Diverses questions sur les fonctions de conversion
    Par Louis-Guillaume Morand dans le forum Access
    Réponses: 12
    Dernier message: 27/12/2006, 10h56
  3. Réponses: 9
    Dernier message: 28/07/2006, 17h59
  4. [HTML] Diverses questions sur le HTML
    Par Ekin0X dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 29/06/2006, 10h46
  5. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 12h46

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