C Veri Tabanına Veri Ekleme ve Listeleme
Veri tabanları, verileri yapılandırılmış bir şekilde saklamak ve yönetmek için kullanılan temel araçlardır. C programlama dili, veritabanlarıyla etkileşime geçmek için çeşitli işlevler ve kitaplıklar sağlar. Bu makale, C’de veri tabanına veri ekleme ve listeleme işlemlerini ayrıntılı olarak inceleyecektir.
Veri Tabanı Bağlantısı
Veri tabanına erişmek için öncelikle bir bağlantı kurmanız gerekir. C’de, sqlite3
kütüphanesi veri tabanı bağlantıları için yaygın olarak kullanılır. sqlite3_open()
işlevi, veritabanı dosyasını açar ve bir bağlantı döndürür.
“`c
include
int main() {
sqlite3 *db;
int rc = sqlite3_open(“mydb.db”, &db);
if (rc != SQLITE_OK) {
fprintf(stderr, “Veritabanı açılamadı: %s\n”, sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
// …
sqlite3_close(db);
return 0;
}
“`
Veri Ekleme
Veri tabanına veri eklemek için sqlite3_exec()
işlevi kullanılır. Bu işlev, bir SQL ifadesini yürütür ve etkilenen satır sayısını döndürür.
c
int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void *, int, char **, char **), void *arg, char **errmsg);
sql
parametresi, yürütülecek SQL ifadesidir. callback
parametresi, her satır için çağrılacak bir geri arama işlevidir. arg
parametresi, geri arama işlevine geçirilecek bir kullanıcı verisidir. errmsg
parametresi, bir hata oluşursa bir hata mesajı döndürür.
Bir satır eklemek için aşağıdaki SQL ifadesini kullanabilirsiniz:
sql
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
Örneğin, people
adlı bir tabloya bir satır eklemek için aşağıdaki kodu kullanabilirsiniz:
c
char *sql = "INSERT INTO people (name, age) VALUES ('John Doe', 30);";
int rc = sqlite3_exec(db, sql, NULL, NULL, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "Veri eklenemedi: %s\n", sqlite3_errmsg(db));
}
Veri Listeleme
Veri tabanından veri listelemek için sqlite3_prepare_v2()
ve sqlite3_step()
işlevleri kullanılır. sqlite3_prepare_v2()
işlevi, bir SQL ifadesini derler ve bir ifade nesnesi döndürür. sqlite3_step()
işlevi, ifade nesnesindeki bir sonraki satırı alır ve etkilenen satır sayısını döndürür.
c
int sqlite3_prepare_v2(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **stmt, const char **pzTail);
int sqlite3_step(sqlite3_stmt *stmt);
sql
parametresi, derlenecek SQL ifadesidir. nbytes
parametresi, SQL ifadesinin uzunluğudur. stmt
parametresi, derlenmiş ifade nesnesidir. pzTail
parametresi, SQL ifadesinin işlenmemiş kısmını döndürür.
Tüm satırları listelemek için aşağıdaki SQL ifadesini kullanabilirsiniz:
sql
SELECT * FROM table_name;
Örneğin, people
adlı tablodan tüm satırları listelemek için aşağıdaki kodu kullanabilirsiniz:
c
char *sql = "SELECT * FROM people;";
sqlite3_stmt *stmt;
int rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "İfade derlenemedi: %s\n", sqlite3_errmsg(db));
}
while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
char *name = (char *)sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
printf("ID: %d, İsim: %s, Yaş: %d\n", id, name, age);
}
sqlite3_finalize(stmt);
Faydalı Siteler ve Dosyalar
- SQLite3 C API Referansı
- SQLite3 Kullanım Kılavuzu
- C ile SQLite3 Kullanma
- SQLite3 ile Veri Ekleme ve Listeleme