Download
mysql n.
Skip this Video
Loading SlideShow in 5 Seconds..
MySQL PowerPoint Presentation

MySQL

133 Views Download Presentation
Download Presentation

MySQL

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. MySQL • 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

  2. I / Présentation de Mysql

  3. 1) 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

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

  5. 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.

  6. 4) 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

  7. 5) 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

  8. II / Administration et Outils

  9. 2) 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.

  10. 3) Exemples

  11. III / Mysql et le langage C

  12. 1) 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 ();

  13. 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; }

  14. 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; }…

  15. 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"); } }

  16. 3) Compilation • Includes -I/usr/include/mysql • Librairies -L/usr/local/lib/mysql -lmysqlclient

  17. IV / Mysql et le langage C++

  18. 1) API C++ • Installer MySQL++ 1.7.6 • Class Connection • Class Query • Class Result • Class Row

  19. 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; }

  20. 3) Compilation • Includes -I/usr/include/mysql • Librairies -L/usr/lib/mysql -lsqlplus

  21. V / Mysql et Java

  22. 1) 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

  23. 2) 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.

  24. 3) 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(); …

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

  26. VII / Références • www.mysql.com • API's • Clients • Outils Web • Outils d’authentification • ….. • MySQL - Paul Dubois - CampusPress