SQLite kullanımı ve kurulumu oldukça basit olan bir veritabanı kütüphanesidir. Özelliklerinin tam listesini sitesinde bulabilirsiniz ancak ben bazılarını buraya aktarıyorum.
- SQLite'ın çalışması için herhangi bir sunucuya ihtiyacı olmadığı için, kurulum ve ya konfigürasyon adımları yoktur.
- Her veritabanı için sadece bir dosya vardır. Bu da veritabanının yedeklenmesini ve kopyalanmasını kolaylaştırır.
- Platform bağımsızdır.
- SQLite kompakttır. Tüm kütüphanenin boyutu 225kb'dır. Bazı özellikler çıkartılarak, bu boyut 170kb'a kadar indirilebilir. Bu sayede embedded ve ya symbian gibi platformlar için uygundur.
SQLite'ın eşdeğeri olarak Oracle'ı ya da MySQL'i düşünmemelisiniz. Sitesinde de çok değinildiği gibi SQLite fopen'ın yerini almayı amaçlayan bir kütüphanedir. SQLite'ın size uygun olup olmadığını daha rahat anlamak için ne zaman kullanmalı sayfasına buradan göz atabilirsiniz.
SQLite ve C++, Basit bir örnek.Öncelikle işlem yapabilmemiz için bir veritabanımızın olması gerekiyor. Bunun için http://www.sqlite.org/sqlite-3_6_16.zip adresinden sqlite3'ü indiriniz. Konsoldan sqlite3.exe'yi aşağıdaki şekilde başlatınız.
sqlite3 test.dbArgüman olarak "test.db" verdiğimiz için, herhangi bir tablo yarattığınızda, bu tablolar test.db dosyasına kayıt edilecektir.
Şimdi test veritabanımızda bir tablo oluşturuyoruz. Aşağıdaki SQL sorgusunu açtığınız sqlite3 programında yazınız.CREATE TABLE users( id INTEGER PRIMARY KEY,
name VARCHAR(25),
lastname VARCHAR(25),
email VARCHAR(100)
);
INSERT INTO users VALUES (NULL, 'Ercan', 'Gerçek', 'mail@mail.com');
INSERT INTO users VALUES (NULL, 'İsim', 'Soyisim', 'mail@mail.com');
SELECT * FROM users;
dediğiniz taktirde kullanıcılar listelenecektir.( ';' koymayı unutmayın )
Eğer kolon isimlerini de görmek istiyorsanız
.explain onyazarak bu seçeneği açabilirsiniz. Bundan sonraki SELECT sorgularında kolon isimleride listelenecektir.
Diğer komutlarıda görmek için '.help' yazmanız yeterlidir.Eğer bir tablonun içeriği bir dosyaya yazdırmak isterseniz, aşağıdaki komutları girin.
.output deneme.txtSELECT * FROM users;
ve çıkışı eski haline getirmek için tekrar
.output stdout
demeniz gerekiyor. Aksi taktirde tüm sorguların cevapları deneme.txt dosyasına yazdırılacaktır.Artık bir veritabanımız olduğuna göre, bunu açmak için bir C++ programı yazabiliriz.
Önce SQLite'ın kaynak kodunu buradan indiriniz. (Güncel versiyonu için sitesine bakınız.)
==================================================
#include <stdio.h>
#include "sqlite3.h"
int main(int argc, char **argv)
{
sqlite3 *db;
// veritabanına bağlantı açıyoruz.
int ret = sqlite3_open("test.db", &db);
sqlite3_stmt *stmt;
int rc = sqlite3_prepare(db, "SELECT * FROM users", -1, &stmt, 0);
while(sqlite3_step(stmt) == SQLITE_ROW) {
printf( "id:%s, name:%s, lname:%s, email:%s \n",
sqlite3_column_text(stmt, 0),
sqlite3_column_text(stmt, 1),
sqlite3_column_text(stmt, 2),
sqlite3_column_text(stmt, 3));
};
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
==================================================
Eğer id gibi değerleri integer olarak almak istiyorsanız,
int id = sqlite3_column_int(stmt, 0);
demeniz yeterli.
SQLite projesinin C/C++, PHP, Perl, Python, Tcl gibi diller için hazır API'si bulunmakta, fakat C# için bulunmamaktadır. Ancak bunun için codeproject'te çeşitli projeler bulunmaktadır. http://www.codeproject.com/KB/cs/SQLiteCSharp.aspx adresinde C# da SQLite'ı nasıl kullanabileceğiniz açıklanmaktadır.
Linkler
Kaynak:
http://www.sqlite.org
SQLite'ı ne zaman kullanmalısınız:
http://www.sqlite.org/whentouse.html
SQLite'ın öne çıkan özellikleri:
http://www.sqlite.org/different.html
SQLite ve C#:
http://www.codeproject.com/KB/cs/SQLiteCSharp.aspx
SQLite Download Sayfası:
http://www.sqlite.org/download.html
Çok faydalı bir yazı. teşekkürler :)
YanıtlaSilteşekkürler...
YanıtlaSilHocam cok faydali oldu benim icin, hayatimi kurtardin resmen, sonsuz tesekkurler.
YanıtlaSilCodecanyon üzerinde sözlük uygulamaları var. Veritabanı SQLite olarak belirtiliyor. Şimdi bu veritabanı uygulamaya entegre halde mi bulunuyor. Yoksa, bildiğimiz host ile birlikte gelen mysql gibi sunucuda mı barındırılıyor?
YanıtlaSil