Darsliklar C Ma'lumotlar bazasi

C C Ma'lumotlar bazasi

Ma’lumotlar bazasi (Database) — dastur ma’lumotini doimiy, tartibli va katta hajmda saqlash usuli. O’zgaruvchilar dastur yopilishi bilan yo’qoladi; ma’lumotlar bazasidagi ma’lumot esa saqlanadi va minglab yozuv orasidan tez izlanadi. C’da bazaga ulanish uchun SQLite kabi yengil kutubxonalar keng ishlatiladi.

SQLiteC’da keng ishlatiladigan, serverga muhtoj bo’lmagan, yengil ma’lumotlar bazasi kutubxonasi. U butun bazani bitta faylda saqlaydi va C bilan bevosita bog’lanadi.

Bazaga ulanish

SQLite bazasiga ulanish sqlite3_open orqali amalga oshiriladi. Kutubxona sqlite3.h bilan ulanadi:

#include <stdio.h>
#include <sqlite3.h>

int main(void) {
    sqlite3 *db;
    int natija = sqlite3_open("uzbekdevs.db", &db);
    if (natija == SQLITE_OK) {
        printf("Bazaga ulandik\n");
    }
    sqlite3_close(db);
    return 0;
}
Bazaga ulandik

sqlite3_open bazani ochadi (yoki yaratadi), sqlite3_close esa yopadi. Kompilyatsiyada -lsqlite3 bayrog’i kerak bo’ladi.

Jadval va SQL

Faraz qilaylik, bazada foydalanuvchilar jadvali bor. Uning tuzilishi quyidagicha:

id ism yosh
1 Farrux 26
2 Master Sherkulov 30
3 Aziz 22

Bu jadvaldan ma’lumot olish uchun SELECT so’rovi ishlatiladi.

Ma’lumot o’qish — SELECT

sqlite3_exec yoki sqlite3_prepare orqali SQL so’rov bajariladi. Masalan, SELECT ism, yosh FROM foydalanuvchilar so’rovi quyidagi natijani qaytaradi:

ism yosh
Farrux 26
Master Sherkulov 30
Aziz 22

Kodda bu so’rov quyidagicha ishlatiladi:

#include <stdio.h>
#include <sqlite3.h>

int main(void) {
    sqlite3 *db;
    sqlite3_open("uzbekdevs.db", &db);
    char *sql = "SELECT ism, yosh FROM foydalanuvchilar";
    /* sqlite3_exec so'rovni bajaradi va har qatorni qayta ishlaydi */
    printf("So'rov bajarildi\n");
    sqlite3_close(db);
    return 0;
}
So'rov bajarildi

Shart bilan izlash — WHERE

WHERE sharti bilan ma’lum yozuvlarni ajratib olish mumkin. Masalan, SELECT ism, yosh FROM foydalanuvchilar WHERE yosh > 25 so’rovi quyidagi natijani beradi:

ism yosh
Farrux 26
Master Sherkulov 30

Faqat yoshi 25 dan katta foydalanuvchilar ajratildi. WHERE — bazaning eng kuchli imkoniyatlaridan biri: u minglab yozuv orasidan kerakligini tez topadi. Yangi yozuv qo’shish uchun esa INSERT INTO foydalanuvchilar (ism, yosh) VALUES ('Dilnoza', 24) so’rovi ishlatiladi.

Xulosa

Bu bo’limda SQLite bilan bazaga ulanish, SELECT bilan o’qish, WHERE bilan izlash va INSERT bilan qo’shishni ko’rib chiqdik. Ma’lumotlar bazasi — real ilovalarning yuragi.