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

Administration MySQL Discussion :

Données Excel vers MySQL


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 144
    Points : 85
    Points
    85
    Par défaut Données Excel vers MySQL
    Bonjour, je voudrais importer des données contenues dans un fichier excel vers 1 table de ma base dans mysql via MySQL Administrator, comment faire?
    Toutes les recherches que j'ai faites portent sur PHPMyAdmin.
    Merci d'avance!!!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    MySql dispose de l'outil intégré suivant : http://dev.mysql.com/doc/refman/5.6/en/load-data.html


    Pour les programmes tierces vous devriez vous rapprochez des forums adéquates (l'éditeur)


    En interface d'admin vous pouvez sinon utilisez MySql WorkBench qui sais faire ce genre de chose, et est maintenu par Oracle.

  3. #3
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut Import Excel vers MySql
    Bonjour
    Pourriez-vous me donner plus de détails sur l'outil à utiliser sur Mysql Workbench !
    Je suis débutante et j suis pas très forte en Anglais (Le manuel est en Anglais)
    Merci d'avance !

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur de pirat.

    Voici un exemple d'utilisation du "load local infile".
    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
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS Cities
    --------------
     
    --------------
    CREATE TABLE Cities (
        Country     CHAR(2),
        City        CHAR(22),
        AccentCity  CHAR(3),
        Region      CHAR(2),
        Population  INT UNSIGNED NULL DEFAULT NULL,
        Latitude    FLOAT,
        Longitude   FLOAT,
            Date        DATETIME
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    TRUNCATE Cities
    --------------
     
    --------------
    set unique_checks      = 0
    --------------
     
    --------------
    set foreign_key_checks = 0
    --------------
     
    --------------
    set sql_log_bin        = 0
    --------------
     
    --------------
    alter table Cities DISABLE KEYS
    --------------
     
    --------------
    commit
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `Cities`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@F1, @F2, @F3, @F4, Population, Latitude, Longitude, @F8)
         set Country = trim(@F1),
                City = trim(@F2),
          AccentCity = trim(@F3),
              Region = trim(@F4),
                Date = outils.chgdate(@F8)
    --------------
     
    --------------
    commit
    --------------
     
    --------------
    alter table Cities ENABLE KEYS
    --------------
     
    --------------
    set unique_checks      = 1
    --------------
     
    --------------
    set foreign_key_checks = 1
    --------------
     
    --------------
    set sql_log_bin        = 1
    --------------
     
    --------------
    commit
    --------------
     
    --------------
    select  concat('>', Country,   '<') as 'Country',
            concat('>', City,      '<') as 'City',
            concat('>', AccentCity,'<') as 'AccentCity',
            concat('>', Region,    '<') as 'Region',
            concat('>', Population,'<') as 'Population',
            concat('>', Latitude,  '<') as 'Latitude',
            concat('>', Longitude, '<') as 'Longitude',
            concat('>', date,      '<') as 'Date'
    from `Cities`
    --------------
     
    +---------+-----------------------+------------+--------+------------+----------+-----------+-----------------------+
    | Country | City                  | AccentCity | Region | Population | Latitude | Longitude | Date                  |
    +---------+-----------------------+------------+--------+------------+----------+-----------+-----------------------+
    | >fr<    | >dijon bourgogne<     | >---<      | >bo<   | >500000<   | >200<    | >150<     | >2015-12-10 15:20:00< |
    | >fr<    | >paris ile de france< | >---<      | >il<   | >2000000<  | >100<    | >50<      | >2015-06-15 07:15:00< |
    | >fr<    | >nice paca<           | >---<      | >pa<   | >100000<   | >250<    | >75<      | >2015-07-25 19:58:00< |
    | >fr<    | >marseille paca<      | >---<      | >pa<   | >3000<     | >750<    | >15<      | >2015-03-12 19:58:00< |
    +---------+-----------------------+------------+--------+------------+----------+-----------+-----------------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Et voici le fichier à télécharger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "fr","dijon bourgogne","---","bo","500000","200","150","10/12/2015 15:20"
    "fr","paris ile de france","---","il","2000000","100","50","15/06/2015 07:15"
    "fr","nice paca","---","pa","100000","250","75","25/07/2015 19:58"
    "fr","marseille paca","---","pa","3000","750","15","12/03/2015 19:58"
    Si tu as des questions, n"hésite pas !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut Import de fichier Excel vers Mysql Workbench
    Bonsoir Artemus24
    Merci pour ta réponse Enfaite j'ai finit par trouver le moyen de le faire après 2 jours de recherches ! ce qui est énorme car finalement c'est simple, j'avais pas a coder ! Par contre j'aimerai bien savoir ton code c'est sur quel Outil mysql tu l'as fait et c'est quoi (du Xml ?)
    Y'a un outil dans Mysql workbench qui m'importe le fichier en format .CSV par contre j'ai fait en sorte d'avoir le même nombre de colonnes et même nom aussi que mon fichier Excel.
    Cependant, dans ma base j'ai plusieurs table et mon fichier Excel contient des informations sur l'ensemble des tables , du coup il va falloir faire des scripts Sql pour arriver à mettre ces données au bon endroit dans ma BDD.
    Si vous avez des suggestions ou des travaux déjà existants a me proposer Volontiers
    Merci encore

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur de pirat.

    Citation Envoyé par Coeur de pirat
    Par contre j'aimerai bien savoir ton code c'est sur quel Outil mysql tu l'as fait et c'est quoi (du Xml ?)
    Le script que je t'ai donné, c'est du MySql. Il a été testé dans la version MySql 5.7.12.

    Pourquoi parles-tu de XML ? L'exemple que je t'ai donné est en rapport avec ".csv" ?
    As-tu aussi besoin de charger des fichiers de type ".xml" ?

    Le XML est L'Extensible Markup Language.
    C'est un moyen de codifier les données afin de les transférer entre par exemple un client et un serveur avec ajax.

    Citation Envoyé par Coeur de pirat
    Y'a un outil dans Mysql workbench qui m'importe le fichier en format .CSV
    MySql Workbench, je ne connais pas. L'exemple que je t'ai donné, est un outil standard à MySql, qui permet de charger des données depuis un fichier de type ".csv".

    Citation Envoyé par Coeur de pirat
    Cependant, dans ma base j'ai plusieurs tables et mon fichier Excel contient des informations sur l'ensemble des tables, du coup il va falloir faire des scripts Sql pour arriver à mettre ces données au bon endroit dans ma BDD.
    Il n'est pas nécessaire de faire des tas de scripts pour dispatcher vos données dans les bonnes tables.

    Vous créez une table de travail qui sera à l'identique de votre fichier Excel au format ".csv".
    Je suis parti ici, où votre fichier Excel contient un seul type de lignes à charger.
    Ensuite, il suffit de créer des requêtes pour venir remplir vos différentes tables.

    Dans votre fichier Excel, il faudra créer autant de table de travail qu'il y a de lignes de types différentes.

    Le mieux est de nous donner un exemple de ce que vous avez dans votre fichier et ce que vous désirez faire, au final.
    --> fichier Excel avec descriptif de vos colonnes dans la ligne et de vos lignes différentes.
    --> un jeu d'essai
    --> un descriptif DDL de vos tables.

    Ne me donner pas l'intégralité de toutes vos tables MySql, mais juste une table qui sera représentatif de ce que vous voulez faire.
    Le reste sera du même gabarit !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Bonsoir Artemus 24
    C'est un-peu compliqué , moi même je n'ai pas cerné la problématique !
    Mais en gros j'ai un PDF à coté avec toutes les informations à ajouter dans la base, j'ai des informations provenant d'un constructeur et la je devrai ajouter des informations provenant d'un autre constructeur "IBM" par exemple.
    mon fichier Excel contient plusieurs colonnes qui se référent a mon fichier PDF mais pas toutes les colonnes (je ne vais pas les utiliser pour le moment) car non présente dans le fichier PDF.
    Je vais vous montrer quelques tables de ma Base (car je ne devrai pas dévoiler les informations de mon entreprise)
    et un fichier Excel, j’espère que vous aller comprendre de quoi il s'agit!
    Nom : Test-1.jpg
Affichages : 328
Taille : 133,9 Ko
    Nom : Doc2-1.jpg
Affichages : 302
Taille : 72,7 Ko
    Merci pour votre aide
    Bonne fin de soirée !

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur de pirat.

    Voici l'idée de la façon dont tu dois procéder pour charger tes fichiers Excel.

    1) Création de toutes les tables, à vide.

    2) chargement du fichier Excel dans la table de nom travail.

    3) extraction depuis la table de travail des colonnes et rangement dans les bonnes tables.
    Par exemple :
    --> colonne découpage dans table 'nature'.
    --> colonne forme dans table 'image'.
    --> nom_constructeur dans table 'constructeur'.

    4) recherche des liens (id...) pour reconstituer les clefs étrangères.
    --> recherche idNature dans la table nature, à partir de la colonne decoupage de la table travail.
    --> recherche idImage dans la table image, à partir de la colonne forme de la table travail.
    --> recherche idConstructeur dans la table constructeur, à partir de la colonne nom_constructeur de la table travail.

    5) reconstitution de la table travail, à partir des tables de la base de données.

    Et voici comment j'ai procédé :
    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
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    --------------
    set autocommit = 0
    --------------
     
    --------------
    start transaction
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            default character set `latin1`
            default collate       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `image`
    --------------
     
    --------------
    CREATE TABLE `image`
    ( `idImage`   integer unsigned not null auto_increment primary key,
      `image`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `nature`
    --------------
     
    --------------
    CREATE TABLE `nature`
    ( `idNature`   integer unsigned not null auto_increment primary key,
      `nature`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `constructeur`
    --------------
     
    --------------
    CREATE TABLE `constructeur`
    ( `idConstructeur`   integer unsigned not null auto_increment primary key,
      `nom`              varchar(255)     not null,
      `adresse`          varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `model`
    --------------
     
    --------------
    CREATE TABLE `model`
    ( `idModel`        integer unsigned not null auto_increment primary key,
      `modelNumber`    varchar(255)     not null,
      `idNature`       integer unsigned not null,
      `idImage`        integer unsigned not null,
      `idConstructeur` integer unsigned not null,
      CONSTRAINT `FK_Nature`       FOREIGN KEY (`idNature`)       REFERENCES `nature`       (`idNature`)       ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Image`        FOREIGN KEY (`idImage`)        REFERENCES `image`        (`idImage`)        ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Constructeur` FOREIGN KEY (`idConstructeur`) REFERENCES `constructeur` (`idConstructeur`) ON DELETE RESTRICT ON UPDATE CASCADE
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `travail`
    --------------
     
    --------------
    CREATE TABLE `travail`
    ( `id`                  integer unsigned not null auto_increment primary key,
      `nom_constructeur`    varchar(255)     not null,
      `model_number`        varchar(255)     not null,
      `serie`               varchar(255)     not null,
      `decoupage`           varchar(255)     not null,
      `forme`               varchar(255)     not null,
      `type_capteur`        varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `travail`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
         set  nom_constructeur = trim(@C1),
              model_number     = trim(@C2),
              serie            = trim(@C3),
              decoupage        = trim(@C4),
              forme            = trim(@C5),
                      type_capteur     = trim(@C6)
    --------------
     
    --------------
    select * from travail
    --------------
     
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    | id | nom_constructeur | model_number | serie | decoupage | forme         | type_capteur |
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    |  1 | IBM              | Modele 1     | 32    | linéaire  | rectangulaire | ang          |
    |  2 | BULL             | Modele 75    | 44    | linéaire  | rectangulaire | imm          |
    |  3 | IBM              | Modele 3     | 32    | linéaire  | rectangulaire | ang          |
    |  4 | SUN MACHINE      | Modele 12    | 12    | linéaire  | rectangulaire | imm          |
    |  5 | IBM              | Modele 2     | 25    | linéaire  | rectangulaire | ang          |
    |  6 | IBM              | Modele 4     | 32    | linéaire  | rectangulaire | imm          |
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    --------------
    insert into constructeur (`nom`,`adresse`)
    select nom_constructeur as nom,
           'bla bla bla' as adresse
    from travail
    group by nom_constructeur
    --------------
     
    --------------
    select * from constructeur
    --------------
     
    +----------------+-------------+-------------+
    | idConstructeur | nom         | adresse     |
    +----------------+-------------+-------------+
    |              1 | BULL        | bla bla bla |
    |              2 | IBM         | bla bla bla |
    |              3 | SUN MACHINE | bla bla bla |
    +----------------+-------------+-------------+
    --------------
    insert into `image` (`image`)
    select forme as image
    from travail
    group by forme
    --------------
     
    --------------
    select * from image
    --------------
     
    +---------+---------------+
    | idImage | image         |
    +---------+---------------+
    |       1 | rectangulaire |
    +---------+---------------+
    --------------
    insert into `nature` (`nature`)
    select decoupage as nature
    from travail
    group by decoupage
    --------------
     
    --------------
    select * from nature
    --------------
     
    +----------+----------+
    | idNature | nature   |
    +----------+----------+
    |        1 | linéaire |
    +----------+----------+
    --------------
    insert into model (`modelNumber`,`idNature`,`idImage`,`idConstructeur`)
    select model_number                                                                       as modelNumber,
           (select idNature       from nature       as n where n.nature = t.decoupage)        as idNature,
           (select idImage        from image        as i where i.image  = t.forme)            as IdImage,
           (select idConstructeur from constructeur as c where c.nom    = t.nom_constructeur) as IdConstructeur
    from travail as t
    group by model_number, 2, 3, 4
    --------------
     
    --------------
    select * from model
    --------------
     
    +---------+-------------+----------+---------+----------------+
    | idModel | modelNumber | idNature | idImage | idConstructeur |
    +---------+-------------+----------+---------+----------------+
    |       1 | Modele 1    |        1 |       1 |              2 |
    |       2 | Modele 12   |        1 |       1 |              3 |
    |       3 | Modele 2    |        1 |       1 |              2 |
    |       4 | Modele 3    |        1 |       1 |              2 |
    |       5 | Modele 4    |        1 |       1 |              2 |
    |       6 | Modele 75   |        1 |       1 |              1 |
    +---------+-------------+----------+---------+----------------+
    --------------
    select c.nom            as nom_constructeur,
           m.modelNumber    as model_number,
           n.nature         as decoupage,
               i.image          as forme
    from       model        as m
    inner join constructeur as c
    on c.idConstructeur = m.idConstructeur
    inner join nature       as n
    on n.idNature       = m.idNature
    inner join image        as i
    on i.idImage        = m.idImage
    --------------
     
    +------------------+--------------+-----------+---------------+
    | nom_constructeur | model_number | decoupage | forme         |
    +------------------+--------------+-----------+---------------+
    | IBM              | Modele 1     | linéaire  | rectangulaire |
    | SUN MACHINE      | Modele 12    | linéaire  | rectangulaire |
    | IBM              | Modele 2     | linéaire  | rectangulaire |
    | IBM              | Modele 3     | linéaire  | rectangulaire |
    | IBM              | Modele 4     | linéaire  | rectangulaire |
    | BULL             | Modele 75    | linéaire  | rectangulaire |
    +------------------+--------------+-----------+---------------+
    --------------
    commit
    --------------
     
    --------------
    set autocommit = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Je n'ai pas tout traité. J'ai fait en sorte de te montrer comment procéder au chargement des tables.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Hello Artemus 24
    Merci beaucoup pour ta réponse qui m'est vraiment précieuse car je suis tombée sur cette technique mais que j'avais pas bien saisi, du coup j'avais un doute !
    Donc j'utilise bien ma table que j'avais créé pour charger le fichier .CSV (dans ton exemple "travail") et je fais par la suite le lien entre toutes les autres tables de ma BDD, petit souci, je travaille avec une BDD déjà créée et chargée aussi , elle n'est pas vide , est ce que ça va marcher quand même ?
    Par ailleurs, j'aurai quand même quelques questions :
    La procédure je l'ai bien saisi, par contre j'aimerai bien avoir plus d'explications sur ce code
    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
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `travail`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
         set  nom_constructeur = trim(@C1),
              model_number     = trim(@C2),
              serie            = trim(@C3),
              decoupage        = trim(@C4),
              forme            = trim(@C5),
                      type_capteur     = trim(@C6)
    Surtout au niveau des @C1,...
    ainsi que le dernier code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select c.nom            as nom_constructeur,
           m.modelNumber    as model_number,
           n.nature         as decoupage,
               i.image          as forme
    from       model        as m
    inner join constructeur as c
    on c.idConstructeur = m.idConstructeur
    inner join nature       as n
    on n.idNature       = m.idNature
    inner join image        as i
    on i.idImage        = m.idImage
    En tout cas c'est plus claire pour moi , maintenant j'ai une piste à exploiter Merci beaucoup

  10. #10
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur de pirat.

    Citation Envoyé par Coeur de pirat
    petit souci, je travaille avec une BDD déjà créée et chargée aussi , elle n'est pas vide , est ce que ça va marcher quand même ?
    Non, car dans mon exemple, je fais des insert sans existant.
    La question que tu dois te poser est de savoir si tu dois modifier l'existant ou pas ?

    Sinon, tu ajoutes le "on duplicate key ...".
    --> http://dev.mysql.com/doc/refman/5.7/...duplicate.html

    C'est le charset que j'utilise dans mes bases de données. Tu peux mettre utf8 à la place.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIELDS TERMINATED BY ','
    Chaque champs dans le fichier Excel est séparé par une virgule.

    Chaque champs est encadré par des guillemets, même les champs numériques.

    C'est le caractère d'échappement.

    C'est la fin de la ligne. Pour windows il faut préciser le "carriage return" (x13 ou \r) et le "line feed" (x10 ou \n).

    Au début du fichier Excel, tu peux avoir des entêtes de colonnes, qui ne te servent à rien.
    Donc si tu mets "10" alors tu sautes les 10 premières lignes dans ton fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
    Au lieu de mettre un nom de colonne, je mets simplement une variable positionnelle.
    Ainsi en mettant @C1, (ou autre chose commençant par @), j'associe le premier champs du fichier Excel à cette variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set  nom_constructeur = trim(@C1),
    Je reprends la variable @C1, qui est une chaîne de caractères, et je supprime les blancs avant et après, au cas où cela serait le cas.

    Citation Envoyé par Coeur de pirat
    ainsi que le dernier code
    C'est juste un test pour te montrer que l'on peut reconstituer la table "travail" à partir des autres tables, après avoir fait les chargements.

    P.S.: je ne sais pas si ce que j'ai fait correspond à ton cahier des charges, mais vu que je n'ai pas lu ton PDF, il met difficile d'y répondre correctement.
    Sinon, le principe est dans l'exemple que je t'ai donné.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  11. #11
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Salut Artemus 24
    Merci beaucoup pour ta réponse, c'est plus clair !
    La question que tu dois te poser est de savoir si tu dois modifier l'existant ou pas ?
    Effectivement je vais devoir utiliser INSERT ... ON DUPLICATE KEY UPDATE car je devrai pas toucher à la structure de la Base, je vais juste continuer à charger d'autres types d'éléments
    Dans mon fichier PDF, j'ai par exemple deux colonnes à fusionner en une seule ('nom' et 'prénom' en une colonne nom-prénom), j'ai aussi un calcul a faire sur une colonne (je retranche un 1 ) et comme je t'ai montré sur le fichier Excel ou y'a une condition.

    Par la suite une fois que j'aurai réussi à faire ceci, mon tuteur aimerai bien que je fasse un code dédié pour cette fonctionnalité (charger les données provenant d'Excel) sans avoir à faire des scripts spéciale à chaque fois.
    Personnellement, je ne vois pas du tout comment est ce possible, vu qu'on connait pas le cahier de charge, à moins que ça soit les mêmes conditions posés dans le PDF qu'on m'a passé.
    Sinon je ne voit pas de standard pour ces choses la !
    Crdlt

  12. #12
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut coeur ce pirat.

    Ce que tu fais, normalement, se nomme une interface.
    C'est-à-dire que tu vas convertir des données d'un système d'information (Excel), afin de les mettre à disposition dans un autre système d'information (MySql).
    Il y a nécessairement des scripts de conversions et de rangements.

    Citation Envoyé par Coeur de Pirat
    Dans mon fichier PDF, j'ai par exemple deux colonnes à fusionner en une seule ('nom' et 'prénom' en une colonne nom-prénom), ...
    C'est un concat() qu'il faut faire.

    Citation Envoyé par Coeur de Pirat
    ... j'ai aussi un calcul à faire sur une colonne (je retranche un 1) et comme je t'ai montré sur le fichier Excel ou y'a une condition.
    Retranchez 1, c'est facile à faire.
    La difficulté réside dans la gestion de ton point de reprise, en cas de plantage
    Si tu passes deux fois sur les mêmes lignes, ce n'est pas 1 que tu retranches, mais 2.
    Tu devras être en mode transaction et gérer correctement les COMMIT.
    Mais surtout prévoir un point de reprise, peut être basé sur un identifiant.

    Citation Envoyé par Coeur de Pirat
    Par la suite une fois que j'aurai réussi à faire ceci, mon tuteur aimerai bien que je fasse un code dédié pour cette fonctionnalité (charger les données provenant d'Excel) sans avoir à faire des scripts spéciale à chaque fois.
    Tout dépend si tu as toujours la même structure de ton fichier Excel ou pas.
    Citation Envoyé par Coeur de Pirat
    Personnellement, je ne vois pas du tout comment est ce possible, vu qu'on connait pas le cahier de charge, à moins que ça soit les mêmes conditions posés dans le PDF qu'on m'a passé.
    Je ne sais pas répondre à cette question. C'est toi qui possède et a lu le PDF.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  13. #13
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Bonsoir Aretmus 24,
    merci bien pour vos réponses! Je voulais vous poser une autre question qui m'intrigue.
    Voila une fois que j'ai créé la table "capteur sonore" et chargé le fichier dedans, je vais faire les requêtes pour remplir mes colonnes au bon endroit, par exemple "non= sonore" dans la colonne "type-champ-metier" de la table "champ".
    Ma question , est ce qu'une fois que j'aurai terminé ce travail, je vais garder la table "capteur sonore" dans la Base sachant que je ne devrai pas changer la structure de la base d’après mon tuteur.
    Ps:
    Tout dépend si tu as toujours la même structure de ton fichier Excel ou pas
    Oui, c'est confirmé,c'est la même structure avec de petits changements mais pas grand chose.
    Merci de votre aide qui m'est vraiment précieuse, enfaite j'ai mis beaucoup de temps à chercher des travaux déjà existant mais sans succès
    Auriez vous une astuce pour optimiser mes recherches ? par exemples des projets déjà fait , des thèses ou des brevets à ce sujet

  14. #14
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Coeur de Pirat.

    Citation Envoyé par Coeur de Pirat
    Ma question, est-ce qu'une fois que j'aurai terminé ce travail, je vais garder la table "capteur sonore" dans la Base sachant que je ne devrai pas changer la structure de la base d’après mon tuteur.
    Cette table est une table de travail.
    Elle n'a pas vocation à rester en permanence dans votre base de données.
    Si vous voulez travailler proprement créez une base de données temporaire juste pour créer vos tables de travail.
    Après vos chargements, vous pouvez supprimer votre base de données temporaire.

    Citation Envoyé par Coeur de Pirat
    Oui, c'est confirmé, c'est la même structure avec de petits changements mais pas grand chose.
    Merci de votre aide qui m'est vraiment précieuse, en faite j'ai mis beaucoup de temps à chercher des travaux déjà existant mais sans succès
    Auriez vous une astuce pour optimiser mes recherches ? par exemples des projets déjà fait , des thèses ou des brevets à ce sujet
    A cherchez où ?

    Le mieux est soit de faire une recherche dans le forum consacré à MySql ou soit poser des questions !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  15. #15
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Ok! Je vais faire comme ça !
    Merci bien

  16. #16
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Bonjour Artemus 24
    J'essaye d'exécuter le script complet maintenant que j'ai finit de préparer tout mes insert, mais sans succés !
    Il n'accepte pas la syntaxe dés le départ !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set autocommit = 0  start transaction
    , il me semble pour exécuter l'ensemble des requêtes il faut faire appel à un programme ! j'a a peu prés 20
    insert
    , un
    load data infile
    et un
    update
    !
    Voici pour rappel l'exemple que vous m'avez envoyer !

    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
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    --------------
    set autocommit = 0
    --------------
     
    --------------
    start transaction
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            default character set `latin1`
            default collate       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `image`
    --------------
     
    --------------
    CREATE TABLE `image`
    ( `idImage`   integer unsigned not null auto_increment primary key,
      `image`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `nature`
    --------------
     
    --------------
    CREATE TABLE `nature`
    ( `idNature`   integer unsigned not null auto_increment primary key,
      `nature`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `constructeur`
    --------------
     
    --------------
    CREATE TABLE `constructeur`
    ( `idConstructeur`   integer unsigned not null auto_increment primary key,
      `nom`              varchar(255)     not null,
      `adresse`          varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `model`
    --------------
     
    --------------
    CREATE TABLE `model`
    ( `idModel`        integer unsigned not null auto_increment primary key,
      `modelNumber`    varchar(255)     not null,
      `idNature`       integer unsigned not null,
      `idImage`        integer unsigned not null,
      `idConstructeur` integer unsigned not null,
      CONSTRAINT `FK_Nature`       FOREIGN KEY (`idNature`)       REFERENCES `nature`       (`idNature`)       ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Image`        FOREIGN KEY (`idImage`)        REFERENCES `image`        (`idImage`)        ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Constructeur` FOREIGN KEY (`idConstructeur`) REFERENCES `constructeur` (`idConstructeur`) ON DELETE RESTRICT ON UPDATE CASCADE
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `travail`
    --------------
     
    --------------
    CREATE TABLE `travail`
    ( `id`                  integer unsigned not null auto_increment primary key,
      `nom_constructeur`    varchar(255)     not null,
      `model_number`        varchar(255)     not null,
      `serie`               varchar(255)     not null,
      `decoupage`           varchar(255)     not null,
      `forme`               varchar(255)     not null,
      `type_capteur`        varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `travail`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
         set  nom_constructeur = trim(@C1),
              model_number     = trim(@C2),
              serie            = trim(@C3),
              decoupage        = trim(@C4),
              forme            = trim(@C5),
                      type_capteur     = trim(@C6)
    --------------
     
    --------------
    select * from travail
    --------------
     
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    | id | nom_constructeur | model_number | serie | decoupage | forme         | type_capteur |
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    |  1 | IBM              | Modele 1     | 32    | linéaire  | rectangulaire | ang          |
    |  2 | BULL             | Modele 75    | 44    | linéaire  | rectangulaire | imm          |
    |  3 | IBM              | Modele 3     | 32    | linéaire  | rectangulaire | ang          |
    |  4 | SUN MACHINE      | Modele 12    | 12    | linéaire  | rectangulaire | imm          |
    |  5 | IBM              | Modele 2     | 25    | linéaire  | rectangulaire | ang          |
    |  6 | IBM              | Modele 4     | 32    | linéaire  | rectangulaire | imm          |
    +----+------------------+--------------+-------+-----------+---------------+--------------+
    --------------
    insert into constructeur (`nom`,`adresse`)
    select nom_constructeur as nom,
           'bla bla bla' as adresse
    from travail
    group by nom_constructeur
    --------------
     
    --------------
    select * from constructeur
    --------------
     
    +----------------+-------------+-------------+
    | idConstructeur | nom         | adresse     |
    +----------------+-------------+-------------+
    |              1 | BULL        | bla bla bla |
    |              2 | IBM         | bla bla bla |
    |              3 | SUN MACHINE | bla bla bla |
    +----------------+-------------+-------------+
    --------------
    insert into `image` (`image`)
    select forme as image
    from travail
    group by forme
    --------------
     
    --------------
    select * from image
    --------------
     
    +---------+---------------+
    | idImage | image         |
    +---------+---------------+
    |       1 | rectangulaire |
    +---------+---------------+
    --------------
    insert into `nature` (`nature`)
    select decoupage as nature
    from travail
    group by decoupage
    --------------
     
    --------------
    select * from nature
    --------------
     
    +----------+----------+
    | idNature | nature   |
    +----------+----------+
    |        1 | linéaire |
    +----------+----------+
    --------------
    insert into model (`modelNumber`,`idNature`,`idImage`,`idConstructeur`)
    select model_number                                                                       as modelNumber,
           (select idNature       from nature       as n where n.nature = t.decoupage)        as idNature,
           (select idImage        from image        as i where i.image  = t.forme)            as IdImage,
           (select idConstructeur from constructeur as c where c.nom    = t.nom_constructeur) as IdConstructeur
    from travail as t
    group by model_number, 2, 3, 4
    --------------
     
    --------------
    select * from model
    --------------
     
    +---------+-------------+----------+---------+----------------+
    | idModel | modelNumber | idNature | idImage | idConstructeur |
    +---------+-------------+----------+---------+----------------+
    |       1 | Modele 1    |        1 |       1 |              2 |
    |       2 | Modele 12   |        1 |       1 |              3 |
    |       3 | Modele 2    |        1 |       1 |              2 |
    |       4 | Modele 3    |        1 |       1 |              2 |
    |       5 | Modele 4    |        1 |       1 |              2 |
    |       6 | Modele 75   |        1 |       1 |              1 |
    +---------+-------------+----------+---------+----------------+
    --------------
    select c.nom            as nom_constructeur,
           m.modelNumber    as model_number,
           n.nature         as decoupage,
               i.image          as forme
    from       model        as m
    inner join constructeur as c
    on c.idConstructeur = m.idConstructeur
    inner join nature       as n
    on n.idNature       = m.idNature
    inner join image        as i
    on i.idImage        = m.idImage
    --------------
     
    +------------------+--------------+-----------+---------------+
    | nom_constructeur | model_number | decoupage | forme         |
    +------------------+--------------+-----------+---------------+
    | IBM              | Modele 1     | linéaire  | rectangulaire |
    | SUN MACHINE      | Modele 12    | linéaire  | rectangulaire |
    | IBM              | Modele 2     | linéaire  | rectangulaire |
    | IBM              | Modele 3     | linéaire  | rectangulaire |
    | IBM              | Modele 4     | linéaire  | rectangulaire |
    | BULL             | Modele 75    | linéaire  | rectangulaire |
    +------------------+--------------+-----------+---------------+
    --------------
    commit
    --------------
     
    --------------
    set autocommit = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Merci de votre aide

  17. #17
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Coeur de Pirat.

    Je travaille en lignes de commandes pour les démonstrations que je vous donne. En premier, j'utilise un script batch windows, afin de lancer le script sql MySql.
    Voici le script batch windows :
    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
    @echo off
     
    setlocal enableDelayedExpansion
     
    chcp 1252 > nul
     
    set PATH=.;%WAMPSERVER%\bin\mysql\%MYSQL%\bin\;%PATH%
     
    SET FIC=%~nx0
    SET FIC=%FIC:bat=sql%
     
    @echo.
    mysql < %FIC%  --verbose  --force
    @echo.
    pause
    exit
    Vous nommez ce fichier qui est de type text "base.bat".
    Dans la variable d'environnement "PATH", vous devez mettre le chemin qui va vers le serveur MySql.
    Chez moi, par exemple : F:\Wamp\bin\mysql\mysql5.7.12\bin.

    Ensuite, ce que je vous donne est le résultat à l'exécution du script sql et non le script sql par lui-même. Il manque en général les points-virgules.
    Voici le script sql :
    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
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
     
    -- ======================
    -- Base de Données `base`
    -- ======================
     
    DROP DATABASE IF EXISTS `base`;
     
    CREATE DATABASE `base`
            default character set `latin1`
            default collate       `latin1_general_ci`;
     
    use base;
     
    -- =============
    -- Table `image`
    -- =============
     
    DROP TABLE IF EXISTS `image`;
     
    CREATE TABLE `image`
    ( `idImage`   integer unsigned not null auto_increment primary key,
      `image`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed;
     
    -- ==============
    -- Table `nature`
    -- ==============
     
    DROP TABLE IF EXISTS `nature`;
     
    CREATE TABLE `nature`
    ( `idNature`   integer unsigned not null auto_increment primary key,
      `nature`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed;
     
    -- ====================
    -- Table `constructeur`
    -- ====================
     
    DROP TABLE IF EXISTS `constructeur`;
     
    CREATE TABLE `constructeur`
    ( `idConstructeur`   integer unsigned not null auto_increment primary key,
      `nom`              varchar(255)     not null,
      `adresse`          varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed;
     
    -- =============
    -- Table `model`
    -- =============
     
    DROP TABLE IF EXISTS `model`;
     
    CREATE TABLE `model`
    ( `idModel`        integer unsigned not null auto_increment primary key,
      `modelNumber`    varchar(255)     not null,
      `idNature`       integer unsigned not null,
      `idImage`        integer unsigned not null,
      `idConstructeur` integer unsigned not null,
      CONSTRAINT `FK_Nature`       FOREIGN KEY (`idNature`)       REFERENCES `nature`       (`idNature`)       ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Image`        FOREIGN KEY (`idImage`)        REFERENCES `image`        (`idImage`)        ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Constructeur` FOREIGN KEY (`idConstructeur`) REFERENCES `constructeur` (`idConstructeur`) ON DELETE RESTRICT ON UPDATE CASCADE
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed;
     
    -- ===============
    -- Table `travail`
    -- ===============
     
    DROP TABLE IF EXISTS `travail`;
     
    CREATE TABLE `travail`
    ( `id`                  integer unsigned not null auto_increment primary key,
      `nom_constructeur`    varchar(255)     not null,
      `model_number`        varchar(255)     not null,
      `serie`               varchar(255)     not null,
      `decoupage`           varchar(255)     not null,
      `forme`               varchar(255)     not null,
      `type_capteur`        varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed;
     
    -- ========================
    -- Chargement fichier Excel
    -- ========================
     
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `travail`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
         set  nom_constructeur = trim(@C1),
              model_number     = trim(@C2),
              serie            = trim(@C3),
              decoupage        = trim(@C4),
              forme            = trim(@C5),
              type_capteur     = trim(@C6);
     
    -- ======================
    -- Vidage table 'travail'
    -- ======================
     
    select * from travail;
     
    -- ================================
    -- Remplissage table 'constructeur'
    -- ================================
     
    insert into `constructeur` (`nom`,`adresse`)
    select nom_constructeur as nom,
           'bla bla bla'    as adresse
    from travail
    group by nom_constructeur;
     
    -- ===========================
    -- Vidage table 'constructeur'
    -- ===========================
     
    select * from constructeur;
     
    -- =========================
    -- Remplissage table 'image'
    -- =========================
     
    insert into `image` (`image`)
    select forme as image
    from travail
    group by forme;
     
    -- ====================
    -- Vidage table 'image'
    -- ====================
     
    select * from image;
     
    -- ==========================
    -- Remplissage table 'nature'
    -- ==========================
     
    insert into `nature` (`nature`)
    select decoupage as nature
    from travail
    group by decoupage;
     
    -- =====================
    -- Vidage table 'nature'
    -- =====================
     
    select * from nature;
     
    -- ==========================
    -- Remplissage table 'model'
    -- ==========================
     
    insert into `model` (`modelNumber`,`idNature`,`idImage`,`idConstructeur`)
    select model_number                                                                       as modelNumber,
           (select idNature       from nature       as n where n.nature = t.decoupage)        as idNature,
           (select idImage        from image        as i where i.image  = t.forme)            as IdImage,
           (select idConstructeur from constructeur as c where c.nom    = t.nom_constructeur) as IdConstructeur
    from travail as t
    group by model_number, 2, 3, 4;
     
    -- ====================
    -- Vidage table 'model'
    -- ====================
     
    select * from model;
     
    -- =======
    -- Requête
    -- =======
     
    select c.nom            as nom_constructeur,
           m.modelNumber    as model_number,
           n.nature         as decoupage,
           i.image          as forme
    from       model        as m
    inner join constructeur as c
    on c.idConstructeur = m.idConstructeur
     
    inner join nature       as n
    on n.idNature       = m.idNature
     
    inner join image        as i
    on i.idImage        = m.idImage;
     
    -- ===
    -- Fin
    -- ===
     
    commit;
     
    set autocommit = 1;
     
    exit
    Vous nommez ce script sql du même nom que le batch windows, ce qui donne : "base.sql".

    A titre indicatif, je vous communique aussi le fichier de nom "fichier.txt" qui a la structure de votre fichier Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "IBM",         "Modele 1",  32, "linéaire", "rectangulaire", "ang"
    "BULL",        "Modele 75", 44, "linéaire", "rectangulaire", "imm"
    "IBM",         "Modele 3",  32, "linéaire", "rectangulaire", "ang"
    "SUN MACHINE", "Modele 12", 12, "linéaire", "rectangulaire", "imm"
    "IBM",         "Modele 2",  25, "linéaire", "rectangulaire", "ang"
    "IBM",         "Modele 4",  32, "linéaire", "rectangulaire", "imm"
    A l'exécution, voici ce que cela donne :
    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
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            default character set `latin1`
            default collate       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `image`
    --------------
     
    --------------
    CREATE TABLE `image`
    ( `idImage`   integer unsigned not null auto_increment primary key,
      `image`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `nature`
    --------------
     
    --------------
    CREATE TABLE `nature`
    ( `idNature`   integer unsigned not null auto_increment primary key,
      `nature`     varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `constructeur`
    --------------
     
    --------------
    CREATE TABLE `constructeur`
    ( `idConstructeur`   integer unsigned not null auto_increment primary key,
      `nom`              varchar(255)     not null,
      `adresse`          varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `model`
    --------------
     
    --------------
    CREATE TABLE `model`
    ( `idModel`        integer unsigned not null auto_increment primary key,
      `modelNumber`    varchar(255)     not null,
      `idNature`       integer unsigned not null,
      `idImage`        integer unsigned not null,
      `idConstructeur` integer unsigned not null,
      CONSTRAINT `FK_Nature`       FOREIGN KEY (`idNature`)       REFERENCES `nature`       (`idNature`)       ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Image`        FOREIGN KEY (`idImage`)        REFERENCES `image`        (`idImage`)        ON DELETE RESTRICT ON UPDATE CASCADE,
      CONSTRAINT `FK_Constructeur` FOREIGN KEY (`idConstructeur`) REFERENCES `constructeur` (`idConstructeur`) ON DELETE RESTRICT ON UPDATE CASCADE
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    DROP TABLE IF EXISTS `travail`
    --------------
     
    --------------
    CREATE TABLE `travail`
    ( `id`                  integer unsigned not null auto_increment primary key,
      `nom_constructeur`    varchar(255)     not null,
      `model_number`        varchar(255)     not null,
      `serie`               varchar(255)     not null,
      `decoupage`           varchar(255)     not null,
      `forme`               varchar(255)     not null,
      `type_capteur`        varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `travail`
         CHARACTER SET latin1
         FIELDS TERMINATED BY ','
         ENCLOSED BY '"'
         ESCAPED BY '\\' LINES
         TERMINATED BY '\r\n'
         IGNORE 0 LINES
         (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
         set  nom_constructeur = trim(@C1),
              model_number     = trim(@C2),
              serie            = trim(@C3),
              decoupage        = trim(@C4),
              forme            = trim(@C5),
              type_capteur     = trim(@C6)
    --------------
     
    --------------
    select * from travail
    --------------
     
    +----+------------------+--------------+-------+------------+-----------------+--------------+
    | id | nom_constructeur | model_number | serie | decoupage  | forme           | type_capteur |
    +----+------------------+--------------+-------+------------+-----------------+--------------+
    |  1 | IBM              | "Modele 1"   | 32    | "linéaire" | "rectangulaire" | "ang"        |
    |  2 | BULL             | "Modele 75"  | 44    | "linéaire" | "rectangulaire" | "imm"        |
    |  3 | IBM              | "Modele 3"   | 32    | "linéaire" | "rectangulaire" | "ang"        |
    |  4 | SUN MACHINE      | "Modele 12"  | 12    | "linéaire" | "rectangulaire" | "imm"        |
    |  5 | IBM              | "Modele 2"   | 25    | "linéaire" | "rectangulaire" | "ang"        |
    |  6 | IBM              | "Modele 4"   | 32    | "linéaire" | "rectangulaire" | "imm"        |
    +----+------------------+--------------+-------+------------+-----------------+--------------+
    --------------
    insert into `constructeur` (`nom`,`adresse`)
    select nom_constructeur as nom,
           'bla bla bla'    as adresse
    from travail
    group by nom_constructeur
    --------------
     
    --------------
    select * from constructeur
    --------------
     
    +----------------+-------------+-------------+
    | idConstructeur | nom         | adresse     |
    +----------------+-------------+-------------+
    |              1 | BULL        | bla bla bla |
    |              2 | IBM         | bla bla bla |
    |              3 | SUN MACHINE | bla bla bla |
    +----------------+-------------+-------------+
    --------------
    insert into `image` (`image`)
    select forme as image
    from travail
    group by forme
    --------------
     
    --------------
    select * from image
    --------------
     
    +---------+-----------------+
    | idImage | image           |
    +---------+-----------------+
    |       1 | "rectangulaire" |
    +---------+-----------------+
    --------------
    insert into `nature` (`nature`)
    select decoupage as nature
    from travail
    group by decoupage
    --------------
     
    --------------
    select * from nature
    --------------
     
    +----------+------------+
    | idNature | nature     |
    +----------+------------+
    |        1 | "linéaire" |
    +----------+------------+
    --------------
    insert into `model` (`modelNumber`,`idNature`,`idImage`,`idConstructeur`)
    select model_number                                                                       as modelNumber,
           (select idNature       from nature       as n where n.nature = t.decoupage)        as idNature,
           (select idImage        from image        as i where i.image  = t.forme)            as IdImage,
           (select idConstructeur from constructeur as c where c.nom    = t.nom_constructeur) as IdConstructeur
    from travail as t
    group by model_number, 2, 3, 4
    --------------
     
    --------------
    select * from model
    --------------
     
    +---------+-------------+----------+---------+----------------+
    | idModel | modelNumber | idNature | idImage | idConstructeur |
    +---------+-------------+----------+---------+----------------+
    |       1 | "Modele 1"  |        1 |       1 |              2 |
    |       2 | "Modele 12" |        1 |       1 |              3 |
    |       3 | "Modele 2"  |        1 |       1 |              2 |
    |       4 | "Modele 3"  |        1 |       1 |              2 |
    |       5 | "Modele 4"  |        1 |       1 |              2 |
    |       6 | "Modele 75" |        1 |       1 |              1 |
    +---------+-------------+----------+---------+----------------+
    --------------
    select c.nom            as nom_constructeur,
           m.modelNumber    as model_number,
           n.nature         as decoupage,
           i.image          as forme
    from       model        as m
    inner join constructeur as c
    on c.idConstructeur = m.idConstructeur
     
    inner join nature       as n
    on n.idNature       = m.idNature
     
    inner join image        as i
    on i.idImage        = m.idImage
    --------------
     
    +------------------+--------------+------------+-----------------+
    | nom_constructeur | model_number | decoupage  | forme           |
    +------------------+--------------+------------+-----------------+
    | IBM              | "Modele 1"   | "linéaire" | "rectangulaire" |
    | SUN MACHINE      | "Modele 12"  | "linéaire" | "rectangulaire" |
    | IBM              | "Modele 2"   | "linéaire" | "rectangulaire" |
    | IBM              | "Modele 3"   | "linéaire" | "rectangulaire" |
    | IBM              | "Modele 4"   | "linéaire" | "rectangulaire" |
    | BULL             | "Modele 75"  | "linéaire" | "rectangulaire" |
    +------------------+--------------+------------+-----------------+
    --------------
    commit
    --------------
     
    --------------
    set autocommit = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Il n'y a aucune difficulté pour lancer un script en lignes de commande.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  18. #18
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    Bonjour Artemus 24
    Merci beaucoup pour vos réponse, je viens d'apprendre le script batch grace à vous !
    Donc si je comprends bien , je vais créer un fichier.sql avec toutes les requêtes à exécuter et un autre .bat que je vais exécuter et ça devrait marcher !
    mes questions ?
    Dans mon script SQL , devrais-je recréer ma base de données ainsi que mes tables comme dans votre script ou alors mes insert, mon update et le load data infile suffit ?
    dans le script batch, la commande suivante est ce qu'elle sert à forcer l'exécution du script malgré une présence d'erreurs dans le code ?
    Merci de m'éclairer ces points !
    Cordialement.

  19. #19
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Cœur de Pirat.

    Citation Envoyé par Coeur de Pirat
    je viens d'apprendre le script batch grâce à vous !
    Quand on est débutant, c'est bien de savoir se servir de PhpMyAdmin.
    Mais celui-ci reste fastidieux dans les manipulations à faire.

    En dehors de PhpMyAdmin, le débutant programme directement en php.
    Il ne passe pas par des scripts en ligne de commande pour tester ses requête, avant de les programmer.
    C'est dommage car s'est très utile, d'autant que le script peut être conservé à l'inverse des manipulations sous PhpMyAdmin.

    Citation Envoyé par Coeur de Pirat
    Donc si je comprends bien , je vais créer un fichier.sql avec toutes les requêtes à exécuter et un autre .bat que je vais exécuter et ça devrait marcher !
    Les deux font la pair.
    Le script batch sert à lancer l'exécution de MySql en ligne de commande.
    Le script sql va contenir toutes vos requêtes que vous désirez tester.

    Citation Envoyé par Coeur de Pirat
    Dans mon script SQL , devrais-je recréer ma base de données ainsi que mes tables comme dans votre script ou alors mes insert, mon update et le load data infile suffit ?
    Dans mes exemples, je crée ce dont j'ai besoin afin de montrer comment résoudre le problème.

    Dans votre contexte, si la base de données existe déjà, et bien vous n'allez pas la recréer.
    Tout ce que vous devez faire, c'est mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use {le nom de votre base de données};
    C'est-à-dire définir le lien vers votre base de données existante.

    Citation Envoyé par Coeur de Pirat
    dans le script batch, la commande suivante est ce qu'elle sert à forcer l'exécution du script malgré une présence d'erreurs dans le code ?
    "mysql est ce qui va exécuter votre script sql.
    Le "<" signifie que vous faites une redirection, c'est-à-dire que votre script sera lu en ligne de commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql < %FIC%  --verbose  --force
    Je vous conseille de laisser les paramètres verbose pour avoir un compte-rendu visible de l'exécution et force pour ne pas vous arrêter à la première erreur

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  20. #20
    Membre habitué Avatar de Coeur de Pirat
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 82
    Points : 150
    Points
    150
    Par défaut
    bonsoir Artemus 24
    Merci pour toutes ces précisions !
    J'ai quand meme d'autres questions , j'ai cherché mais j'ai pas trouvé la réponse !
    Les deux commandes suivantes , que signifient elles exactement ?
    SET FIC=%~nx0
    SET FIC=%FIC:bat=sql%
    Dans ce script quel ligne dit qu'il faut exécuter le script Sql? et est ce qu'il y'a une information sur le fichier Excel que je vais importer

    Remarque : est ce qu'il serai pas mieux de le faire en script PHP car les lignes de commandes je n'y travaille jamais avec ? c'est tout nouveau pour moi !
    Merci bien

Discussions similaires

  1. Migration d'une base de données Excel vers MySQL
    Par geek.sons dans le forum MySQL
    Réponses: 5
    Dernier message: 04/11/2014, 17h58
  2. Importer des données d'Excel vers MySql
    Par philippe72 dans le forum Débuter
    Réponses: 5
    Dernier message: 30/06/2009, 12h40
  3. transfert de donnés de excel vers Mysql
    Par mkachekh dans le forum Outils
    Réponses: 4
    Dernier message: 20/10/2006, 12h08
  4. Extraire une Base de donnée Excel vers Mysql ??
    Par Arvulis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/01/2006, 22h58
  5. [Excel] Exportation de donnée excel vers MySQL
    Par yoda7666 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/11/2005, 16h18

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