Partie I
SQL de base
40
© Éditions Eyrolles
Données binaires
Le type BIT permet de manipuler des suites variables de bits. Des fonctions sont disponibles
pour programmer le « ET », le « OU » exclusif ou inclusif, etc. La table suivante contient
deux colonnes de ce type. Notez l’utilisation du préfixe « b » pour initialiser un tel type.
CREATE TABLE Registres (nom CHAR(5),numero BIT(2),adresse BIT(16));
INSERT INTO Registres VALUES ('COM2',
,
);
Énumérations
Le type ENUM est considéré comme une liste de chaînes de caractères. Toute valeur d’une
colonne de ce type devra appartenir à cette liste établie lors de la création de la table. Supposons qu’on recense quatre types possibles de diplômes ('BTS', 'DUT', 'Licence' et 'INSA') pour
chaque étudiant. On ne stocke qu’un seul diplôme par étudiant.
Le script de la création de la table et des insertions est le suivant. Notez que les parenthèses
sont optionnelles pour désigner la colonne ENUM.
Le type SET permet de comparer une liste à une combinaison de valeurs permises à partir d’un
ensemble de référence (chaînes de caractères). Supposons qu’on désire stocker plusieurs
diplômes par étudiant.
b'10' b'0000010011110111'
Figure 2-2 Table avec une colonne ENUM
UnCursus
num
nom
{diplome }
E1
F. Brouard
BTS
E2
F. Degrelle
Licence
ENUM
BTS, DUT, Licence INSA
Tableau 2-4 Insertions avec un ENUM
Création
Insertions (deux bonnes une illicite)
CREATE TABLE UnCursus
(num CHAR(4), nom CHAR(15), diplome
ENUM
,
CONSTRAINT pk_Cusus PRIMARY KEY(num));
mysql> INSERT INTO UnCursus VALUES
('E1', 'F. Brouard', ('BTS'));
mysql> INSERT INTO UnCursus VALUES
('E2', 'F. Degrelle', 'Licence');
mysql> INSERT INTO UnCursus VALUES
('E3', 'Bug', ('MathSup'));
ERROR 1265 (01000): Data truncated
for column 'diplome' at row 1
('BTS','DUT','Licence','INSA')
SQL de base
40
© Éditions Eyrolles
Données binaires
Le type BIT permet de manipuler des suites variables de bits. Des fonctions sont disponibles
pour programmer le « ET », le « OU » exclusif ou inclusif, etc. La table suivante contient
deux colonnes de ce type. Notez l’utilisation du préfixe « b » pour initialiser un tel type.
CREATE TABLE Registres (nom CHAR(5),numero BIT(2),adresse BIT(16));
INSERT INTO Registres VALUES ('COM2',
,
);
Énumérations
Le type ENUM est considéré comme une liste de chaînes de caractères. Toute valeur d’une
colonne de ce type devra appartenir à cette liste établie lors de la création de la table. Supposons qu’on recense quatre types possibles de diplômes ('BTS', 'DUT', 'Licence' et 'INSA') pour
chaque étudiant. On ne stocke qu’un seul diplôme par étudiant.
Le script de la création de la table et des insertions est le suivant. Notez que les parenthèses
sont optionnelles pour désigner la colonne ENUM.
Le type SET permet de comparer une liste à une combinaison de valeurs permises à partir d’un
ensemble de référence (chaînes de caractères). Supposons qu’on désire stocker plusieurs
diplômes par étudiant.
b'10' b'0000010011110111'
Figure 2-2 Table avec une colonne ENUM
UnCursus
num
nom
{diplome }
E1
F. Brouard
BTS
E2
F. Degrelle
Licence
ENUM
BTS, DUT, Licence INSA
Tableau 2-4 Insertions avec un ENUM
Création
Insertions (deux bonnes une illicite)
CREATE TABLE UnCursus
(num CHAR(4), nom CHAR(15), diplome
ENUM
,
CONSTRAINT pk_Cusus PRIMARY KEY(num));
mysql> INSERT INTO UnCursus VALUES
('E1', 'F. Brouard', ('BTS'));
mysql> INSERT INTO UnCursus VALUES
('E2', 'F. Degrelle', 'Licence');
mysql> INSERT INTO UnCursus VALUES
('E3', 'Bug', ('MathSup'));
ERROR 1265 (01000): Data truncated
for column 'diplome' at row 1
('BTS','DUT','Licence','INSA')
