Académique Documents
Professionnel Documents
Culture Documents
sur MySQL
et initiation au SQL
UCAD/FST/DMI/LPCM
• DECIMAL[(M[,D])] [ZEROFILL]
Nombres à virgule flottante stockés comme des chaînes de
caractères.
Occupe M+2 octets si D > 0, M+1 octets si D = 0
Création d’une table
Types de données MySQL (le temps)
• DATE 3 octets
Stocke une date au format 'AAAA-MM-JJ'
allant de '1000-01-01' à '9999-12-31‘
• DATETIME 8 octets
Stocke une date et une heure au format
'AAAA-MM-JJ HH:MM:SS' allant de
'1000-01-01 00:00:00' à '9999-12-31 23:59:59'
Création d’une table
Types de données MySQL (le temps)
• TIME 3 octets
Stocke l'heure au format 'HH:MM:SS',
allant de '-838:59:59' à '838:59:59‘
• YEAR[(4|2)] 1 octet
Stocke l’année à 4 (par défaut) ou 2 chiffres allant de 1901 à
2155 ( 4 chiffres) et de 1970-2069 (2 chiffres).
Création d’une table
Types de données MySQL (les caractères)
• TINYBLOB et TINYTEXT
Stockent des fichiers ou du texte de 255 caractères maximum.
Le 1er aura un contenu de type binaire (sensible à la casse)
Le 2nd aura un contenu de type ASCII (insensible à la casse)
• BLOB et TEXT
Stockent des fichiers ou du texte de 65 535 caractères
maximum.
Création d’une table
Types de données MySQL (les caractères)
• MEDIUMBLOB et MEDIUMTEXT
Stockent des fichiers ou du texte de 16 777 215 caractères
maximum.
• LONGBLOB et LONGTEXT
Stockent des fichiers ou du texte de 4 294 967 295 caractères
maximum.
• ENUM('valeur_possible1','valeur_possible2', ...)
Énumération de valeurs. Une valeur parmi 65535.
• SET('valeur_possible1','valeur_possible2', ...)
Ensemble de valeurs. Une ou plusieurs valeurs parmi 64.
• NB 1 : On peut donc associer ENUM aux champs de
type radio , et SET aux champs de type checkbox;
• NB 2 : Ces deux types peuvent contenir des valeurs null.
Maintenance d’une table
• Suppression de table :
DROP TABLE nom_table;
• Ajouter un attribut :
ALTER TABLE nom_table ADD definition [First|After attribut]
• Supprimer un attribut :
ALTER TABLE nom_table DROP attribut
• Modifier la définition d’un attribut:
ALTER TABLE nom_table ALTER attribut nouvelle_definiton
• Changer la valeur par défaut d’un attribut:
ALTER TABLE nom_table ALTER attribut {SET DEFAULT valeur}
• Créer une clé primaire :
ALTER TABLE nom_table ADD PRIMARY KEY (attribut)
• Supprimer une clé primaire :
ALTER TABLE nom_table DROP PRIMARY KEY
Insertion de données
INSERT INTO nom_table
[(nomattribut1,...,nomattributN)]
VALUES (valeur1,...,valeurN),
[(autre_valeur1,...,autre_valeurN)];
• Les attributs qui ne sont pas mentionnés prendront
leur valeur par défaut.
• Si les noms d’attributs sont omis il faut fournir une
valeur pour toute les colonnes dans l'ordre dans
lequel elle ont été spécifiées lors de la création de la
table.
• Les valeurs chaînes de caractère sont entre '…'.
Màj et suppression de données
• Syntaxe de mise à jour de données:
UPDATE nom_table
SET nom_col1=new_valeur1, nom_col2=new_valeur2, …
[WHERE prédicat]
• Syntaxe de suppression de données
DELETE FROM nom_table
[WHERE prédicat]
• WHERE ,clause de filtre, introduit un prédicat (1 ou +sieurs
expressions conditionnelles) pour spécifier les enregistrements
à modifier ou à supprimer.
• ATTENTION : Si WHERE est omise, les modif. ou suppressions
sont appliquées à la totalité des enregistrements de la table.
consultation de données
syntaxe
SELECT [DISTINCT] * ou liste_de_champs (séparés par ,)
FROM nom_table [WHERE prédicat]
[GROUP BY critère_de_regroupement
HAVING prédicat]
[ORDER BY liste_de_colonnes (séparés par ,)]
[LIMIT nbr_de_lignes_à_retourner [OFFSET nbr_lignes_à_ignorer]]
• * sélectionne tous les champs de la table
• DISTINCT élimine les doublons dans le résultat
• WHERE introduit un prédicat pour spécifier les enregistrements
à sélectionner.
• GROUP BY permet de définir des regroupements
d’enregistrements afin d’effectuer des calculs statistiques.
• HAVING (filtre après sélection) spécifie un prédicat sur des
groupes d'enregistrements générés par la clause GROUP BY ou
des fonctions d’agrégat.
consultation de données
syntaxe(suite et fin)
• ORDER BY permet de trier (ASC par défaut ou DESC) les lignes du
résultat en fonction d’une ou ide +sieurs colonne(s) listée(s) dans
la SELECT.
• LIMIT et OFFSET permettent de ne récupérer qu'une partie des
lignes engendrées par le reste de la requête.
• LIMIT spécifie le nombre de lignes à retourner depuis le début du
jeu de résultat.
• OFFSET indique le nombre de lignes à ignorer depuis le début du
jeu de résultat.
• Lors de l'utilisation de LIMIT, il est nécessaire d'utiliser une
clause ORDER BY contraignant les lignes résultantes dans un
ordre unique.
• LIMIT et OFFSET sont très utiles pour afficher un catalogue
volumineux en plusieurs pages.
consultation de données
prédicat (1/2)
Pour exprimer un prédicat on peut utiliser:
• les opérateurs arithmétiques : +,-,*,/,% ;
• les opérateurs booléens : AND, OR, NOT ;
• les opérateurs de comparaison : =, != (ou < >), <, >, <=, >= ;
• IS [ NOT ] NULL pour tester si la valeur est NULL (vide) ou
non;
• [ NOT ] EXIST ( SELECT ... ) pour tester si la sélection renvoi
quelque chose ou non;
• [ NOT ] BETWEEN val_1 AND val_2 pour tester si la valeur est
entre val_1 et val_2 (incluses)
consultation de données
prédicat (2/2)
• [ NOT ] IN (var_1, var_2, ...) / [ NOT ] IN ( SELECT ... ) pour
tester si la variable est dans la liste/sous-requête
• operateur ALL (var_1, var_2, ...) / operateur ALL ( SELECT ... )
pour tester si la valeur est <, >, <=, >= à toutes les valeurs de la
liste/sous-requête
• operateur ANY (var_1, var_2, ...) / operateur ANY ( SELECT ... )
pour tester si la valeur est <, >, <=, >= à au moins une valeur de
la liste/sous-requête
• [ NOT ] LIKE '%chaîne_%' pour tester si la variable ressemble
ou non à la chaîne
– '%' remplace une chaîne
– '_' remplace un caractère
consultation de données
fonctions d’agrégat