My SQL l I l III l IV

  • Slides: 29
Download presentation
My. SQL l. I / l III / l IV / l VII /

My. SQL l. I / l III / l IV / l VII / Présentation. Administration et Outils. Mysql et le langage C++. Mysql et Java. Benchmarks Références

I / Présentation de Mysql

I / Présentation de Mysql

1) Historique l En 94, M. Widenius crée un nouveau serveur basé sur les

1) Historique l En 94, M. Widenius crée un nouveau serveur basé sur les caractéristiques de msql. l En 95, Tcx distribue My. SQL sur Internet. l Version 3. 11. 1 diffusée dès 1996 (plusieurs plate-formes) l Aujourd’hui Version 3. 27

2) Caractéristiques (++) l Vitesse. l Facilité d’utilisation. l Coût. l Capacités. l Connexion

2) Caractéristiques (++) l Vitesse. l Facilité d’utilisation. l Coût. l Capacités. l Connexion et Sécurité. l Portabilité. l Distribution ouverte.

3) Caractéristiques (--) l Subselect. l Transanctions et commit / rollback. l Clés étrangères

3) Caractéristiques (--) l Subselect. l Transanctions et commit / rollback. l Clés étrangères et intégrité référentielle. l Procédures stockées. l Déclencheurs. l Vues.

4) Installation l Récupérer les sources sur www. mysql. com l tar zxf mysql-version.

4) Installation l Récupérer les sources sur www. mysql. com l tar zxf mysql-version. tar. gz l. /configure - -prefix= « path » l make install l lancer le script mysql_install_db

5) Démarrage l lancer la commande safe_mysqld & l Pour un démarrage automatique :

5) Démarrage l lancer la commande safe_mysqld & l 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/rc 3. d créer un lien symbolique S 90 mysql vers /etc/rc. d/init. d/mysql ln –s /etc/rc. d/init. d/mysql /etc/rc. d/rc 3. d/S 90 mysql

II / Administration et Outils

II / Administration et Outils

2) Outils mysql l mysqladmin l mysqldump l mysqlimport l l mysqlshow l isamchk

2) Outils mysql l mysqladmin l mysqldump l mysqlimport l l mysqlshow l isamchk : shell sql. : création, destruction de bases. : sauvegarder une base. : importer un fichier de données. : infos sur les bases, les tables, les colonnes et les index. : maintenance et la réparation.

3) Exemples

3) Exemples

III / Mysql et le langage C

III / Mysql et le langage C

1) API C et Structures MYSQL l MYSQL_RES l MYSQL_ROW l MYSQL_FIELD l l

1) API C et Structures MYSQL l MYSQL_RES l MYSQL_ROW l MYSQL_FIELD l l pointeur sur une base résultat d’une requete ligne de données. infos sur un champ mysql_real_connect() mysql_query () l mysql_free_result() l mysql_fetch_row () l mysql_field_seek (); l mysql_fetch_field (); l mysql_close () //Connexions mysql_store_result (); // Execution // Récupération des résultats

2) Exemple(1) int main (int argc, char *argv[]){ ……. . MYSQL *conn; conn =

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) int process_query (MYSQL *conn, char *query){ MYSQL_RES *res_set; if (mysql_query (conn, query) !=

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) void process_result_set (MYSQL *conn, MYSQL_RES *res_set){ MYSQL_ROW row; while ((row = mysql_fetch_row (res_set))

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 l Includes -I/usr/include/mysql l Librairies -L/usr/local/lib/mysql -lmysqlclient

3) Compilation l Includes -I/usr/include/mysql l Librairies -L/usr/local/lib/mysql -lmysqlclient

IV / Mysql et le langage C++

IV / Mysql et le langage C++

1) API C++ l Installer My. SQL++ 1. 7. 6 l Class Connection l

1) API C++ l Installer My. SQL++ 1. 7. 6 l Class Connection l Class Query l Class Result l Class Row

2) Exemple int main(int argc, char **argv) { Connection con("etudiant"); Query query = con.

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

3) Compilation l Includes -I/usr/include/mysql l Librairies -L/usr/lib/mysql -lsqlplus

3) Compilation l Includes -I/usr/include/mysql l Librairies -L/usr/lib/mysql -lsqlplus

V / Mysql et Java

V / Mysql et Java

1) API Java l Spécifiques à la base cible Installer mm. mysql. jdbc-2. 0

1) API Java l Spécifiques à la base cible Installer mm. mysql. jdbc-2. 0 pre 5. tar. gz l Créer le CLASSPATH l l Class Connection Class Statement l Class Result. Set l

2) JDBC l Java Database Connectivity l Communiquer avec les bases de données l

2) JDBC l Java Database Connectivity l Communiquer avec les bases de données l Package java. sql l Appel package généralisé vers propriétaire l 4 types : – Type 1 – Type 4 : Passerelle JDBC - ODBC : Pilotes 100 % Java, plus performant.

3) Exemple … Class. for. Name("org. gjt. mm. mysql. Driver"). new. Instance(); Connection Conn=

3) Exemple … Class. for. Name("org. gjt. mm. mysql. Driver"). new. Instance(); Connection Conn= Driver. Manager. get. Connection("jdbc: mysql: //localhost/etudiant? user=fred&password=fred"); Statement Stmt = Conn. create. Statement(); Result. Set RS = Stmt. execute. Query(args[0]); while (RS. next()) { System. out. println(RS. get. Int(1) + " | " + RS. get. String(2) + " | " + RS. get. String(3)); } RS. close(); Stmt. close(); Conn. close(); …

VI / Benchmarks l. C’est pas moi les fait !!!

VI / Benchmarks l. C’est pas moi les fait !!!

VII / Références l www. mysql. com – API's – Clients – Outils Web

VII / Références l www. mysql. com – API's – Clients – Outils Web – Outils d’authentification – …. . l My. SQL - Paul Dubois - Campus. Press