SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

DBMS (DataBase Management System)
Database MySql.
Stored Procedure Function Trigger
Array multidimensionali
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
Connessione con MySQL.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Database nel Web Modulo Didattico: Francesca Platania
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Funzioni definite dall’utente
File.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Access: Query semplici
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
I File.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Daniel Stoilov Tesi di Laurea
JDBC(TM) Database Access
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
File ad accesso casuale o random
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
Realizzato da Roberto Savino
Basi di Dati e Sistemi Informativi
PARSERIZZAZIONE DI FILE
BIOINFO3 - Lezione 341 INTERAZIONE CON UN SERVER MYSQL Quando abbiamo parlato dei database relazionali SQL vi avevo già accennato che linterazione (invio.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
Pagine ASP parte 3 I data base Stefano Schacherl.
Microsoft Access Maschere (II).
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
+ Gestire la persistenza Nicolò Sordoni. + Meccanismi di persistenza dei dati In Windows Phone, come negli altri ambienti, abbiamo tre soluzioni principali.
+ Connettersi al web Nicolò Sordoni. + Verificare se lo smartphone è connesso Per poter accedere alla rete, è consigliato innanzitutto verificare se il.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT P ERSISTENZA.
Android Intent, AlertDialog, SharedPreferences. Intents.
Transcript della presentazione:

SQLite

Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione un vero e proprio DBMS relazionale: SQLite. SQLite è un database engine transazionale estremamente flessibile e veloce, che occupa una quantità molto ridotta di spazio su disco: tutte queste caratteristiche lo rendono perfetto per essere utilizzato in un contesto di tipo mobile. Al contrario della maggior parte dei DBMS, non possiede un processo server separato, ma legge e scrive le informazioni direttamente su file. Difatti un database SQLite non è altro che un file, pertanto può essere copiato o spostato in un altro sistema ed il tutto continuerà a funzionare regolarmente. Per permetterci di gestire al meglio i nostri db, Android ci mette a disposizione una serie di API apposite.

SQLiteOpenHelper Una delle classi principali messe a nostra disposizione dalla piattaforma è SQLiteOpenHelper. Estendendo tale classe, è possibile ridefinire i metodi che ci consentono di effettuare le principali operazioni per la gestione del db (creazione e aggiornamento). Tali metodi sono:

SQLiteDatabase La classe SQLiteDatabase rappresenta un’astrazione del db, e fornisce i metodi necessari ad effettuare le principali operazioni di gestione di un database. Generalmente, per ottenere un’istanza di tale classe, si fa riferimento a due metodi esposti dall’helper visto nella precedente slide: getReadableDatabase() e getWritableDatabase(). Tali metodi restituiscono un’istanza di tipo SQLiteDatabase, che consente l’accesso rispettivamente in lettura ed in scrittura al db. Nelle successive slide esamineremo i principali metodi esposti da tale classe.

ExecSQL Tale metodo consente l’esecuzione di qualsiasi comando SQL che non sia di tipo query (quindi che non preveda la restituzione di informazioni da parte del db). Prevede due overload; il primo richiede semplicemente il codice SQL da eseguire, mentre il secondo ci fornisce di passare dei parametri per l’esecuzione dei cosiddetti prepared statements. public void delete(String sql); public void delete(String sql, Object[] bindArgs);

Operazioni comuni Nonostante sia possibile effettuare molte operazioni utilizzando il comando ExecSQL appena descritto, la piattaforma ci offre supporto nativo per le più comuni operazioni che possono essere effettuate sulle varie tabelle. Fra questi: Delete per eliminare delle righe dalla tabella Insert per aggiungere delle nuove righe alla tabella Update per aggiornare le informazioni di una riga Query per eseguire una query generica sul db

Delete L’operazione che ci consente di eliminare uno o più record da una specifica tabella public int delete(String table, String whereClause, String[] whereArgs); Il primo parametro rappresenta il nome della tabella interessata, il secondo la stringa contenente la condizione, mentre l’ultimo gli eventuali parametri per effettuare il bind con la condizione specificata. Il valore di ritorno indica invece il numero di record eliminati (o -1 in caso di errore).

Insert Operazione che ci consente di inserire un nuovo record. public long insert(String table, String nullColumnHack, ContentValues values); Il parametro nullColumnHack rappresenta una colonna il cui valore può essere NULL. Tale colonna sarà utilizzata nel caso in cui volessimo inserire un record con tutti valori NULL oppure di default. L’istruzione “INSERT INTO NomeTabella;” non è ammessa in SQLite, l’unica alternativa è quella di utilizzare la seguente sintassi: “INSERT INTO NomeTabella(nullColumn) VALUES(NULL);” Il parametro ContentValues rappresenta semplicemente una sorta di Map che ci consente di inserire coppie chiave/valore. Il valore di ritorno contiene l’id del record appena inserito.

Query Si differenzia dalle operazioni precedenti in quanto permette di estrarre informazioni dal database. public Cursor query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); Distinct ci consente di indicare se vogliamo effettuare una SELECT oppure una SELECT DISTINCT. Table nome delle tabella Columns nomi delle colonne che vorremo selezionare. Selection condizioni per la select (WHERE.. AND..) SelectionArgs array di parametri per il bind. I nomi dei rimanenti parametri rendono semplice comprendere il loro scopo ai fini della query. Il valore di ritorno è un cursore che ci consentirà di ottenere i vari valori delle singole colonne.

Cursor Il valore di ritorno dell’operazione di query è di tipo Cursor. Un’istanza di tale classe rappresenta un cursore, cioè un oggetto in grado di iterare fra i vari record appartenenti al set di risultati restituito. Essa pertanto avrà un puntatore che farà riferimento al record corrente ed una serie di metodi che consentiranno di spostarlo e di ottenere la sua posizione attuale. Tra i più utilizzati: public int getPosition(), restituisce la posizione corrente. public boolean move(int offset), moveToNext(), moveToLast(), moveToFirst(), moveToPrevious, moveToPosition(int position), sono tutti metodi che consentono di spostare il cursore. Il valore di ritorno indica l’eventuale disponibilità di nuove informazioni. public boolean isFirst(), isLast() indica se la posizione del cursore è sul primo valore oppure sull’ultimo

Cursor I metodi principali sono quelli che consentono di accedere ai dati: public int getInt(int columnIndex); public double getDouble(int columnIndex); public String getString(int columnIndex); public byte[] getBlob(int columnIndex); Un metodo di utilità che restituisce l’indice della colonna di nome specificato: public int getColumnIndex(String columnName)

Cursor e query