MySQL I / Présentation. II / Administration et Outils. III / Mysql et le langage C. IV / Mysql et...

Preview:

Citation preview

MySQLMySQL

I / Présentation.II / Administration et Outils.III / Mysql et le langage C.IV / Mysql et le langage C++.V / Mysql et Java.VI / BenchmarksVII / Références

I / Présentation de MysqlI / Présentation de Mysql

1) Historique1) Historique

En 94, M. Widenius crée un nouveau serveur basé sur les caractéristiques de msql.

En 95, Tcx distribue MySQL sur Internet.Version 3.11.1 diffusée dès 1996 (plusieurs

plate-formes)Aujourd’hui Version 3.23.27

2) Caractéristiques (++)2) Caractéristiques (++)

Vitesse.Facilité d’utilisation.Coût.Capacités.Connexion et Sécurité.Portabilité.Distribution ouverte.

3) Caractéristiques (--)3) Caractéristiques (--)

Subselect.Transanctions et commit / rollback.Clés étrangères et intégrité référentielle.Procédures stockées.Déclencheurs.Vues.

4) Installation4) Installation

Récupérer les sources sur www.mysql.comtar zxf mysql-version.tar.gz./configure - -prefix=« path »make make installlancer le script mysql_install_db

5) Démarrage5) Démarrage

lancer la commande safe_mysqld &Pour un démarrage automatique :

– Dans /etc/rc.d/init.d/ créer un lien symbolique mysql vers /usr/local/share/mysql.server :

ln –s /usr/local /share/mysql.server /etc/rc.d/init.d/mysql

– Dans /etc/rc.d/rc3.d créer un lien symbolique S90mysql vers /etc/rc.d/init.d/mysql

ln –s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S90mysql

II / Administration et OutilsII / Administration et Outils

2) Outils2) 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. isamchk : maintenance et la réparation.

3) Exemples3) Exemples

III / Mysql et le langage CIII / Mysql et le langage C

1) API C et Structures1) API C et Structures MYSQL pointeur sur une base MYSQL_RES résultat d’une requete MYSQL_ROW ligne de données. MYSQL_FIELD infos sur un champ

mysql_real_connect() mysql_close () //Connexions

mysql_query () mysql_store_result (); mysql_free_result() // Execution

mysql_fetch_row () // Récupération des résultats mysql_field_seek (); mysql_fetch_field ();

2) Exemple(1)2) Exemple(1)int main (int argc, char *argv[]){ …….. MYSQL *conn; conn = mysql_init (NULL); if(mysql_real_connect(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]); mysql_close (conn); return 0;}

Exemple(2)Exemple(2)int process_query (MYSQL *conn, char *query){

MYSQL_RES *res_set; if (mysql_query (conn, query) != 0){ printf("process_query() failed"); return -1; } res_set = mysql_store_result (conn); if (res_set != NULL){ process_result_set (conn, res_set); mysql_free_result (res_set); return 0; }…

Exemple(3)Exemple(3)void process_result_set (MYSQL *conn, MYSQL_RES *res_set){ MYSQL_ROW row; while ((row = mysql_fetch_row (res_set)) != NULL){ mysql_field_seek (res_set, 0); for (i = 0; i < mysql_num_fields (res_set); i++){ field = mysql_fetch_field (res_set); printf (" %s |",row[i]); } printf("\n"); }}

3) Compilation 3) Compilation

Includes

-I/usr/include/mysql

Librairies

-L/usr/local/lib/mysql -lmysqlclient

IV / Mysql et le langage C++IV / Mysql et le langage C++

1) API C++1) API C++

Installer MySQL++ 1.7.6

Class Connection

Class Query

Class Result

Class Row

2) Exemple2) Exempleint 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;}

3) Compilation3) Compilation

Includes

-I/usr/include/mysql

Librairies

-L/usr/lib/mysql -lsqlplus

V / Mysql et JavaV / Mysql et Java

1) API Java1) API Java

Spécifiques à la base cible

Installer mm.mysql.jdbc-2.0pre5.tar.gz Créer le CLASSPATH

Class Connection Class Statement Class ResultSet

2) JDBC2) JDBC

Java Database ConnectivityCommuniquer avec les bases de donnéesPackage java.sqlAppel package généralisé vers propriétaire4 types :

– Type 1 : Passerelle JDBC - ODBC– Type 4 : Pilotes 100 % Java, plus

performant.

3) Exemple3) 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 / BenchmarksVI / Benchmarks

C’est pas moi les fait !!!

VII / RéférencesVII / Références

www.mysql.com– API's – Clients – Outils Web – Outils d’authentification– …..

MySQL - Paul Dubois - CampusPress

Recommended