“AVTOSALON” ma’lumotlar bazasini yaratish.
Ma'lumotlar bazasini yaratish odatda ma'lumotlar bazasi strukturasini aniqlash, jadvallar yaratish va jadvallar orasidagi munosabatlarni belgilashni o'z ichiga oladi. Bu erda SQL buyruqlari yordamida "AUTOSALON" ma'lumotlar bazasi qanday yaratilishiga misol:
sql
-- AUTOSALON ma'lumotlar bazasini yarating
MA'LUMOTLAR BAZASINI AVTOSALONI YARATING;
-- AUTOSALON ma'lumotlar bazasidan foydalaning
AVTOSALONDAN FOYDALANISH;
-- “Mashina” jadvalini yarating
TABLE avtomobilini yaratish (
car_id INT PRIMARY KEY AUTO_INCREMENT,
brend VARCHAR(50) NULL EMAS,
VARCHAR(50) modeli NULL EMAS,
yil INT NOLL,
narx DECIMAL(10, 2) NULL EMAS,
rang VARCHAR(30)
);
-- “Mijoz” jadvalini yarating
TABLE mijozini yaratish (
customer_id INT PRIMARY KEY AUTO_INCREMENT,
birinchi_ism VARCHAR(50) NULL EMAS,
familiya_ismi VARCHAR(50) NULL EMAS,
telefon VARCHAR(15) NULL EMAS,
elektron pochta VARCHAR(100),
manzil VARCHAR(100)
);
-- “Xarid qilish” jadvalini yarating
JADVAL YARATISH (
buy_id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT,
car_id INT,
buy_date DATE NULL EMAS,
XORIY KALİT (mijoz_identifikatori) MA'LUMOTLAR mijoz (mijoz_identifikatori),
XORIJI KALİT (avtomobil identifikatori) MA'LUMOTLAR avtomobil (avtomobil raqami)
);
Ushbu skript uchta jadvaldan iborat "AUTOSALON" ma'lumotlar bazasini yaratadi: "avtomobil", "mijoz" va "sotib olish". “Avtomobil” jadvalida avtomobillar haqidagi ma’lumotlar, “mijoz” jadvalida xaridorlar haqidagi ma’lumotlar, “sotib olish” jadvalida esa avtomobil xaridlari haqidagi ma’lumotlar, jumladan “avtomobil” va “mijoz” jadvallariga havolalar saqlanadi
C++ tilida siz odatda SQLite yoki MySQL kabi kutubxonalar yordamida ma'lumotlar bazalari bilan ishlaysiz. Bu misol uchun men C++ tilidagi SQLite kutubxonasidan foydalanib, “AUTOSALON” ma’lumotlar bazasini qanday yaratishni ko‘rsataman. Birinchidan, sizda SQLite C/C++ interfeysi mavjudligiga ishonch hosil qilishingiz kerak.
C++ da SQLite yordamida “AUTOSALON” maʼlumotlar bazasini qanday yaratishingiz mumkinligiga misol:
cpp
#include
#include
#include
int main() {
sqlite3 * JB;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("AUTOSALON.db", &db);
agar (rc) {
std::cerr << "Ma'lumotlar bazasini ochib bo'lmadi: " << sqlite3_errmsg(db) << std::endl;
qaytish (0);
} boshqa {
std::cout << "Ma'lumotlar bazasi muvaffaqiyatli ochildi" << std::endl;
}
// "Avtomobil" jadvalini yarating
const char *createCarTable = "CREATE TABLE car(" \\
"car_id INTEGER PRIMARY KEY AUTOINCREMENT", \\
"brend TEXT NOT NULL," \\
"model TEXT NO NULL", \\
"yil INTEGER NOT NULL", \\
"narx REAL NO NULL", \\
"rangli TEXT);";
rc = sqlite3_exec (db, createCarTable, 0, 0, &zErrMsg);
agar (rc!= SQLITE_OK) {
std::cerr << "SQL xatosi: " << zErrMsg << std::endl;
sqlite3_free(zErrMsg);
} boshqa {
std::cout << "Avtomobil jadvali muvaffaqiyatli yaratildi" << std::endl;
}
// "mijoz" jadvalini yarating
const char *createCustomerTable = "JADVAL mijozini yaratish (" \\
"customer_id INTEGER PRIMARY KEY AUTOINCREMENT", \\
"first_name TEXT NO NULL," \\
"familiya_ismi TEXT NULL EMAS," \\
"telefon matni NULL emas," \\
"email TEXT", \\
"manzil TEXT);";
rc = sqlite3_exec(db,CustomerTable yaratish, 0, 0, &zErrMsg);
agar (rc!= SQLITE_OK) {
std::cerr << "SQL xatosi: " << zErrMsg << std::endl;
sqlite3_free(zErrMsg);
} boshqa {
std::cout << "Mijoz jadvali muvaffaqiyatli yaratildi" << std::endl;
}
// "sotib olish" jadvalini yarating
const char *createPurchaseTable = "JADVAL YARATISH (" \\
"purchase_id INTEGER PRIMARY KEY AUTOINCREMENT", \\
"customer_id INTEGER", \\
"car_id INTEGER", \\
"sotib olish_date DATE NULL EMAS", \\
"Xorijiy kalit(mijoz_identifikatori) MA'LUMOTLAR mijozi(mijoz_identifikatori)," \\
"Xorijiy kalit(avtomobil_identifikatori) MA'LUMOTLAR avtomobil(mashina_id));";
rc = sqlite3_exec (db, createPurchaseTable, 0, 0, &zErrMsg);
agar (rc!= SQLITE_OK) {
std::cerr << "SQL xatosi: " << zErrMsg << std::endl;
sqlite3_free(zErrMsg);
} boshqa {
std::cout << "Xarid jadvali muvaffaqiyatli yaratildi" << std::endl;
}
sqlite3_close(jB);
qaytish 0;
}
Ushbu misolda biz "AUTOSALON" ma'lumotlar bazasini yaratish va ochish uchun SQLite C/C++ interfeysidan foydalanamiz. Keyin SQL buyruqlari yordamida "avtomobil", "mijoz" va "sotib olish" jadvallarini yaratamiz. Jadvallarni yaratgandan so'ng, biz ma'lumotlar bazasi ulanishini yopamiz.
|