Android Programlama Ders 44′te SQLite komutlarını pratik örneklerle incelemeye devam edeceğiz.
Geçen derslerimizdeki gibi sqlite3 base.db komutu kullanarak veri tabanı açalım. Veri tabanını önceki derslerimizde oluşturduğumuz için yenisi yaratılmayacak, olan veri tabanı açılacak. Bunu kontrol etmek için aşağıdaki verdiğim komutu kullanabilirsiniz:
sqlite>.tables
Ekranda schema test yazısını görüyoruz. Şimdi veri tabanına ait bilgileri öğrenmek için farklı yöntemleri inceleyelim. Son derste tablo için indeksleri oluşturduk. İndeks hakkında bilgi almak için aşağıdaki komutu kullanabilirsiniz:
sqlite> .indices test
Ekranda text_idx yazıyı görüyoruz.
Tablonun yapısı öğrenmek için:
sqlite> .schema test
Sonuç:
CREATE TABLE test (id integer primary key, value text);
CREATE INDEX text_idx on test (value);
Bilgileri öğrenmek için başka da komutlar mevcut:
type – nesnenin tipi
name – nesnenin ismi
tbl_name – nesneyle bağlı olan tablo
sql – SQL tınımlıyor (DDL)
Aşağıdaki verdiğim komutları girelim:
sqlite> .mode column
sqlite> .headers on
sqlite> select type, name, tbl_name, sql from sqlite_master order by type;
Sonuç:
type name tbl_name sql
———- ———- ———- ————————————-
index text_idx test CREATE INDEX text_idx on test (value)
table test test CREATE TABLE test (id integer primary
view schema schema CREATE VIEW schema as select * from s
Bu komutları kullanarak veri tabanına ait bilgilere ulaşabiliriz. Yabancı veri tabanı araştırdığınız zaman da kullanabilirsiniz.
Verileri SQL formata .dump komutu kullanarak ihraç edebiliriz. Argümanları kullanmadığımız zaman tüm veri tabanı ihraç edilecek. Verileri dosyaya ihraç etmek için .output [filename] komutu kullanılıyor. Verileri ekranda kullanmak için .output stdout komutu kullanılıyor.
sqlite> .output file.sql
sqlite> .dump
sqlite> .output stdout
Komutları çalıştırdıktan sonra diskte file.sql dosya oluşacak.
Verileri ithal etmek için iki yöntem mevcuttur. Verileri SQL formata olduğu zaman .read komutu kullanılıyor. Eğer dosya CSV formataysa .import [file][table] komut kullanılıyor.
Bizim örnekte file.sql formata o yüzden .read komutu kullanacağız. İlk başta test tablodan tüm verileri silecek ve file.sql dosyadan verileri kopyalacağız. Kopyalama olup olmadığını kontrol etmek için file.sql dosyada ilk ismi değiştirelim (İlk isim Osman olsun). Değiştirmek için dosyayı Notepad ile açabilirsiniz.
sqlite> drop table test;
sqlite> drop view schema;
sqlite> .read file.sql
sqlite> select * from test;
Gördüğünüz gibi file.sql dosyadan test tabloya verileri kaydettik.
Bazen tablonun bir kısmı kaydetmek gerekiyor. Mesela tabloda bulunan is ile biten kayıtları kaydedelim. Bizim örnekte is ile biten bir tane kayıt mevcut (Baris).
sqlite> .output is.csv
sqlite> .separator ,
sqlite> select * from test where value like ‘%is’;
sqlite> .output stdout
Yukarıdaki verdiğim komutlarda .separator , komutu id ve isim arasında virgülü koyuyor. Şimdi is.csv dosyadan kayıtları yeni tabloya yerleştirelim.
sqlite> create table test2(id integer primary key, value text);
sqlite> .import is.csv test2
Ders Sonu Notları:
Bugünkü dersimizde sqlite’ta verileri ithal ve ihraç etmek için kullanılan komutları inceledik. Gelecek derste sqlite ait komutları ve özellikleri öğrenmeye devam edeceğiz.