© Éditions Eyrolles
157
chapitre n° 5
Contrôle des données
Le jeu de caractères par défaut est défini dans my.ini à l’aide de la variable defaultcharacter-set. Il est donc possible de créer des bases de données associées à différents
jeux de caractères au sein d’un même serveur. Le jeu de caractères d’une base définit celui des
tables qui seront constituées dedans, à moins que la table ne soit combinée à un autre jeu (créé
avec la directive [DEFAULT] CHARACTER SET jeu [COLLATE nomCollation]).
Notons enfin qu’il est même possible d’affecter un jeu de caractères à une colonne d’une
table. L’exemple suivant construit la table testChap5 dans la base bdnouvelle2 (par
défaut chinoise) en spécifiant que la colonne col1 sera associée au jeu cp850 : DOS West
European, tandis que le reste de la table (pour l’instant de portée col2) sera appliqué au jeu
latin1 : cp1252 West European. Insérons une ligne.
CREATE TABLE bdnouvelle2.testChap5
(
, col2 CHAR(4))
CHARACTER SET latin1;
INSERT INTO bdnouvelle2.testChap5 VALUES ('GTR','IUT');
Sélection d’une base de données (USE)
Ceux qui ont travaillé sous Dbase se souviennent de l’instruction USE qui désignait la table
courante dans un programme. Pour MySQL, USE sélectionne une base de données qui devient
active dans une session.
USE nomBase;
Si vous désirez travailler simultanément dans différentes bases de données, faites toujours
préfixer le nom des tables par celui de la base par la notation pointée (nomBase.nomTable).
L’exemple suivant exécute une jointure sur deux tables situées dans deux bases distinctes :
col CHAR(5) CHARACTER SET cp850
Tableau 5-4 Sélection de bases
Instruction SQL
Résultat
CREATE TABLE bdnouvelle.testUSE
(col3 CHAR(5), col4 CHAR(4))
CHARACTER SET latin1;
INSERT INTO bdnouvelle.testUSE
VALUES ('ACTMP','IUT');
Création d’une table dans la base.
Insertion d’une ligne.
USE bdnouvelle2;
Sélection de la base bdnouvelle2.
SELECT col
.col3
FROM testChap5,
WHERE col2
=
.col4;
+------+-------+
| col | col3 |
+------+-------+
| GTR | ACTMP |
+------+-------+
Jointure de la table testChap5 située
dans la base active (bdnouvelle2)
avec testUSE située dans la base
bdnouvelle.
, bdnouvelle.testUSE
bdnouvelle.testUSE
bdnouvelle.testUSE
Précédent

- 179/418

Suivant