Iniziamo con uno dei database più utilizzati nel mondo open source e non solo: MySQL. Vediamo come si eseguono le normali operazioni di base. Per accedere ad un database già esistente basta creare un nuovo oggetto di tipo Mysql
con il metodo new
passandogli come argomenti i parametri per la connessione, che sono rispettivamente il nome dell'host che ospita il server mysql, l'utente e la password di accesso al database e il nome del database che ci interessa.
Esempio di connessione a MySQL
require 'mysql' db = Mysql.new("localhost","user","password","test")
Gli altri metodi per la connessione al server sono real_connect()
e connect()
che prendono gli stessi argomenti di new
.
Per il resto c'è poco da dire, le operazioni sul database si eseguono attraverso normali query SQL che possiamo inviare attraverso il metodo query
. Possiamo, ad esempio, creare una tabella.
Creare una tabella
db.query("CREATE TABLE libro ( titolo CHAR(100) NOT NULL, autore CHAR(40) NOT NULL, anno YEAR(4)); ")
I dati vanno inseriti con lo stesso metodo utilizzando un'adeguata query SQL
Inserire i dati
db.query("INSERT INTO libro (titolo, autore, anno) VALUES ('Lo straniero','Albert Camus', 1942), ('Autobiografia di un monaco zen','Taisen Deshimanru', 2000), ('I proscritti','Ernst Von Salomon', 1930) ")
Utilizziamo il metodo query
anche per le selezioni
Interrogare la tabella
ris = db.query("SELECT * FROM libro ORDER BY anno") ris.each_hash do |r| print "#{r['titolo']} - #{r['autore']}" end
Il metodo each_hash
non fa altro che iterare su tutti i risultati creando da questi degli hash che hanno come chiave il nome della colonna e come valore il contenuto del campo. Al termine delle operazioni il database va chiuso con
db.close
che chiude la connessione con il server MySQL. Tra gli altri metodi, dall'ovvio significato, vanno ricordati
Metodo | funzione |
---|---|
create_db() |
per creare un database |
drop_db() |
per cancellare un database |
select_db() |
per selezionare un database |
error() errno() |
per la gestione degli errori |
client_info() client_version() |
per recuperare informazioni sul client |
server_info() server_version() |
per recuperare informazioni sul server |
ssl_set() |
per utilizzare SSL |
Non occorre aggiungere altro. Da quello che abbiamo visto, infatti, per usare MySQL nelle applicazioni Ruby più che i metodi della libreria occorre saper scrivere query in SQL.