Université des Sciences Sociales
Année 2002-2003
LE SYSTEME DE GESTION DE BASES DE DONNEES MYSQL
Ce chapitre présente le SGBD MySQL. Il introduit tout d’abord MySQL. Il présente ensuite les
types de données de MySQL et les principales fonctions permettant de manipuler ces types. Il
décrit ensuite le langage SQL de MySQL. Il se termine enfin par quelques références
bibliographiques.
1. Introduction à MySQL
MySQL est un SGBD appartenant au monde du free et de l’open source. Il a été créé en 1995
par Michael Widenius au sein de la société suédoise TcXDataKonsultAB.
MySQL retient l’essentiel de ce qui a fait le succès des SGBD relationnels, à savoir le modèle
relationnel et le langage SQL. MySQL est un SGBD rapide, robuste, capable de gérer un grand
volume de données. Contrairement aux principaux SGBD relationnel du marché qui visent un
grand nombre de types d’applications, il s’est plus particulièrement centré sur les applications
de type Internet afin de prendre en compte la notion d’Internet dynamique.
1.1. Principales Caractéristiques
L’architecture de MySQL est une architecture de type Client/Serveur. Un serveur MySQL est
installé sur une machine et gère l’accès à une ou plusieurs bases de données. On a un serveur
par machine et plusieurs bases de données par serveur. A chaque connexion d’un client, un
processus fils du serveur est lancé et permet d’accéder aux bases de données gérées par le
serveur
Figure 1 : Architecture Client/Serveur de MySQL
Les applications qui peuvent solliciter un serveur MySQL peuvent être :
- un client MySQL qui correspond à un utilisateur cherchant à travailler sur un base de
données du serveur à travers l’interface SQL de MySQL,
- un SGBD qui, via un pilote ODBC, importe ou lie des tables de bases de données gérées par
le serveur MySQL considéré,
Bases de données
Serveur MySQL
Client 1
Client 2
Processus 1
Processus 2
Université des Sciences Sociales
Année 2002-2003
LE SYSTEME DE GESTION DE BASES DE DONNEES MYSQL
- une application cliente écrite avec l’une des API supportées par MySQL à savoir PHP, C,
C++, JAVA, EIFFEL, PERL ; par exemple, phpMyAdmin qui est un site Web écrit en
HTML et PHP dédié à l’administration de base de données MySQL est une application
client développée avec l’API PHP.
MySQL est un SGBD multi-utilisateur, multi-processus (multi-thread) qui est capable de
stocker un volume important de données. Il propose des structures de stockages des données de
type arbre-B, permet la définition d’index et utilise des tables de hachage. Les données sont
stockées le fichier .MYD, les index dans le fichier.MYI et les descriptions des tables dans le
fichier .FRM. Il inclue un système de gestion des droits d’accès très performant.
MySQL sinstalle sur les plates-formes Windows, Linux, Unix, OS/2 …
1.2. Limites
MySQL est un SGBD Relationnel robuste, simple, fiable et capable de gérer un grand volume
de données. Il est plus particulièrement destiné à des applications de type Internet. Il n’est
cependant pas comparable à des SGBD généralistes comme ORACLE ou d’autres car d’une
part il n’implante pas l’ensemble des concepts de l’approche bases de données relationnelles et
d’autre part il cible qu’un type d’application. On ne retrouve notamment pas dans MySQL :
- La notion de clés étrangères qui implante les contraintes d’intégrités référentielles qui ont
pour objectif de s’assurer de la cohérence des données entre tables,
- La notion d’opérations ensemblistes et notamment les opérateurs UNION, INTERSECT et
MINUS,
- La notion de requêtes imbriquées et l’opérateur EXISTS,
- La rigueur exigée par SQL au niveau de la clause SELECT lors de l’expression de GROUP
BY,
- La notion de transactions qui se limite dans la version standard à Commit ou Rollback sur
une commande SQL,
- La notion de vues,
- Les notions de procédures stockées et de déclencheurs.
2. Références MySQL
2.1. Types de Données
2.1.1. Types numériques
MySQL propose les types suivants pour la description d’attributs ayant pour valeur une valeur
numérique sans virgule.
Nom
Taille
Université des Sciences Sociales
Année 2002-2003
LE SYSTEME DE GESTION DE BASES DE DONNEES MYSQL
TINYINT
TINYINT UNSIGNED
SMALLINT
SMALLINT UNSIGNED
MEDIUMINT
MEDIUMINT UNSIGNED
INT
INT UNSIGNED
BIGINT
BIGINT UNSIGNED
1
1
2
2
3
3
4
4
8
8
-128 à 127
Il est possible de préciser le mot clé ZEROFILL pour ces types numériques sans virgules. Ce
mot clé indique que la donnée concernée est complétée par des 0 si nécessaire. Par exemple, la
valeur 42 sera stockée 00042 pour une déclaration d’une donnée de type SMALLINT
ZEROFILL.
MySQL propose les types suivants pour la description d’attributs ayant pour valeur une valeur
numérique avec virgule.
Nom
Taille
Plage de valeurs/Commentaires
FLOAT
FLOAT(X,Y)
DOUBLE PRECISION
DECIMAL(M,D)
4
4 pour X compris entre 0 et 24
8 pour X compris entre 25 et 53
8
M +2 si D est supérieur à 0,
M+1 si D est égal à 0
D+2 si D est supérieur à M
X est le nombre de bits total
utilisés, Y est le nombre de
chiffres après la virgule
M est le nombre de chiffres avant
la virgule (signe et virgule
compris), D est le nombre de
chiffres après la virgule
2.1.2. Chaînes de caractères
MySQL propose les types suivants pour la description d’attributs ayant pour valeur une suite de
caractères.
Nom
Taille
Plage de valeurs/Commentaires
CHAR
CHAR(X)
VARCHAR(X)
TINYTEXT ou
TINYBLOB
TEXT ou BLOB
MEDIUMTEXT ou
1
X
L+1
L+1
L+2
L+3
un code ASCII (256 valeurs)
L est la longueur de la chaîne ; L varie entre 1 et X ; X
varie entre 1 et 255
L est la longueur de la chaîne ; L varie entre 1 et X ; X
varie entre 1 et 255
L varie entre 1 et 65 535
L varie entre 1 et 16 777 215
Université des Sciences Sociales
Année 2002-2003
LE SYSTEME DE GESTION DE BASES DE DONNEES MYSQL
MEDIUMBLOB
LONGTEXT ou
LONGBLOB
L+4
L varie entre 1 et 4 294 967 295
Remarque : Lors de l’expression de critères de sélection sur des attributs de type CHAR,
CHAR(X) et VARCHAR(X) il n’y a aucune distinction entre les majuscules et les minuscules.
Si cette distinction est nécessaire, il faut utiliser le mot clé BINARY comme suit lors de la
déclaration du type de l’attribut : VARCHAR(X) BINARY. La distinction entre les majuscules
et minuscules pour les attributs de type TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT
se fait en utilisant respectivement les types TINYBLOB, BLOB, MEDIUMBLOB et
LONGBLOB.
2.1.3. Enuméré
Un type énuméré énumère l’ensemble des valeurs possibles pour un attribut. La syntaxe de
déclaration d’un tel type est la suivante :
Nom
Taille
Plage de valeurs/Commentaires
ENUM(‘valeur1’,’va
leur2’, …, ‘valeurn’)
1 ou 2
La valeur de l’attribut est la chaîne vide, NULL ou une
des valeurs de l’énumération
2.1.4. Ensembliste
Un type ensembliste permet de décrire l’ensemble des valeurs possibles pour un attribut prenant
plusieurs valeurs. La syntaxe de déclaration d’un tel type est la suivante :
Nom
Taille
Plage de valeurs/Commentaires
SET(‘valeur1’,’valeu
r2’, …, ‘valeurn’)
1, 2, 4 ou 8
Chaque valeur de l’attribut est la chaîne vide, NULL ou
une des valeurs spécifiée dans l’ensemble
2.1.5. Date et Heure
Plusieurs types sont proposés pour la gestion du temps. Ces types sont les suivants :
Nom
Taille
Plage de valeurs/Commentaires
DATE
DATETIME
TIMESTAMP(X)
TIME
YEAR
3
8
4
3
1
1/1/1000 au 31/12/9999 ; format AAAA-MM-JJ
1/1/1000 00:00:00 au 31/12/9999 23:59:59 ; format
AAAA-MM-JJ HH:MM:SS
X est le nombre de chiffres affichés ; ses valeurs
possibles sont 2, 4, 6, 8, 10, 12, 14 ; 1/1/11970 00:00:00
au 31/12/2037 23:59:59 ; format AAAA-MM-
JJ HH:MM:SS
-838h59m59s à 838h59m59s ; format HH:MM:SS
1901 à 2155 ; format AAAA
Université des Sciences Sociales
Année 2002-2003
LE SYSTEME DE GESTION DE BASES DE DONNEES MYSQL
2.2. Fonctions et Opérateurs
MySQL propose de nombreuses fonctions pour la gestion des valeurs d’attributs définis sur les
types précédents. Cette section ne présente que les fonctions principales. Elle décrit également
quelques opérateurs intéressants lors de l’expression de requêtes SQL.
2.2.1. Fonctions
Les fonctions MySQL sont classées par catégories : fonctions mathématiques, fonctions sur les
chaînes de caractères, sur les dates, d’agrégation.
2.2.1.1. Fonctions Mathématiques
Ces fonctions sont les suivantes :
- ABS(X) retourne la valeur absolue de X,
- MOD(X,Y) retourne le reste de la division de X par Y,
- RAND() retourne une valeur aléatoire entre 0 et 1,
- POWER(X,Y) retourne X puissance Y,
- ROUND(X) retourne la valeur entière la plus proche,
- CEILING(X) retourne la valeur entière supérieure la plus proche.
2.2.1.2. Fonctions sur les Chaînes de Caractères
Ces fonctions sont les suivantes :
- CONCAT(chaîne1,chaîne 2,…,chaîneN) retourne la chaîne résultat de la concaténation de
chaîne1, chaine2, …, chaînen,
- LCASE(chaîne) retourne la chaîne écrite en minuscule,
- LEFT(chaîne,X) retourne les X premiers caractères de chaîne,
- LENGTH(chaîne) retourne le nombre de caractères de la chaîne,
- LTRIM(chaîne) retourne la chaîne privée des espaces initiaux,
- MID(chaîne,X,Y) retourne la partie de chaîne qui commence à la position X et dont la
longueur est Y,
- REPLACE(chaîne1,chaîne2,chaîne3) retourne chaîne1 ou toutes les occurrences de chaîne2
ont été remplacées par chaîne3,
- RIGHT(chaîne,X) retourne les X derniers caractères de chaîne,
- RTRIM(chaîne) retourne la chaîne privée des espaces terminaux,
- SPACE(X) retourne une chaîne composée de X espaces,
- STRCMP(chaîne1,chaîne2) retourne 0 si les deux chaînes sont égales, -1 si chaîne1 est plus
petite que chaîne2, 1 sinon,
- UCASE(chaîne) retourne la chaîne écrite en majuscule.
Remarque : Les chaînes de caractères sont notées entre apostrophes ou guillemets. Le caractère
spécial \ est utilisé pour inclure un apostrophe dans une chaîne. La notation est : \’.
2.2.1.3. Fonctions sur les Dates
Ces fonctions sont les suivantes :
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !