swirl logo

About     Archive     Feed     Impressum

Android: Remote-Zugriff auf die SQLite Datenbank

Hintergrund

SQLite ist ein essentieller Bestandteil der Android-Platform und dient generell zur Speicherung aller App-bezogenen Daten. Gerade zur Entwicklungszeit kann es durchaus nützlich sein, direkt SQL-Queries abzusetzen bzw. direkt einen Blick auf die Datenbank bzw. die Tabellenstrukturen zu werfen.

Vorgehensweise

Unter Windows befindet sich die SQLite Kommandozeile im Android SDK (sqlite3.exe) und sollte entsprechend dank gesetzter Umgebungsvariable bereits von der Kommandozeile aus aufrufbar sein.

Datenbank erzeugen

Um eine neue Datenbank auf dem verbundenen Gerät zu erzeugen, muss lediglich der Datenbankname angegeben werden:

 
sqlite3 Customer.db

Tabelle erzeugen

Nach erstellter Datenbank lässt sich eine Tabelle mithilfe des üblichen SQL-CREATE-Query erzeugen:

 
sqlite> create table Customer (Id int primary key, Name varchar(42));

Records einfügen

Auch das einfügen von Records erfolgt wie gewohnt mittels INSERT-INTO-Statement:

 
sqlite> insert into Customer values('0','Max');
sqlite> insert into Customer values('1','Bruce');
sqlite> insert into Customer values('2','Dirk');

Records abfragen

Das Abfragen von Records erfolgt mittels SELECT-Statement:

 
sqlite> select * from Customer;

Tabellen-Dump

Ein überaus nützliches Feature ist der .dump-Befehl, mit dessen Hilfe sich der Inhalt der Tabelle ausgeben lässt:

 
sqlite3 Customer.db .dump

oder auch

sqlite3 Customer.db
sqlite> .dump
sqlite> .quit

Der Output ist in beiden Fälle folgender:

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Customer (Id int primary key, Name varchar(42));
INSERT INTO Customer VALUES(0,'Max');
INSERT INTO Customer VALUES(1,'Bruce');
INSERT INTO Customer VALUES(2,'Dirk');
COMMIT;

Zudem ist mittels .schema-Befehl es ebenso möglich, die Tabellenstruktur als SQL-CREATE-Statement ausgeben zu lassen. Gerade letzteres ermöglicht es schließlich, den Query in eine dedizierte Datei schreiben zu lassen:

 
sqlite3 Customer.db .schema > Customer.sql
Hire me!