Vous êtes sur la page 1sur 29

| 

„I / Présentation.
„ II / Administration et Outils.
„ III / Mysql et le langage C.
„ IV / Mysql et le langage C++.
„V / Mysql et Java.
„ VI / Benchmarks
„ VII / Références
I / Présentation de | sql
 Historique
„ ^n 94, M. Widenius crée un nouveau
serveur basé sur les caractéristiques de
msql.
„ ^n 95, Tcx distribue MySQL sur Internet.
„ Version 3.11.1 diffusée dès 1996 (plusieurs
plate-formes)
„ Aujourd¶hui Version 3.23.27
å Caractéristiques (++
„ Vitesse.
„ Facilité d¶utilisation.
„ Coût.
„ Capacités.
„ Connexion et Sécurité.
„ Portabilité.
„ Distribution ouverte.
- Caractéristiques ((--
--
„ Subselect.
„ Transanctions et commit / rollback.
„ Clés étrangères et intégrité référentielle.
„ Procédures stockées.
„ Déclencheurs.
„ Vues.
ΠInstallation
„ Récupérer les sources sur www.mysql.com
„ tar zxf mysql-version.tar.gz
„ ./configure - -prefix=« path »
„ make
„ make install
„ lancer le script mysql_install_db
è Démarrage
„ lancerla commande ¬ ¬

„ Pour un démarrage automatique :


± Dans /etc/rc.d/init.d/ créer un lien symbolique
mysql vers /usr/local/share/mysql.server 
 ¬ ¬   ¬  ¬¬     ¬
± Dans /etc/rc.d/rc3.d créer un lien symbolique
S90mysql vers /etc/rc.d/init.d/mysql
 ¬     ¬    ¬
II / Administration et Outils
å Outils

„ mysql : shell sql.


„ mysqladmin : création, destruction de bases.
„ mysqldump : sauvegarder une base.
„ mysqlimport : importer un fichier de
données.
„ mysqlshow : infos sur les bases, les
tables, les colonnes et les index.
„   : maintenance et la réparation.
- Exemples
III / | sql et le langage C
 API C et tructures
„ MYSQL pointeur sur une base
„ MYSQL_R^S résultat d¶une requete
„ MYSQL_ROW ligne de données.
„ MYSQL_FI^LD infos sur un champ

„ mysql_real_connect() mysql_close () //Connexions

„ mysql_query () mysql_store_result ();


„ mysql_free_result() // ^xecution

„ mysql_fetch_row () // Récupération des résultats


„ mysql_field_seek ();
„ mysql_fetch_field ();
å Exemple(
int main (int argc, char *argv[]){
..
MYSQL *conn;
conn = ¬  (NULL);
if(¬  (conn,host_name,user_name,
password,db_name,port_num,socket_name,flags) == NULL){
printf("mysql_real_connect() failed");
return -1;
}
process_query (conn,argv[1]);
¬¬ (conn);
return 0;
}
Exemple(å
int process_query (MYSQL *conn, char *query){

MYSQL_R^S *res_set;

if (¬ (conn, query) != 0){


printf("process_query() failed");
return -1;
}
res_set = ¬¬¬ (conn);
if (res_set != NULL){
process_result_set (conn, res_set);
¬¬ (res_set);
return 0;
}
Exemple(-
void process_result_set (MYSQL *conn, MYSQL_R^S *res_set){
MYSQL_ROW row;

while ((row = ¬ (res_set)) != NULL){


¬¬ (res_set, 0);

for (i = 0; i < mysql_num_fields (res_set); i++){


field = ¬ (res_set);
printf (" %s |",row[i]);
}
printf("\n");
}
}
- Compilation
„ Includes
-I/usr/include/mysql

„ Librairies
-L/usr/local/lib/mysql -lmysqlclient
IV / | sql et le langage C++
 API C++
„ Installer | ++ 

„ Class Connection

„ Class uer

„ Class Result

„ Class Row
å Exemple
int main(int argc,char **argv) {
Connection con("etudiant");
Query query = con.query();
query << argv[1];
Result res = query.store();

Row row;
Result::iterator i;

for (i = res.begin(); i != res.end(); i++) {


row = *i;
cout << row[0] << " | " << row[1] << " | " << row[2]<< endl ;
}
return 0;
}
- Compilation
„ Includes
-I/usr/include/mysql

„ Librairies
-L/usr/lib/mysql -lsqlplus
V / | sql et Java
 API Java
„ pécifiques à la base cible

„ Installer mmm sqldbc-åpreètargz


„ Créer le CAPATH

„ Class Connection
„ Class tatement
„ Class Resultet
å JDBC
„ Java Database Connectivity
„ Communiquer avec les bases de données
„ Package java.sql
„ Appel package généralisé vers propriétaire
„ 4 types :
± Type 1 : Passerelle JDBC - ODBC
± Type 4 : Pilotes 100 % Java, plus
performant.
- Exemple

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection Conn=
DriverManager.getConnection("jdbc:mysql://localhost/etudiant?
user=fred&password=fred");
Statement Stmt = Conn.createStatement();
ResultSet RS = Stmt.executeQuery(args[0]);
while (RS.next()) {
System.out.println(RS.getInt(1) + " | " + RS.getString(2) + "
| " + RS.getString(3));
}
RS.close();
Stmt.close();
Conn.close();

VI / Benchmarks

„C¶est pas moi les fait !!!


VII / Références
„ www.mysql.com
± API's
± Clients
± Outils Web
± Outils d¶authentification
± ..

„ MySQL - Paul Dubois - CampusPress