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.
SQLite — C’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.