mysql i / présentation. ii / administration et outils. iii / mysql et le langage c. iv / mysql et...

29
MySQL 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

Upload: olivier-lepine

Post on 03-Apr-2015

120 views

Category:

Documents


6 download

TRANSCRIPT

Page 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

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

Page 5: 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

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.

Page 6: 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

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

Page 7: 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

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

Page 8: 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

II / Administration et OutilsII / Administration et Outils

Page 9: 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
Page 10: 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
Page 11: 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
Page 12: 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

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.

Page 13: 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

3) Exemples3) Exemples

Page 14: 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

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

Page 15: 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

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 ();

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

3) Compilation 3) Compilation

Includes

-I/usr/include/mysql

Librairies

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

Page 20: 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

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

Page 21: 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

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

Installer MySQL++ 1.7.6

Class Connection

Class Query

Class Result

Class Row

Page 22: 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

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

Page 23: 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

3) Compilation3) Compilation

Includes

-I/usr/include/mysql

Librairies

-L/usr/lib/mysql -lsqlplus

Page 24: 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

V / Mysql et JavaV / Mysql et Java

Page 25: 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

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

Page 26: 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

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.

Page 27: 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

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

Page 28: 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

VI / BenchmarksVI / Benchmarks

C’est pas moi les fait !!!

Page 29: 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

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

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

MySQL - Paul Dubois - CampusPress