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!!!
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!!!
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.
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 !
Salut coeur de pirat.
Voici un exemple d'utilisation du "load local infile".
Et voici le fichier à télécharger :
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...
Si tu as des questions, n"hésite pas !
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 vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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
Salut coeur de pirat.
Le script que je t'ai donné, c'est du MySql. Il a été testé dans la version MySql 5.7.12.Envoyé par Coeur de pirat
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.
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".Envoyé par Coeur de pirat
Il n'est pas nécessaire de faire des tas de scripts pour dispatcher vos données dans les bonnes tables.Envoyé par Coeur de pirat
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
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!
Merci pour votre aide
Bonne fin de soirée !
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é :
Je n'ai pas tout traité. J'ai fait en sorte de te montrer comment procéder au chargement des tables.
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...
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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 codeSurtout au niveau des @C1,...
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)
ainsi que le dernier codeEn tout cas c'est plus claire pour moi , maintenant j'ai une piste à exploiter Merci beaucoup
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
Salut coeur de pirat.
Non, car dans mon exemple, je fais des insert sans existant.Envoyé par Coeur de pirat
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 CHARACTER SET latin1
Chaque champs dans le fichier Excel est séparé par une virgule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part FIELDS TERMINATED BY ','
Chaque champs est encadré par des guillemets, même les champs numériques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ENCLOSED BY '"'
C'est le caractère d'échappement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ESCAPED BY '\\' LINES
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part TERMINATED BY '\r\n'
Au début du fichier Excel, tu peux avoir des entêtes de colonnes, qui ne te servent à rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part IGNORE 0 LINES
Donc si tu mets "10" alors tu sautes les 10 premières lignes dans ton fichier.
Au lieu de mettre un nom de colonne, je mets simplement une variable positionnelle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (@C1, @C2, @C3, @C4, @C5, @C6, @C7, @C8)
Ainsi en mettant @C1, (ou autre chose commençant par @), j'associe le premier champs du fichier Excel à cette variable.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part set nom_constructeur = trim(@C1),
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.Envoyé par Coeur de pirat
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
Salut Artemus 24
Merci beaucoup pour ta réponse, c'est plus clair !
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émentsLa question que tu dois te poser est de savoir si tu dois modifier l'existant ou pas ?
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
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.
C'est un concat() qu'il faut faire.Envoyé par Coeur de Pirat
Retranchez 1, c'est facile à faire.Envoyé par Coeur de Pirat
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.
Tout dépend si tu as toujours la même structure de ton fichier Excel ou pas.Envoyé par Coeur de Pirat
Je ne sais pas répondre à cette question. C'est toi qui possède et a lu le PDF.Envoyé par Coeur de Pirat
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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:Oui, c'est confirmé,c'est la même structure avec de petits changements mais pas grand chose.Tout dépend si tu as toujours la même structure de ton fichier Excel ou pas
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
Salut Coeur de Pirat.
Cette table est une table de travail.Envoyé par Coeur de Pirat
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.
A cherchez où ?Envoyé par Coeur de Pirat
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
Ok! Je vais faire comme ça !
Merci bien
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 !, il me semble pour exécuter l'ensemble des requêtes il faut faire appel à un programme ! j'a a peu prés 20
Code : Sélectionner tout - Visualiser dans une fenêtre à part set autocommit = 0 start transaction, uninsertet unload data infile!update
Voici pour rappel l'exemple que vous m'avez envoyer !
Merci de votre aide
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...
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 :
Vous nommez ce fichier qui est de type text "base.bat".
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
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 :
Vous nommez ce script sql du même nom que le batch windows, ce qui donne : "base.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
A titre indicatif, je vous communique aussi le fichier de nom "fichier.txt" qui a la structure de votre fichier Excel :
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 "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"
Il n'y a aucune difficulté pour lancer un script en lignes de commande.
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...
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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 suivanteest ce qu'elle sert à forcer l'exécution du script malgré une présence d'erreurs dans le code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql < %FIC%
Merci de m'éclairer ces points !
Cordialement.
Salut Cœur de Pirat.
Quand on est débutant, c'est bien de savoir se servir de PhpMyAdmin.Envoyé par Coeur de Pirat
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.
Les deux font la pair.Envoyé par Coeur de Pirat
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.
Dans mes exemples, je crée ce dont j'ai besoin afin de montrer comment résoudre le problème.Envoyé par Coeur de Pirat
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 :
C'est-à-dire définir le lien vers votre base de données existante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part use {le nom de votre base de données};
"mysql est ce qui va exécuter votre script sql.Envoyé par Coeur de Pirat
Le "<" signifie que vous faites une redirection, c'est-à-dire que votre script sera lu en ligne de commande.
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql < %FIC% --verbose --force
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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 ?
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 importerSET FIC=%~nx0
SET FIC=%FIC:bat=sql%
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager