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
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
#
# Make remote table
#
CREATE TABLE t1 (
id int(11) NOT NULL,
msg char(100) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO t1 VALUES(1,'Un'),(3,'Trois'),(5,'Cinq');
INSERT INTO t1 VALUES(2,'Two'),(4,'Four'),(6,'Six'), (7,'seven');
SELECT * FROM t1;
id msg
1 Un
3 Trois
5 Cinq
2 Two
4 Four
6 Six
7 seven
#
# Make local MYSQL table with indexed id column
#
CREATE TABLE t2 (
id int(11) NOT NULL,
msg char(100) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=CONNECT DEFAULT CHARSET=latin1 TABLE_TYPE=MYSQL TABNAME=t1;
#
# Testing SELECT, etc.
#
SELECT * FROM t2;
id msg
1 Un
3 Trois
5 Cinq
2 Two
4 Four
6 Six
7 seven
SELECT * FROM t2 WHERE id = 3;
id msg
3 Trois
SELECT * FROM t2 WHERE id IN (2,4);
id msg
2 Two
4 Four
SELECT * FROM t2 WHERE id IN (2,4) AND msg = 'Two';
id msg
2 Two
SELECT * FROM t2 WHERE id > 4;
id msg
5 Cinq
6 Six
7 seven
SELECT * FROM t2 WHERE id >= 3;
id msg
3 Trois
4 Four
5 Cinq
6 Six
7 seven
SELECT * FROM t2 WHERE id < 3;
id msg
1 Un
2 Two
SELECT * FROM t2 WHERE id < 2 OR id > 4;
id msg
1 Un
5 Cinq
6 Six
7 seven
explain SELECT * FROM t2 WHERE id <= 3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where
SELECT * FROM t2 WHERE id <= 3;
id msg
1 Un
2 Two
3 Trois
SELECT * FROM t2 WHERE id BETWEEN 3 AND 5;
id msg
3 Trois
4 Four
5 Cinq
SELECT * FROM t2 WHERE id > 2 AND id < 6;
id msg
3 Trois
4 Four
5 Cinq
SELECT * FROM t2 ORDER BY id;
id msg
1 Un
2 Two
3 Trois
4 Four
5 Cinq
6 Six
7 seven
UPDATE t2 SET msg = 'Five' WHERE id = 5;
Warnings:
Note 1105 t1: 1 affected rows
SELECT * FROM t2;
id msg
1 Un
3 Trois
5 Five
2 Two
4 Four
6 Six
7 seven
DELETE FROM t2 WHERE id = 4;
Warnings:
Note 1105 t1: 1 affected rows
SELECT * FROM t2;
id msg
1 Un
3 Trois
5 Five
2 Two
6 Six
7 seven
DROP TABLE t2;
DROP TABLE t1;
#
# Make local FIX table with indices matricule and nom/prenom
#
CREATE TABLE t1
(
matricule INT(4) KEY NOT NULL field_format='Z',
nom VARCHAR(16) NOT NULL,
prenom VARCHAR(20) NOT NULL,
sexe SMALLINT(1) NOT NULL COMMENT 'sexe 1:M 2:F',
aanais INT(4) NOT NULL,
mmnais INT(2) NOT NULL,
ddentree DATE NOT NULL date_format='YYYYMM',
ddnom DATE NOT NULL date_format='YYYYMM',
brut INT(5) NOT NULL,
net DOUBLE(8,2) NOT NULL,
service INT(2) NOT NULL,
sitmat CHAR(1) NOT NULL,
formation CHAR(5) NOT NULL,
INDEX NP(nom,prenom)
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='emp.txt' ENDING=2;
#
# Make MYSQL table with same indices
#
CREATE TABLE t2
(
matricule INT(4) KEY NOT NULL,
nom VARCHAR(16) NOT NULL,
prenom VARCHAR(20) NOT NULL,
sexe SMALLINT(1) NOT NULL,
aanais INT(4) NOT NULL,
mmnais INT(2) NOT NULL,
ddentree DATE NOT NULL date_format='YYYYMM',
ddnom DATE NOT NULL date_format='YYYYMM',
brut INT(5) NOT NULL,
net DOUBLE(8,2) NOT NULL,
service INT(2) NOT NULL,
sitmat CHAR(1) NOT NULL,
formation CHAR(5) NOT NULL,
INDEX NP(nom,prenom)
) ENGINE=CONNECT TABLE_TYPE=MYSQL CONNECTIOn='mysql://root@localhost/test/t1';
SELECT * FROM t2 limit 10;
matricule nom prenom sexe aanais mmnais ddentree ddnom brut net service sitmat formation
5745 ESCOURCHE BENEDICTE 2 1935 7 1962-12-01 1994-05-01 18345 14275.50 0 M TECHN
9692 VICENTE LAURENCE 2 1941 8 1967-10-01 1989-01-01 16212 13032.80 0 M ANGL
9146 NICOLAS ROGER 1 1941 6 1964-07-01 1995-02-01 34173 25098.65 0 M SANS
2985 TESSEREAU MARIE HELENE 2 1941 9 1967-01-01 1990-01-01 19323 14933.78 0 V SANS
3368 MOGADOR ALAIN 1 1941 1 1961-09-01 1993-11-01 43303 31420.55 0 C SANS
7394 CHAUSSEE ERIC DENIS 1 1944 9 1965-11-01 1983-12-01 32002 23583.86 0 M ANGL
4655 MAILLOT GEORGES 1 1945 5 1970-09-01 1986-12-01 24700 18541.64 0 C ANGL
2825 CAMILLE NADINE 2 1956 9 1994-01-01 1993-01-01 19494 15050.45 0 M SANS
1460 BRUYERES JEAN MARC 1 1958 8 1984-08-01 1988-05-01 20902 15980.07 0 M SANS
4974 LONES GERARD 1 1959 10 1979-01-01 1994-12-01 16081 12916.70 0 M SANS
SELECT matricule, nom, prenom FROM t2 WHERE nom IN ('FOCH','MOGADOR');
matricule nom prenom
1977 FOCH BERNADETTE
5707 FOCH DENIS
2552 FOCH FRANCK
2634 FOCH JOCELYNE
5765 FOCH ROBERT
4080 FOCH SERGE
3368 MOGADOR ALAIN
explain SELECT matricule, nom, prenom FROM t2 WHERE nom IN ('FOCH','MOGADOR');
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range NP NP 18 NULL 4 Using where
SELECT matricule, nom, prenom FROM t2 WHERE nom = 'FOCH' OR nom = 'MOGADOR';
matricule nom prenom
1977 FOCH BERNADETTE
5707 FOCH DENIS
2552 FOCH FRANCK
2634 FOCH JOCELYNE
5765 FOCH ROBERT
4080 FOCH SERGE
3368 MOGADOR ALAIN
SELECT matricule, nom, prenom FROM t2 WHERE nom < 'ADDAX';
matricule nom prenom
1122 ACACIAS SERGE
115 ACHILLE JACQUES
1340 ABBE MICHELE
1644 ACARDIE BEATE
2728 ABOUT CATHERINE MARIE
2945 ABBEVILLE PASCAL
307 ABBAYE ANNICK
3395 ADAM JEAN CLAUDE
398 ABREUVOIR JEAN LUC
4038 ADAM JANICK
4552 ABBADIE MONIQUE
6124 ABELIAS DELIA
6314 ABERDEN EVELYNE
6399 ABEILLES RENE
6627 ABBAYE GERALD
7961 ABBE KATIA
8596 ABEBERRY PATRICK
8673 ABEL JEAN PIERRE
895 ABORD CHANTAL
9270 ABBE SOPHIE
SELECT matricule, nom, prenom FROM t2 WHERE nom <= 'ABEL';
matricule nom prenom
1340 ABBE MICHELE
2945 ABBEVILLE PASCAL
307 ABBAYE ANNICK
4552 ABBADIE MONIQUE
6399 ABEILLES RENE
6627 ABBAYE GERALD
7961 ABBE KATIA
8596 ABEBERRY PATRICK
8673 ABEL JEAN PIERRE
9270 ABBE SOPHIE
SELECT matricule, nom, prenom FROM t2 WHERE nom > 'YVON';
matricule nom prenom
1325 ZOLA CHRISTINE
4102 ZOUAVES ALAIN
4859 ZORI CATHERINE
5357 ZOLA BERNARD
5441 ZOLA BRIGITTE
8738 ZILINA JEAN LOUIS
9742 YZENGREMER MICHEL
SELECT matricule, nom, prenom FROM t2 WHERE nom >= 'YVON';
matricule nom prenom
1325 ZOLA CHRISTINE
4102 ZOUAVES ALAIN
4859 ZORI CATHERINE
5357 ZOLA BERNARD
5389 YVON CAROLE
5441 ZOLA BRIGITTE
8738 ZILINA JEAN LOUIS
9742 YZENGREMER MICHEL
SELECT matricule, nom, prenom FROM t2 WHERE nom <= 'ABEL' OR nom > 'YVON';
matricule nom prenom
1325 ZOLA CHRISTINE
1340 ABBE MICHELE
2945 ABBEVILLE PASCAL
307 ABBAYE ANNICK
4102 ZOUAVES ALAIN
4552 ABBADIE MONIQUE
4859 ZORI CATHERINE
5357 ZOLA BERNARD
5441 ZOLA BRIGITTE
6399 ABEILLES RENE
6627 ABBAYE GERALD
7961 ABBE KATIA
8596 ABEBERRY PATRICK
8673 ABEL JEAN PIERRE
8738 ZILINA JEAN LOUIS
9270 ABBE SOPHIE
9742 YZENGREMER MICHEL
SELECT matricule, nom, prenom FROM t2 WHERE nom > 'HELEN' AND nom < 'HEROS';
matricule nom prenom
1291 HERMITAGE XAVIER
2085 HEOL GUY PAUL
2579 HERANDIERE PIERRE
2673 HENNER LILIANE
3309 HELENE ISABELLE
403 HERMITTE PHILIPPE
4050 HERBILLON FRANCOIS
4254 HENIN SERGE
4666 HELLEN PIERRE
5781 HELSINKI DANIELLE
6185 HERMITTE FRANCOIS
7093 HERAULTS DANIEL
7626 HENIN PHILIPPE
8365 HELIOTROPES LISE
9096 HELENA PHILIPPE
9231 HERBILLON MADELEINE
9716 HENRI JACQUES
9749 HEROLD ISABELLE
SELECT matricule, nom, prenom FROM t2 WHERE nom BETWEEN 'HELEN' AND 'HEROS';
matricule nom prenom
1291 HERMITAGE XAVIER
2085 HEOL GUY PAUL
2579 HERANDIERE PIERRE
2673 HENNER LILIANE
3309 HELENE ISABELLE
403 HERMITTE PHILIPPE
4050 HERBILLON FRANCOIS
4254 HENIN SERGE
4666 HELLEN PIERRE
5781 HELSINKI DANIELLE
6185 HERMITTE FRANCOIS
6199 HELEN MARTIAL
7093 HERAULTS DANIEL
7626 HENIN PHILIPPE
8365 HELIOTROPES LISE
8445 HEROS SYLVIE
9096 HELENA PHILIPPE
9231 HERBILLON MADELEINE
9716 HENRI JACQUES
9749 HEROLD ISABELLE
SELECT matricule, nom, prenom FROM t2 WHERE nom BETWEEN 'HELEN' AND 'HEROS' AND prenom = 'PHILIPPE';
matricule nom prenom
403 HERMITTE PHILIPPE
7626 HENIN PHILIPPE
9096 HELENA PHILIPPE
SELECT matricule, nom, prenom FROM t2 ORDER BY nom,prenom LIMIT 10;
matricule nom prenom
4552 ABBADIE MONIQUE
307 ABBAYE ANNICK
6627 ABBAYE GERALD
7961 ABBE KATIA
1340 ABBE MICHELE
9270 ABBE SOPHIE
2945 ABBEVILLE PASCAL
8596 ABEBERRY PATRICK
6399 ABEILLES RENE
8673 ABEL JEAN PIERRE
SELECT a.nom, a.prenom, b.nom FROM t1 a STRAIGHT_JOIN t2 b ON a.prenom = b.prenom WHERE a.nom = 'FOCH' AND a.nom != b.nom;
nom prenom nom
FOCH BERNADETTE BERTIN
FOCH BERNADETTE BOISSY
FOCH BERNADETTE HUNTZIGER
FOCH BERNADETTE LATECOERE
FOCH BERNADETTE LEGER
FOCH BERNADETTE MONTJUSTIN
FOCH BERNADETTE ONZE
FOCH BERNADETTE PALMAROLE
FOCH BERNADETTE PLOUHARNEL
FOCH DENIS AMBOISE
FOCH DENIS BERARD
FOCH DENIS BERIN
FOCH DENIS BILLEHOU
FOCH DENIS BOILEAU
FOCH DENIS CONNE
FOCH DENIS COULOUBRIER
FOCH DENIS COUTURIER
FOCH DENIS EPINETTES
FOCH DENIS FIGOURNAS
FOCH DENIS ISTANBUL
FOCH DENIS ITALIE
FOCH DENIS LACATE
FOCH DENIS MAROLLES
FOCH DENIS MONTELIER
FOCH DENIS MONTILS
FOCH DENIS POINTE
FOCH DENIS PORTO
FOCH DENIS REINOTS
FOCH DENIS REMPART
FOCH DENIS ROUSSIER
FOCH DENIS TORTE
FOCH DENIS TOULON
FOCH DENIS VALMANTE
FOCH FRANCK BEARN
FOCH FRANCK ILLIERS
FOCH FRANCK JEANPIERRE
FOCH FRANCK LABBE
FOCH FRANCK LACOMBE
FOCH FRANCK LEROY
FOCH FRANCK MONTALEIGNE
FOCH FRANCK ORVEAU
FOCH FRANCK PURPAN
FOCH FRANCK ROCQUENCOURT
FOCH FRANCK RUSSIE
FOCH JOCELYNE ALEXIS
FOCH JOCELYNE AUGUSTE
FOCH JOCELYNE BASSE
FOCH JOCELYNE CARRERE
FOCH JOCELYNE CHAPELLE
FOCH JOCELYNE FLEMING
FOCH JOCELYNE GAMBADES
FOCH JOCELYNE KENNEDY
FOCH JOCELYNE PEYBERT
FOCH JOCELYNE PIED
FOCH JOCELYNE PONTAROUX
FOCH ROBERT AGRIANT
FOCH ROBERT ANNECY
FOCH ROBERT BONVIN
FOCH ROBERT CHENIER
FOCH ROBERT CURAT
FOCH ROBERT DAUDET
FOCH ROBERT GIOTERAIE
FOCH ROBERT GRAFFIANE
FOCH ROBERT GUILLOTIERE
FOCH ROBERT LAMOTHE
FOCH ROBERT MARRONIERS
FOCH ROBERT NIMES
FOCH ROBERT NORD
FOCH ROBERT PEYNIBLOU
FOCH ROBERT PIECE
FOCH ROBERT PLAGNE
FOCH ROBERT POMMERY
FOCH ROBERT PRESIDENT
FOCH ROBERT PUJADE
FOCH ROBERT QUILICHINI
FOCH ROBERT RIOU
FOCH ROBERT ROLL
FOCH ROBERT ROSSA
FOCH ROBERT SABLONS
FOCH ROBERT STRASBOURG
FOCH ROBERT TIRE
FOCH ROBERT TUBY
FOCH ROBERT VIARMES
FOCH SERGE ACACIAS
FOCH SERGE ANDALUCIA
FOCH SERGE ARCACHON
FOCH SERGE BEACH
FOCH SERGE BELLES
FOCH SERGE BOUTON
FOCH SERGE BREUIL
FOCH SERGE CARREFOUR
FOCH SERGE CHATEAU
FOCH SERGE COLLETTE
FOCH SERGE COOLE
FOCH SERGE ECLUSE
FOCH SERGE EGUILLON
FOCH SERGE GOAS
FOCH SERGE GREFFIER
FOCH SERGE HENIN
FOCH SERGE JARDIN
FOCH SERGE LEONIE
FOCH SERGE LOZERE
FOCH SERGE MARSAT
FOCH SERGE MONTAGNE
FOCH SERGE MORIZET
FOCH SERGE NOVEMBRE
FOCH SERGE ORANGERIE
FOCH SERGE PLAISANCE
FOCH SERGE RESISTANCE
FOCH SERGE RESTANQUES
FOCH SERGE ROSSAYS
FOCH SERGE SARTRE
FOCH SERGE SAVIGNAC
FOCH SERGE SEGUR
FOCH SERGE VANOEL
FOCH SERGE WILSON
DROP TABLE t2;
DROP TABLE t1;
|