Vous êtes sur la page 1sur 3

1.

MySQL :
1.1.

Dfinition :

MySQL est un systme de gestion de bases de donnes relationnelles (SGBDR) libre, gratuit,
performant, trs populaire, multi-thread et multi-utilisateurs. Il est constitu de :

Un serveur mysqld : le processus mysqld est le serveur de MySQL. Lui seul peut

accder aux fichiers stockant les donnes pour lire et crire des informations.
Des utilitaires : MySQL fournit tout un ensemble de programmes, que nous
appellerons utilitaires, qui sont chargs de dialoguer avec mysqld, par lintermdiaire
dune connexion, pour accomplir un type de tches particulier. Par exemple
mysqldump permet deffectuer des sauvegardes, mysqlimport peut importer des
fichiers ASCII dans une base.

1.2.

Avantages :

MySQL dispose de quelques avantages par rapport certains autres systmes :

Il est open source, ce qui signifie quil est gratuit et que tout le monde peut lutiliser et
le modifier

Il est facile utiliser : Mettre en place et travailler avec des bases de


donnes MySQL est relativement simple

Il est scuris : Il dispose dun systme de scurit permettant de grer les personnes et
les machines pouvant accder aux diffrentes bases.

Il est portable : Il tourne sur divers plateformes tels que Linux.

Il est multi-utilisateurs : plusieurs utilisateurs peuvent accder en mme temps la


base de donnes, ce qui est trs important dans notre application.

1.3.

Configuration :

On commence par linstallation. Celle-ci est trs simple, il suffit de taper la commande Yum
install mysql-server . Ensuite il est ncessaire de dmarrer le service avec systemctl start
mysqld.service .On doit aussi scuriser MySql puisque ce dernier gre ses propres
utilisateurs et mots de passe.

2. MySQL et langage C :
MySQL fournit une bibliothque client crite en langage C qui permet dcrire des
programmes clients MySQL assurant l'accs une base de donnes MySQL. Cette
bibliothque offre les fonctions suivantes :

Etablir et terminer une session avec un serveur.


Construire des instructions SQL, les envoyer au serveur, et de traiter des rsultats.
Dterminer la cause exacte dune erreur lorsque l'appel d'API choue.
Traiter les options figurant dans les fichiers d'options ou sur la ligne de commande.

3. Code :
En premier lieu, on cre une base de donnes testdb, ensuite une table nomme etudiant :
mysql> create table etudiant (id int not null primary key auto_increment,
nom varchar(20), age int);

Ensuite on insre des lments dans la table etudiant :


mysql> insert into etudiant(nom, age) values('Jane', 32);
mysql> insert into etudiant(nom, age) values('maryem', 24);
mysql> insert into etudiant(nom, age) values('yasmin', 12);
mysql> insert into etudiant(nom, age) values('tom', 45);

Ensuite jai crit le code suivant etudiantdb.c :


#include <stdio.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
MYSQL_FIELD *field;

int num_fields;
int i;
conn = mysql_init(NULL);
mysql_real_connect(conn, "mysql", "root", "passwd", "testdb", 0, NULL,
0);
mysql_query(conn, "SELECT * FROM etudiant");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
if (i == 0) {
while(field = mysql_fetch_field(result)) {
printf("%s ", field->name);
}
printf("\n");
}
printf("%s ", row[i] ? row[i] : "NULL");
}
}
printf("\n");

mysql_free_result(result);
mysql_close(conn);

On peut ensuite vrifier lexcution de ce code ainsi que la cration de la table :